SHOW:
|
|
- or go back to the newest paste.
1 | <?php | |
2 | ||
3 | namespace App\Http\Controllers; | |
4 | ||
5 | use App\Http\Requests; | |
6 | use DB; | |
7 | use Illuminate\Http\Request; | |
8 | use Illuminate\Pagination\LengthAwarePaginator; | |
9 | use Exception; | |
10 | use Mail; | |
11 | use Monolog\Logger; | |
12 | use Monolog\Handler\RotatingFileHandler; | |
13 | use Monolog\Processor\WebProcessor; | |
14 | use Monolog\Formatter\LineFormatter; | |
15 | use Auth; | |
16 | ||
17 | class DeponController extends Controller | |
18 | { | |
19 | private $orkl; | |
20 | private $accs1; | |
21 | private $logger; | |
22 | ||
23 | public function __construct() | |
24 | //конструктор | |
25 | { | |
26 | //заходят только авторизованные пользователи | |
27 | - | $this->middleware('auth'); |
27 | + | $this->middleware('auth'); <-- убрать в роут группу |
28 | ||
29 | - | //инициализируем файл лога |
29 | + | //инициализируем файл лога <-- использовать ларовских логер, только сделать отдельный хендел, ну и вынести все в отдельный класс и подключать через ди |
30 | $this->logger = new Logger('Depon_logger'); | |
31 | $handler = new RotatingFileHandler(storage_path('logs\depon.log'), Logger::INFO); | |
32 | $this->logger->pushHandler($handler); | |
33 | $handler->setFormatter(new LineFormatter("[%datetime%] %channel%.%level_name%: %message% %extra% %context%\n")); | |
34 | $this->logger->pushProcessor(new WebProcessor); | |
35 | ||
36 | - | //подключаемся к БД Оракла |
36 | + | //подключаемся к БД Оракла <- убрать в конфиг |
37 | try { | |
38 | $this->orkl = DB::connection('oracle'); | |
39 | } catch (Exception $e) { | |
40 | $this->logger->addError("Ошибка! " . $e->getMessage()); | |
41 | dd("Ошибка! " . $e->getMessage()); | |
42 | } | |
43 | //делаем выборку записей для пагинации | |
44 | $sql2 = 'select t.contnum from MBCONT t'; | |
45 | - | $this->accs1 = $this->orkl->select($sql2); |
45 | + | $this->accs1 = $this->orkl->select($sql2); <- дать нормальные имена переменным как минимум. |
46 | } | |
47 | ||
48 | public function index(Request $request) | |
49 | //вывод списка депозитных счетов | |
50 | { | |
51 | $perPage = 12; | |
52 | $currentPage = $request->get('page', 1); | |
53 | $sql1 = "SELECT contnum, totalsum, enddate, closedate, contstatus, rowidtochar (rowid) row1 | |
54 | FROM (SELECT t.contnum, | |
55 | t.totalsum, | |
56 | t.enddate, | |
57 | t.closedate, | |
58 | t.contstatus, | |
59 | row_number() over(order by t.contstatus asc, t.enddate) rnk | |
60 | FROM mbcont t) | |
61 | WHERE rnk BETWEEN ? AND ?"; | |
62 | $accs = $this->orkl->select($sql1, array(($currentPage - 1) * $perPage, $currentPage * $perPage)); | |
63 | //пагинация | |
64 | $paginator = new LengthAwarePaginator($this->accs1, count($this->accs1), $perPage, $currentPage); | |
65 | $paginator->setPath($request->getBasePath()); | |
66 | return view('main.index', compact('accs', 'paginator')); | |
67 | } | |
68 | ||
69 | ||
70 | public function search(Request $request) | |
71 | //поиск | |
72 | { | |
73 | $this->validate($request, ['search1' => 'required']); | |
74 | $request->flashOnly('search1'); | |
75 | ||
76 | $sql3 = "select t.contnum, t.totalsum, t.enddate, t.closedate, t.contstatus, rowidtochar (rowid) row1 from MBCONT t where contnum like ?"; | |
77 | $param = '%' . $request->search1 . '%'; | |
78 | $accs = $this->orkl->select($sql3, array($param)); | |
79 | ||
80 | return view('main.index', compact('accs')); | |
81 | } | |
82 | ||
83 | public function clear() | |
84 | //отмена поиска | |
85 | { | |
86 | - | return redirect('/depon')->with('search1', ''); |
86 | + | return redirect('/depon')->with('search1', ''); <-- че за жесть? |
87 | } | |
88 | ||
89 | - | public function edit($id = null) |
89 | + | public function edit($id = null) <- убрать нулл |
90 | //редактирование депозитного счета | |
91 | { | |
92 | if ($id == null) {<-- убрать | |
93 | return redirect('/depon'); | |
94 | } | |
95 | $sql3 = "select t.contnum, t.totalsum, t.enddate, t.closedate, rowidtochar (?) row1 from MBCONT t where rowid = CHARTOROWID(?)"; | |
96 | $param = $id; | |
97 | $dep = $this->orkl->selectOne($sql3, array($param, $param)); | |
98 | return view('main.edit', compact('dep')); | |
99 | } | |
100 | ||
101 | private function report1($mas1) | |
102 | //отчет о проделанной операции (закрытие счета, изменение суммы) - посылаем письмо и пишем в лог | |
103 | { | |
104 | Убрать отправку в команды, и убрать этот трай и кетч | |
105 | $email1 = DB::table('settings')->where('name1', 'depon_email')->value('val1'); | |
106 | try { | |
107 | $data = ['contnum' => $mas1["contnum"], 'totalsum' => $mas1["totalsum"], 'enddate' => $mas1["enddate"], 'closedate' => $mas1["closedate1"], 'email' => $email1, 'subject' => $mas1["str1"]]; | |
108 | Mail::send('email.deponclose', $data, function ($message) use ($data) { | |
109 | $message->to($data['email']); | |
110 | $message->subject($data['subject']); | |
111 | }); | |
112 | } catch (Exception $e) { | |
113 | $mas1["sess"]->flash('errors', 'Email на' . $email1 . ' не удалось отправить!'); | |
114 | $this->logger->addError('Email на' . $email1 . ' не удалось отправить!'); | |
115 | } | |
116 | ||
117 | - | $this->logger->addInfo('User Name: ' . $user->getAttributeValue('name') . ' | User Email: ' . $user->getAttributeValue('email') . ' | ' . $mas1["str1"]); |
117 | + | |
118 | $this->logger->addInfo('User Name: ' . $user->getAttributeValue('name') . ' | User Email: ' . $user->getAttributeValue('email') . ' | ' . $mas1["str1"]); <- добавить функцию в логер по форматированиб | |
119 | } | |
120 | ||
121 | public function editpost($id = null, Request $request) | |
122 | //запись результатов редактирования депозитного счета | |
123 | { | |
124 | if ($id == null) { | |
125 | return redirect('/depon'); | |
126 | } | |
127 | ||
128 | разбить на 3 метода и убрать свитч | |
129 | switch ($request->submit) { | |
130 | case "cancel_dep": | |
131 | //нажата кнопка "Отмена" | |
132 | return redirect('/depon'); | |
133 | break; | |
134 | case "sum_dep": | |
135 | //нажата кнопка "Изменить сумму" | |
136 | $this->validate($request, ['totalsum' => 'required|numeric']); | |
137 | ||
138 | $sql1 = "update mbcont t set t.totalsum = ? where rowid = CHARTOROWID (?)"; | |
139 | $this->orkl->update($sql1, array($request->totalsum, $id)); | |
140 | ||
141 | $mas = [ | |
142 | "str1" => 'Сумма договора ' . $request->contnum . ' успешно изменена на ' . $request->totalsum . '!', | |
143 | "contnum" => $request->contnum, | |
144 | "totalsum" => $request->totalsum, | |
145 | "enddate" => $request->enddate, | |
146 | "closedate1" => null, | |
147 | "sess" => $request->session() | |
148 | ]; | |
149 | $this->report1($mas); | |
150 | ||
151 | return redirect('/depon')->with('status', 'success')->with('message', $mas["str1"]); | |
152 | break; | |
153 | case "close_dep": | |
154 | //нажата кнопка "Закрыть счет" | |
155 | $this->validate($request, ['closedate' => 'required|date']); | |
156 | ||
157 | $sql1 = "update mbcont t set t.closedate = to_date(?, 'dd-mm-yyyy'), t.ContStatus = 2 where rowid = CHARTOROWID(?)"; | |
158 | $this->orkl->update($sql1, array($request->closedate, $id)); | |
159 | ||
160 | $mas = [ | |
161 | "str1" => 'Договор ' . $request->contnum . ' успешно закрыт!', | |
162 | "contnum" => $request->contnum, | |
163 | "totalsum" => $request->totalsum, | |
164 | "enddate" => $request->enddate, | |
165 | "closedate1" => $request->closedate, | |
166 | "sess" => $request->session() | |
167 | ]; | |
168 | $this->report1($mas); | |
169 | ||
170 | return redirect('/depon')->with('status', 'success')->with('message', $mas["str1"]); | |
171 | break; | |
172 | default: | |
173 | return redirect('/depon'); | |
174 | } | |
175 | } | |
176 | ||
177 | public function settget() | |
178 | //выводим настройки для этого отчета | |
179 | { | |
180 | $email1 = DB::table('settings')->where('name1', 'depon_email')->value('val1'); | |
181 | return view('main.sett', ['email' => $email1]); | |
182 | } | |
183 | ||
184 | public function settpost(Request $request) | |
185 | //сохраняем настройки отчета (email) | |
186 | { | |
187 | убрать свитч | |
188 | switch ($request->submit) { | |
189 | case "cancel_sett": | |
190 | return redirect('/depon'); | |
191 | break; | |
192 | case "ok_sett": | |
193 | $this->validate($request, ['depon_email' => 'required']); | |
194 | DB::table('settings')->where('name1', 'depon_email')->update(['val1' => $request->depon_email]); | |
195 | return redirect('/depon'); | |
196 | break; | |
197 | default: | |
198 | return redirect('/depon'); | |
199 | } | |
200 | } | |
201 | } |