Commit 98fd88c9e07a34829cc33a05d87753edc53cbf55

Authored by Андрей Ларионов
Exists in master

Merge branch 'master' of http://gitlab.nologostudio.ru/alarionov/rekamore-su

Showing 1 changed file Inline Diff

app/Http/Controllers/WorkerController.php
1 <?php 1 <?php
2 2
3 namespace App\Http\Controllers; 3 namespace App\Http\Controllers;
4 4
5 use App\Classes\RusDate; 5 use App\Classes\RusDate;
6 use App\Http\Requests\DocumentsRequest; 6 use App\Http\Requests\DocumentsRequest;
7 use App\Http\Requests\PrevCompanyRequest; 7 use App\Http\Requests\PrevCompanyRequest;
8 use App\Http\Requests\SertificationRequest; 8 use App\Http\Requests\SertificationRequest;
9 use App\Models\Ad_employer; 9 use App\Models\Ad_employer;
10 use App\Models\ad_response; 10 use App\Models\ad_response;
11 use App\Models\Chat; 11 use App\Models\Chat;
12 use App\Models\Dop_info; 12 use App\Models\Dop_info;
13 use App\Models\infobloks; 13 use App\Models\infobloks;
14 use App\Models\Job_title; 14 use App\Models\Job_title;
15 use App\Models\Like_vacancy; 15 use App\Models\Like_vacancy;
16 use App\Models\Message; 16 use App\Models\Message;
17 use App\Models\place_works; 17 use App\Models\place_works;
18 use App\Models\PrevCompany; 18 use App\Models\PrevCompany;
19 use App\Models\ResponseWork; 19 use App\Models\ResponseWork;
20 use App\Models\sertification; 20 use App\Models\sertification;
21 use App\Models\Static_worker; 21 use App\Models\Static_worker;
22 use App\Models\Title_worker; 22 use App\Models\Title_worker;
23 use App\Models\User; 23 use App\Models\User;
24 use App\Models\User as User_Model; 24 use App\Models\User as User_Model;
25 use App\Models\Worker; 25 use App\Models\Worker;
26 use Barryvdh\DomPDF\Facade\Pdf; 26 use Barryvdh\DomPDF\Facade\Pdf;
27 use Carbon\Carbon; 27 use Carbon\Carbon;
28 use Illuminate\Auth\Events\Registered; 28 use Illuminate\Auth\Events\Registered;
29 use Illuminate\Database\Eloquent\Builder; 29 use Illuminate\Database\Eloquent\Builder;
30 use Illuminate\Http\Request; 30 use Illuminate\Http\Request;
31 use Illuminate\Support\Facades\Auth; 31 use Illuminate\Support\Facades\Auth;
32 use Illuminate\Support\Facades\Hash; 32 use Illuminate\Support\Facades\Hash;
33 use Illuminate\Support\Facades\Storage; 33 use Illuminate\Support\Facades\Storage;
34 use Illuminate\Support\Facades\Validator; 34 use Illuminate\Support\Facades\Validator;
35 use PhpOffice\PhpSpreadsheet\Spreadsheet; 35 use PhpOffice\PhpSpreadsheet\Spreadsheet;
36 use PhpOffice\PhpSpreadsheet\Writer\Xlsx; 36 use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
37 use Symfony\Component\HttpFoundation\StreamedResponse; 37 use Symfony\Component\HttpFoundation\StreamedResponse;
38 use App\Enums\DbExportColumns; 38 use App\Enums\DbExportColumns;
39 use App\Enums\WorkerStatuses; 39 use App\Enums\WorkerStatuses;
40 use DateTime; 40 use DateTime;
41 41
42 class WorkerController extends Controller 42 class WorkerController extends Controller
43 { 43 {
44 //профиль 44 //профиль
45 public function profile(Worker $worker) 45 public function profile(Worker $worker)
46 { 46 {
47 $get_date = date('Y.m'); 47 $get_date = date('Y.m');
48 48
49 $c = Static_worker::query()->where('year_month', '=', $get_date) 49 $c = Static_worker::query()->where('year_month', '=', $get_date)
50 ->where('user_id', '=', $worker->users->id) 50 ->where('user_id', '=', $worker->users->id)
51 ->get(); 51 ->get();
52 52
53 if ($c->count() > 0) { 53 if ($c->count() > 0) {
54 $upd = Static_worker::find($c[0]->id); 54 $upd = Static_worker::find($c[0]->id);
55 $upd->lookin = $upd->lookin + 1; 55 $upd->lookin = $upd->lookin + 1;
56 $upd->save(); 56 $upd->save();
57 } else { 57 } else {
58 $crt = new Static_worker(); 58 $crt = new Static_worker();
59 $crt->lookin = 1; 59 $crt->lookin = 1;
60 $crt->year_month = $get_date; 60 $crt->year_month = $get_date;
61 $crt->user_id = $worker->user_id; 61 $crt->user_id = $worker->user_id;
62 $crt->save(); 62 $crt->save();
63 } 63 }
64 64
65 $stat = Static_worker::query()->where('year_month', '=', $get_date) 65 $stat = Static_worker::query()->where('year_month', '=', $get_date)
66 ->where('user_id', '=', $worker->users->id) 66 ->where('user_id', '=', $worker->users->id)
67 ->get(); 67 ->get();
68 68
69 return view('public.workers.profile', compact('worker', 'stat')); 69 return view('public.workers.profile', compact('worker', 'stat'));
70 } 70 }
71 71
72 // лист база резюме 72 // лист база резюме
73 public function bd_resume(Request $request) 73 public function bd_resume(Request $request)
74 { 74 {
75 $look = false; 75 $look = false;
76 $idiot = 0; 76 $idiot = 0;
77 if (isset(Auth()->user()->id)) { 77 if (isset(Auth()->user()->id)) {
78 $idiot = Auth()->user()->id; 78 $idiot = Auth()->user()->id;
79 if ((!Auth()->user()->is_worker) && (Auth()->user()->is_lookin)) 79 if ((!Auth()->user()->is_worker) && (Auth()->user()->is_lookin))
80 $look = true; 80 $look = true;
81 } 81 }
82 82
83 if ($look) { 83 if ($look) {
84 $status_work = WorkerStatuses::getWorkerStatuses(); 84 $status_work = WorkerStatuses::getWorkerStatuses();
85 $resumes = Worker::query()->with('users')->with('job_titles')->orderByDesc('updated_at');; 85 $resumes = Worker::query()->with('users')->with('job_titles')->orderByDesc('updated_at');;
86 $resumes = $resumes->whereHas('users', function (Builder $query) { 86 $resumes = $resumes->whereHas('users', function (Builder $query) {
87 $query->Where('is_worker', '=', '1') 87 $query->Where('is_worker', '=', '1')
88 ->Where('is_bd', '=', '0'); 88 ->Where('is_bd', '=', '0');
89 }); 89 });
90 90
91 //dd($request->get('job')); 91 //dd($request->get('job'));
92 if (($request->has('job')) && ($request->get('job') > 0)) { 92 if (($request->has('job')) && ($request->get('job') > 0)) {
93 $resumes = $resumes->whereHas('job_titles', function (Builder $query) use ($request) { 93 $resumes = $resumes->whereHas('job_titles', function (Builder $query) use ($request) {
94 $query->Where('job_titles.id', $request->get('job')); 94 $query->Where('job_titles.id', $request->get('job'));
95 }); 95 });
96 } 96 }
97 97
98 $Job_title = Job_title::query() 98 $Job_title = Job_title::query()
99 ->where('is_remove', '=', '0') 99 ->where('is_remove', '=', '0')
100 ->where('is_bd', '=' , '1') 100 ->where('is_bd', '=' , '1')
101 ->orderByDesc('sort') 101 ->orderByDesc('sort')
102 ->get() 102 ->get()
103 ; 103 ;
104 104
105 if ($request->get('sort')) { 105 if ($request->get('sort')) {
106 $sort = $request->get('sort'); 106 $sort = $request->get('sort');
107 switch ($sort) { 107 switch ($sort) {
108 case 'looking_for_work': 108 case 'looking_for_work':
109 $resumes->where('status_work', '=', WorkerStatuses::LookingForWork->value); 109 $resumes->where('status_work', '=', WorkerStatuses::LookingForWork->value);
110 break; 110 break;
111 case 'considering_offers': 111 case 'considering_offers':
112 $resumes->where('status_work', '=', WorkerStatuses::ConsideringOffers->value); 112 $resumes->where('status_work', '=', WorkerStatuses::ConsideringOffers->value);
113 break; 113 break;
114 case 'not_looking_for_work': 114 case 'not_looking_for_work':
115 $resumes->where('status_work', '=', WorkerStatuses::NotLookingForWork->value); 115 $resumes->where('status_work', '=', WorkerStatuses::NotLookingForWork->value);
116 break; 116 break;
117 } 117 }
118 } 118 }
119 119
120 $res_count = $resumes->count(); 120 $res_count = $resumes->count();
121 //$resumes = $resumes->get(); 121 //$resumes = $resumes->get();
122 $resumes = $resumes->paginate(4); 122 $resumes = $resumes->paginate(4);
123 if ($request->ajax()) { 123 if ($request->ajax()) {
124 // Условия обставлены 124 // Условия обставлены
125 if ($request->has('block') && ($request->get('block') == 1)) { 125 if ($request->has('block') && ($request->get('block') == 1)) {
126 return view('ajax.resume_1', compact('resumes', 'status_work', 'res_count', 'idiot')); 126 return view('ajax.resume_1', compact('resumes', 'status_work', 'res_count', 'idiot'));
127 } 127 }
128 } else { 128 } else {
129 return view('resume', compact('resumes', 'status_work', 'res_count', 'idiot', 'Job_title')); 129 return view('resume', compact('resumes', 'status_work', 'res_count', 'idiot', 'Job_title'));
130 } 130 }
131 } else { 131 } else {
132 return redirect()->route('index')->withErrors(['errors' => ['Вы не можете просматривать базу резюме. Подробнее в меню: "Условия размещения"']]); 132 return redirect()->route('index')->withErrors(['errors' => ['Вы не можете просматривать базу резюме. Подробнее в меню: "Условия размещения"']]);
133 } 133 }
134 } 134 }
135 135
136 public function basic_information(){ 136 public function basic_information(){
137 if (!isset(Auth()->user()->id)) { 137 if (!isset(Auth()->user()->id)) {
138 abort(404); 138 abort(404);
139 } 139 }
140 140
141 $user_id = Auth()->user()->id; 141 $user_id = Auth()->user()->id;
142 142
143 $user = User::query() 143 $user = User::query()
144 ->with('workers') 144 ->with('workers')
145 ->with(['jobtitles' => function ($query) { 145 ->with(['jobtitles' => function ($query) {
146 $query->select('job_titles.id'); 146 $query->select('job_titles.id');
147 }]) 147 }])
148 ->where('id', '=', $user_id) 148 ->where('id', '=', $user_id)
149 ->first(); 149 ->first();
150 $user->workers[0]->job_titles = $user->workers[0]->job_titles->pluck('id')->toArray(); 150 $user->workers[0]->job_titles = $user->workers[0]->job_titles->pluck('id')->toArray();
151 151
152 $job_titles = Job_title::query() 152 $job_titles = Job_title::query()
153 ->where('is_remove', '=', 0) 153 ->where('is_remove', '=', 0)
154 ->where('is_bd', '=', 1) 154 ->where('is_bd', '=', 1)
155 ->orderByDesc('sort') 155 ->orderByDesc('sort')
156 ->get() 156 ->get()
157 ; 157 ;
158 158
159 return view('workers.form_basic_information', compact('user', 'job_titles')); 159 return view('workers.form_basic_information', compact('user', 'job_titles'));
160 } 160 }
161 161
162 public function additional_documents(){ 162 public function additional_documents(){
163 if (!isset(Auth()->user()->id)) { 163 if (!isset(Auth()->user()->id)) {
164 abort(404); 164 abort(404);
165 } 165 }
166 166
167 $user_id = Auth()->user()->id; 167 $user_id = Auth()->user()->id;
168 168
169 $info_blocks = infobloks::query()->OrderBy('name')->get(); 169 $info_blocks = infobloks::query()->OrderBy('name')->get();
170 $additional_document_statuses = [0 => 'Не указано', 1 => 'В наличии', 2 => 'Отсутствует']; 170 $additional_document_statuses = [0 => 'Не указано', 1 => 'В наличии', 2 => 'Отсутствует'];
171 171
172 $worker = Worker::query() 172 $worker = Worker::query()
173 ->with('users') 173 ->with('users')
174 ->with('infobloks') 174 ->with('infobloks')
175 ->WhereHas('users', function (Builder $query) use ($user_id) { 175 ->WhereHas('users', function (Builder $query) use ($user_id) {
176 $query->Where('id', $user_id); 176 $query->Where('id', $user_id);
177 }) 177 })
178 ->first(); 178 ->first();
179 if ($worker->dop_info->count()){ 179 if ($worker->dop_info->count()){
180 $worker->dop_info = $worker->dop_info->keyBy('infoblok_id')->toArray(); 180 $worker->dop_info = $worker->dop_info->keyBy('infoblok_id')->toArray();
181 } 181 }
182 182
183 return view('workers.form_additional_documents', compact('worker', 'info_blocks', 'additional_document_statuses')); 183 return view('workers.form_additional_documents', compact('worker', 'info_blocks', 'additional_document_statuses'));
184 } 184 }
185 185
186 //Лайк резюме 186 //Лайк резюме
187 public function like_controller() { 187 public function like_controller() {
188 188
189 } 189 }
190 190
191 // анкета соискателя 191 // анкета соискателя
192 public function resume_profile(Worker $worker) 192 public function resume_profile(Worker $worker)
193 { 193 {
194 if (isset(Auth()->user()->id)) { 194 if (isset(Auth()->user()->id)) {
195 $idiot = Auth()->user()->id; 195 $idiot = Auth()->user()->id;
196 } else { 196 } else {
197 $idiot = 0; 197 $idiot = 0;
198 } 198 }
199 199
200 $status_work = WorkerStatuses::getWorkerStatuses(); 200 $status_work = WorkerStatuses::getWorkerStatuses();
201 $Query = Worker::query()->with('users')->with('job_titles') 201 $Query = Worker::query()->with('users')->with('job_titles')
202 ->with('place_worker')->with('sertificate')->with('prev_company') 202 ->with('place_worker')->with('sertificate')->with('prev_company')
203 ->with('infobloks')->with('response'); 203 ->with('infobloks')->with('response');
204 $Query = $Query->where('id', '=', $worker->id); 204 $Query = $Query->where('id', '=', $worker->id);
205 $Query = $Query->get(); 205 $Query = $Query->get();
206 206
207 $get_date = date('Y.m'); 207 $get_date = date('Y.m');
208 208
209 $infoblocks = infobloks::query()->get(); 209 $infoblocks = infobloks::query()->get();
210 210
211 $c = Static_worker::query()->where('year_month', '=', $get_date) 211 $c = Static_worker::query()->where('year_month', '=', $get_date)
212 ->where('user_id', '=', $worker->user_id) 212 ->where('user_id', '=', $worker->user_id)
213 ->get(); 213 ->get();
214 214
215 if ($c->count() > 0) { 215 if ($c->count() > 0) {
216 $upd = Static_worker::find($c[0]->id); 216 $upd = Static_worker::find($c[0]->id);
217 $upd->lookin = $upd->lookin + 1; 217 $upd->lookin = $upd->lookin + 1;
218 $upd->save(); 218 $upd->save();
219 } else { 219 } else {
220 $crt = new Static_worker(); 220 $crt = new Static_worker();
221 $crt->lookin = 1; 221 $crt->lookin = 1;
222 $crt->year_month = $get_date; 222 $crt->year_month = $get_date;
223 $crt->user_id = $worker->user_id; 223 $crt->user_id = $worker->user_id;
224 $status = $crt->save(); 224 $status = $crt->save();
225 } 225 }
226 226
227 $stat = Static_worker::query()->where('year_month', '=', $get_date) 227 $stat = Static_worker::query()->where('year_month', '=', $get_date)
228 ->where('user_id', '=', $worker->user_id) 228 ->where('user_id', '=', $worker->user_id)
229 ->get(); 229 ->get();
230 230
231 return view('worker', compact('Query', 'infoblocks', 'status_work', 'idiot', 'stat')); 231 return view('worker', compact('Query', 'infoblocks', 'status_work', 'idiot', 'stat'));
232 } 232 }
233 233
234 // скачать анкету соискателя 234 // скачать анкету соискателя
235 public function resume_download(Worker $worker) 235 public function resume_download(Worker $worker)
236 { 236 {
237 $status_work = WorkerStatuses::getWorkerStatuses(); 237 $status_work = WorkerStatuses::getWorkerStatuses();
238 $Query = Worker::query()->with('users')->with('job_titles') 238 $Query = Worker::query()->with('users')->with('job_titles')
239 ->with('place_worker')->with('sertificate')->with('prev_company') 239 ->with('place_worker')->with('sertificate')->with('prev_company')
240 ->with('infobloks'); 240 ->with('infobloks');
241 $Query = $Query->where('id', '=', $worker->id); 241 $Query = $Query->where('id', '=', $worker->id);
242 $Query = $Query->get(); 242 $Query = $Query->get();
243 243
244 view()->share('Query',$Query); 244 view()->share('Query',$Query);
245 245
246 $status_work = WorkerStatuses::getWorkerStatuses(); 246 $status_work = WorkerStatuses::getWorkerStatuses();
247 $infoblocks = infobloks::query()->get(); 247 $infoblocks = infobloks::query()->get();
248 248
249 //return view('layout.pdf', compact('Query', 'status_work', 'infoblocks')); 249 //return view('layout.pdf', compact('Query', 'status_work', 'infoblocks'));
250 $pdf = PDF::loadView('layout.pdf', [ 250 $pdf = PDF::loadView('layout.pdf', [
251 'Query' => $Query, 251 'Query' => $Query,
252 'status_work' => $status_work, 252 'status_work' => $status_work,
253 'infoblocks' => $infoblocks 253 'infoblocks' => $infoblocks
254 ])->setPaper('a4', 'landscape'); 254 ])->setPaper('a4', 'landscape');
255 255
256 return $pdf->stream(); 256 return $pdf->stream();
257 } 257 }
258 258
259 public function resume_download_all(Request $request) { 259 public function resume_download_all(Request $request) {
260 $spreadsheet = new Spreadsheet(); 260 $spreadsheet = new Spreadsheet();
261 $sheet = $spreadsheet->getActiveSheet(); 261 $sheet = $spreadsheet->getActiveSheet();
262 262
263 $columnMap = range('A', 'Z'); 263 $columnMap = range('A', 'Z');
264 $columns = []; 264 $columns = [];
265 265
266 foreach (DbExportColumns::toArray() as $key => $value){ 266 foreach (DbExportColumns::toArray() as $key => $value){
267 if ($request->input($key, 0)){ 267 if ($request->input($key, 0)){
268 $sheet->setCellValue("{$columnMap[count($columns)]}1", ucfirst($value)); 268 $sheet->setCellValue("{$columnMap[count($columns)]}1", ucfirst($value));
269 $columns[] = str_replace('__', '.', $key); 269 $columns[] = str_replace('__', '.', $key);
270 } 270 }
271 } 271 }
272 272
273 if (empty($columns)) { 273 if (empty($columns)) {
274 return redirect()->back()->with('error', 'Пожалуйста выберите хотя бы 1 колонку для экспорта.'); 274 return redirect()->back()->with('error', 'Пожалуйста выберите хотя бы 1 колонку для экспорта.');
275 } 275 }
276 276
277 $query = User::select($columns) 277 $query = User::select($columns)
278 ->leftJoin('workers', 'users.id', '=', 'workers.user_id') 278 ->leftJoin('workers', 'users.id', '=', 'workers.user_id')
279 ->leftJoin('job_titles', 'workers.position_work', '=', 'job_titles.id') 279 ->leftJoin('job_titles', 'workers.position_work', '=', 'job_titles.id')
280 ->where('users.is_bd', '=', 1) 280 ->where('users.is_bd', '=', 1)
281 ; 281 ;
282 282
283 $job_title_list = $request->input('job_title_list', []); 283 $job_title_list = $request->input('job_title_list', []);
284 if (!empty($job_title_list)){ 284 if (!empty($job_title_list)){
285 $query->whereIn('job_titles.id', $job_title_list); 285 $query->whereIn('job_titles.id', $job_title_list);
286 } 286 }
287 287
288 $users = $query->get(); 288 $users = $query->get();
289 if ($users->count()){ 289 if ($users->count()){
290 $i = 2; 290 $i = 2;
291 foreach ($users->toArray() as $user){ 291 foreach ($users->toArray() as $user){
292 $j = 0; 292 $j = 0;
293 foreach ($user as $field){ 293 foreach ($user as $field){
294 $sheet->setCellValue("{$columnMap[$j++]}$i", $field); 294 $sheet->setCellValue("{$columnMap[$j++]}$i", $field);
295 } 295 }
296 $i++; 296 $i++;
297 } 297 }
298 } 298 }
299 $writer = new Xlsx($spreadsheet); 299 $writer = new Xlsx($spreadsheet);
300 $fileName = 'DB.xlsx'; 300 $fileName = 'DB.xlsx';
301 301
302 $response = new StreamedResponse(function() use ($writer) { 302 $response = new StreamedResponse(function() use ($writer) {
303 $writer->save('php://output'); 303 $writer->save('php://output');
304 }); 304 });
305 305
306 $response->headers->set('Content-Type', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); 306 $response->headers->set('Content-Type', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
307 $response->headers->set('Content-Disposition', 'attachment;filename="' . $fileName . '"'); 307 $response->headers->set('Content-Disposition', 'attachment;filename="' . $fileName . '"');
308 $response->headers->set('Cache-Control', 'max-age=0'); 308 $response->headers->set('Cache-Control', 'max-age=0');
309 309
310 return $response; 310 return $response;
311 } 311 }
312 312
313 // Кабинет работника 313 // Кабинет работника
314 public function cabinet(Request $request) 314 public function cabinet(Request $request)
315 { 315 {
316 // дата год и месяц 316 // дата год и месяц
317 $get_date = date('Y.m'); 317 $get_date = date('Y.m');
318 318
319 $id = Auth()->user()->id; 319 $id = Auth()->user()->id;
320 320
321 $Infobloks = infobloks::query()->get(); 321 $Infobloks = infobloks::query()->get();
322 322
323 $Worker = Worker::query()->with('users')->with('sertificate')->with('prev_company')-> 323 $Worker = Worker::query()->with('users')->with('sertificate')->with('prev_company')->
324 with('infobloks')->with('place_worker')-> 324 with('infobloks')->with('place_worker')->
325 WhereHas('users', 325 WhereHas('users',
326 function (Builder $query) use ($id) {$query->Where('id', $id); 326 function (Builder $query) use ($id) {$query->Where('id', $id);
327 })->get(); 327 })->get();
328 328
329 $Job_titles = Job_title::query()->where('is_remove', '=', '0')-> 329 $Job_titles = Job_title::query()->where('is_remove', '=', '0')->
330 where('is_bd', '=' , '1')-> 330 where('is_bd', '=' , '1')->
331 OrderByDesc('sort')->OrderBy('name')->get(); 331 OrderByDesc('sort')->OrderBy('name')->get();
332 332
333 333
334 $stat = Static_worker::query()->where('year_month', '=', $get_date) 334 $stat = Static_worker::query()->where('year_month', '=', $get_date)
335 ->where('user_id', '=', $id) 335 ->where('user_id', '=', $id)
336 ->get(); 336 ->get();
337 337
338 338
339 // 10% 339 // 10%
340 340
341 $persent = 10; 341 $persent = 10;
342 $persent1 = 0; 342 $persent1 = 0;
343 $persent2 = 0; 343 $persent2 = 0;
344 $persent3 = 0; 344 $persent3 = 0;
345 $persent4 = 0; 345 $persent4 = 0;
346 $persent5 = 0; 346 $persent5 = 0;
347 347
348 if ((!empty($Worker[0]->telephone)) && 348 if ((!empty($Worker[0]->telephone)) &&
349 (!empty($Worker[0]->email)) && (!empty($Worker[0]->experience)) && 349 (!empty($Worker[0]->email)) && (!empty($Worker[0]->experience)) &&
350 (!empty($Worker[0]->city)) && (!empty($Worker[0]->old_year))) { 350 (!empty($Worker[0]->city)) && (!empty($Worker[0]->old_year))) {
351 // 40% 351 // 40%
352 $persent = $persent + 40; 352 $persent = $persent + 40;
353 $persent1 = 40; 353 $persent1 = 40;
354 } 354 }
355 355
356 //dd($Worker[0]->status_work, $Worker[0]->telephone, $Worker[0]->email, $Worker[0]->experience, $Worker[0]->city, $Worker[0]->old_year); 356 //dd($Worker[0]->status_work, $Worker[0]->telephone, $Worker[0]->email, $Worker[0]->experience, $Worker[0]->city, $Worker[0]->old_year);
357 357
358 if ($Worker[0]->sertificate->count() > 0) { 358 if ($Worker[0]->sertificate->count() > 0) {
359 // 15% 359 // 15%
360 $persent = $persent + 15; 360 $persent = $persent + 15;
361 $persent2 = 15; 361 $persent2 = 15;
362 } 362 }
363 363
364 if ($Worker[0]->infobloks->count() > 0) { 364 if ($Worker[0]->infobloks->count() > 0) {
365 // 20% 365 // 20%
366 $persent = $persent + 20; 366 $persent = $persent + 20;
367 $persent3 = 20; 367 $persent3 = 20;
368 } 368 }
369 369
370 if ($Worker[0]->prev_company->count() > 0) { 370 if ($Worker[0]->prev_company->count() > 0) {
371 // 10% 371 // 10%
372 $persent = $persent + 10; 372 $persent = $persent + 10;
373 $persent4 = 10; 373 $persent4 = 10;
374 } 374 }
375 375
376 if (!empty($Worker[0]->photo)) { 376 if (!empty($Worker[0]->photo)) {
377 // 5% 377 // 5%
378 $persent = $persent + 5; 378 $persent = $persent + 5;
379 $persent5 = 5; 379 $persent5 = 5;
380 } 380 }
381 381
382 $status_work = WorkerStatuses::getWorkerStatuses(); 382 $status_work = WorkerStatuses::getWorkerStatuses();
383 $additional_document_statuses = [0 => 'Не указано', 1 => 'В наличии', 2 => 'Отсутствует']; 383 $additional_document_statuses = [0 => 'Не указано', 1 => 'В наличии', 2 => 'Отсутствует'];
384 $info_blocks = infobloks::query()->OrderBy('name')->get(); 384 $info_blocks = infobloks::query()->OrderBy('name')->get();
385 385
386 $worker = Worker::query() 386 $worker = Worker::query()
387 ->with('users') 387 ->with('users')
388 ->with('sertificate') 388 ->with('sertificate')
389 ->with('prev_company') 389 ->with('prev_company')
390 ->with('infobloks') 390 ->with('infobloks')
391 ->with('place_worker') 391 ->with('place_worker')
392 ->with('job_titles') 392 ->with('job_titles')
393 ->WhereHas('users', function (Builder $query) use ($id) { 393 ->WhereHas('users', function (Builder $query) use ($id) {
394 $query->Where('id', $id); 394 $query->Where('id', $id);
395 }) 395 })
396 ->first(); 396 ->first();
397 if ($worker->dop_info->count()){ 397 if ($worker->dop_info->count()){
398 $worker->dop_info = $worker->dop_info->keyBy('infoblok_id')->toArray(); 398 $worker->dop_info = $worker->dop_info->keyBy('infoblok_id')->toArray();
399 } 399 }
400 400
401 //dd($worker->dop_info); 401 //dd($worker->dop_info);
402 402
403 if ($request->has('print')) { 403 if ($request->has('print')) {
404 dd($Worker); 404 dd($Worker);
405 } else { 405 } else {
406 return view('workers.cabinet', compact( 'persent', 'Job_titles', 'stat', 406 return view('workers.cabinet', compact( 'persent', 'Job_titles', 'stat',
407 'worker', 'info_blocks', 'status_work', 'additional_document_statuses' 407 'worker', 'info_blocks', 'status_work', 'additional_document_statuses'
408 )); 408 ));
409 } 409 }
410 } 410 }
411 411
412 // Сохранение данных 412 // Сохранение данных
413 public function cabinet_save(Worker $worker, Request $request) 413 public function cabinet_save(Worker $worker, Request $request)
414 { 414 {
415 $id = $worker->id; 415 $id = $worker->id;
416 $params = $request->all(); 416 $params = $request->all();
417 $job_title_id = $request->get('job_title_id'); 417 $job_title_id = $request->get('job_title_id');
418 418
419 $rules = [ 419 $rules = [
420 'surname' => ['required', 'string', 'max:255'], 420 'surname' => ['required', 'string', 'max:255'],
421 'name_man' => ['required', 'string', 'max:255'], 421 'name_man' => ['required', 'string', 'max:255'],
422 'email' => ['required', 'string', 'email', 'max:255'], 422 'email' => ['required', 'string', 'email', 'max:255'],
423 423
424 ]; 424 ];
425 425
426 $messages = [ 426 $messages = [
427 'required' => 'Укажите обязательное поле', 427 'required' => 'Укажите обязательное поле',
428 'min' => [ 428 'min' => [
429 'string' => 'Поле «:attribute» должно быть не меньше :min символов', 429 'string' => 'Поле «:attribute» должно быть не меньше :min символов',
430 'integer' => 'Поле «:attribute» должно быть :min или больше', 430 'integer' => 'Поле «:attribute» должно быть :min или больше',
431 'file' => 'Файл «:attribute» должен быть не меньше :min Кбайт' 431 'file' => 'Файл «:attribute» должен быть не меньше :min Кбайт'
432 ], 432 ],
433 'max' => [ 433 'max' => [
434 'string' => 'Поле «:attribute» должно быть не больше :max символов', 434 'string' => 'Поле «:attribute» должно быть не больше :max символов',
435 'integer' => 'Поле «:attribute» должно быть :max или меньше', 435 'integer' => 'Поле «:attribute» должно быть :max или меньше',
436 'file' => 'Файл «:attribute» должен быть не больше :max Кбайт' 436 'file' => 'Файл «:attribute» должен быть не больше :max Кбайт'
437 ] 437 ]
438 ]; 438 ];
439 439
440 $validator = Validator::make($params, $rules, $messages); 440 $validator = Validator::make($params, $rules, $messages);
441 441
442 if ($validator->fails()) { 442 if ($validator->fails()) {
443 return redirect()->route('worker.cabinet')->withErrors($validator); 443 return redirect()->route('worker.cabinet')->withErrors($validator);
444 } else { 444 } else {
445 445
446 if ($request->has('photo')) { 446 if ($request->has('photo')) {
447 if (!empty($worker->photo)) { 447 if (!empty($worker->photo)) {
448 Storage::delete($worker->photo); 448 Storage::delete($worker->photo);
449 } 449 }
450 $params['photo'] = $request->file('photo')->store("worker/$id", 'public'); 450 $params['photo'] = $request->file('photo')->store("worker/$id", 'public');
451 } 451 }
452 452
453 if ($request->has('file')) { 453 if ($request->has('file')) {
454 if (!empty($worker->file)) { 454 if (!empty($worker->file)) {
455 Storage::delete($worker->file); 455 Storage::delete($worker->file);
456 } 456 }
457 $params['file'] = $request->file('file')->store("worker/$id", 'public'); 457 $params['file'] = $request->file('file')->store("worker/$id", 'public');
458 } 458 }
459 459
460 $worker->update($params); 460 $worker->update($params);
461 $use = User::find($worker->user_id); 461 $use = User::find($worker->user_id);
462 $use->surname = $request->get('surname'); 462 $use->surname = $request->get('surname');
463 $use->name_man = $request->get('name_man'); 463 $use->name_man = $request->get('name_man');
464 $use->surname2 = $request->get('surname2'); 464 $use->surname2 = $request->get('surname2');
465 465
466 $use->save(); 466 $use->save();
467 $worker->job_titles()->sync($job_title_id); 467 $worker->job_titles()->sync($job_title_id);
468 468
469 return redirect()->route('worker.cabinet')->with('success', 'Данные были успешно сохранены'); 469 return redirect()->route('worker.cabinet')->with('success', 'Данные были успешно сохранены');
470 } 470 }
471 } 471 }
472 472
473 public function cabinet_save_foto(Worker $worker, Request $request){ 473 public function cabinet_save_foto(Worker $worker, Request $request){
474 $params = ['photo' => null]; 474 $params = ['photo' => null];
475 475
476 if ($request->has('photo')) { 476 if ($request->has('photo')) {
477 if (!empty($worker->photo)) { 477 if (!empty($worker->photo)) {
478 Storage::delete($worker->photo); 478 Storage::delete($worker->photo);
479 } 479 }
480 $params['photo'] = $request->file('photo')->store("worker/$worker->id", 'public'); 480 $params['photo'] = $request->file('photo')->store("worker/$worker->id", 'public');
481 } 481 }
482 482
483 if ($request->has('file')) { 483 if ($request->has('file')) {
484 if (!empty($worker->file)) { 484 if (!empty($worker->file)) {
485 Storage::delete($worker->file); 485 Storage::delete($worker->file);
486 } 486 }
487 $params['file'] = $request->file('file')->store("worker/$worker->id", 'public'); 487 $params['file'] = $request->file('file')->store("worker/$worker->id", 'public');
488 } 488 }
489 489
490 $worker->update($params); 490 $worker->update($params);
491 491
492 return redirect()->route('worker.cabinet'); 492 return redirect()->route('worker.cabinet');
493 } 493 }
494 494
495 // Сообщения данные 495 // Сообщения данные
496 public function messages($type_message) 496 public function messages($type_message)
497 { 497 {
498 $user_id = Auth()->user()->id; 498 $user_id = Auth()->user()->id;
499 499
500 $chats = Chat::get_user_chats($user_id); 500 $chats = Chat::get_user_chats($user_id);
501 $admin_chat = Chat::get_user_admin_chat($user_id); 501 $admin_chat = Chat::get_user_admin_chat($user_id);
502 $user_type = 'worker'; 502 $user_type = 'worker';
503 503
504 return view('workers.messages', compact('chats', 'admin_chat','user_id', 'user_type')); 504 return view('workers.messages', compact('chats', 'admin_chat','user_id', 'user_type'));
505 } 505 }
506 506
507 // Избранный 507 // Избранный
508 public function favorite() 508 public function favorite()
509 { 509 {
510 return view('workers.favorite'); 510 return view('workers.favorite');
511 } 511 }
512 512
513 // Сменить пароль 513 // Сменить пароль
514 public function new_password() 514 public function new_password()
515 { 515 {
516 $email = Auth()->user()->email; 516 $email = Auth()->user()->email;
517 return view('workers.new_password', compact('email')); 517 return view('workers.new_password', compact('email'));
518 } 518 }
519 519
520 // Обновление пароля 520 // Обновление пароля
521 public function save_new_password(Request $request) { 521 public function save_new_password(Request $request) {
522 $use = Auth()->user(); 522 $use = Auth()->user();
523 $request->validate([ 523 $request->validate([
524 'password' => 'required|string', 524 'password' => 'required|string',
525 'new_password' => 'required|string', 525 'new_password' => 'required|string',
526 'new_password2' => 'required|string' 526 'new_password2' => 'required|string'
527 ]); 527 ]);
528 528
529 if ($request->get('new_password') == $request->get('new_password2')) 529 if ($request->get('new_password') == $request->get('new_password2'))
530 if ($request->get('password') !== $request->get('new_password')) { 530 if ($request->get('password') !== $request->get('new_password')) {
531 $credentials = $request->only('email', 'password'); 531 $credentials = $request->only('email', 'password');
532 if (Auth::attempt($credentials, $request->has('save_me'))) { 532 if (Auth::attempt($credentials, $request->has('save_me'))) {
533 533
534 if (!is_null($use->email_verified_at)){ 534 if (!is_null($use->email_verified_at)){
535 535
536 $user_data = User_Model::find($use->id); 536 $user_data = User_Model::find($use->id);
537 $user_data->update([ 537 $user_data->update([
538 'password' => Hash::make($request->get('new_password')), 538 'password' => Hash::make($request->get('new_password')),
539 'pubpassword' => base64_encode($request->get('new_password')), 539 'pubpassword' => base64_encode($request->get('new_password')),
540 ]); 540 ]);
541 return redirect() 541 return redirect()
542 ->route('worker.new_password') 542 ->route('worker.new_password')
543 ->with('success', 'Поздравляю! Вы обновили свой пароль!'); 543 ->with('success', 'Поздравляю! Вы обновили свой пароль!');
544 } 544 }
545 545
546 return redirect() 546 return redirect()
547 ->route('worker.new_password') 547 ->route('worker.new_password')
548 ->withError('Данная учетная запись не было верифицированна!'); 548 ->withError('Данная учетная запись не было верифицированна!');
549 } 549 }
550 } 550 }
551 551
552 return redirect() 552 return redirect()
553 ->route('worker.new_password') 553 ->route('worker.new_password')
554 ->withErrors('Не совпадение данных, обновите пароли!'); 554 ->withErrors('Не совпадение данных, обновите пароли!');
555 } 555 }
556 556
557 // Удаление профиля форма 557 // Удаление профиля форма
558 public function delete_profile() 558 public function delete_profile()
559 { 559 {
560 $login = Auth()->user()->email; 560 $login = Auth()->user()->email;
561 return view('workers.delete_profile', compact('login')); 561 return view('workers.delete_profile', compact('login'));
562 } 562 }
563 563
564 // Удаление профиля код 564 // Удаление профиля код
565 public function delete_profile_result(Request $request) { 565 public function delete_profile_result(Request $request) {
566 $Answer = $request->all(); 566 $Answer = $request->all();
567 $user_id = Auth()->user()->id; 567 $user_id = Auth()->user()->id;
568 $request->validate([ 568 $request->validate([
569 'password' => 'required|string', 569 'password' => 'required|string',
570 ]); 570 ]);
571 571
572 $credentials = $request->only('email', 'password'); 572 $credentials = $request->only('email', 'password');
573 if (Auth::attempt($credentials)) { 573 if (Auth::attempt($credentials)) {
574 Auth::logout(); 574 Auth::logout();
575 $it = User_Model::find($user_id); 575 $it = User_Model::find($user_id);
576 $it->delete(); 576 $it->delete();
577 return redirect()->route('index')->with('success', 'Вы успешно удалили свой аккаунт'); 577 return redirect()->route('index')->with('success', 'Вы успешно удалили свой аккаунт');
578 } else { 578 } else {
579 return redirect()->route('worker.delete_profile') 579 return redirect()->route('worker.delete_profile')
580 ->withErrors( 'Неверный пароль! Нужен корректный пароль'); 580 ->withErrors( 'Неверный пароль! Нужен корректный пароль');
581 } 581 }
582 } 582 }
583 583
584 // Регистрация соискателя 584 // Регистрация соискателя
585 public function register_worker(Request $request) 585 public function register_worker(Request $request)
586 { 586 {
587 $params = $request->all(); 587 $params = $request->all();
588 $params['is_worker'] = 1; 588 $params['is_worker'] = 1;
589 589
590 $rules = [ 590 $rules = [
591 'surname' => ['required', 'string', 'max:255'], 591 'surname' => ['required', 'string', 'max:255'],
592 'name_man' => ['required', 'string', 'max:255'], 592 'name_man' => ['required', 'string', 'max:255'],
593 'email' => ['required', 'email', 'max:255', 'unique:users'], 593 'email' => ['required', 'email', 'max:255', 'unique:users'],
594 'password' => ['required', 'string', 'min:6'] 594 'password' => ['required', 'string', 'min:6']
595 ]; 595 ];
596 596
597 $messages = [ 597 $messages = [
598 'required' => 'Укажите обязательное поле', 598 'required' => 'Укажите обязательное поле',
599 'min' => [ 599 'min' => [
600 'string' => 'Поле «:attribute» должно быть не меньше :min символов', 600 'string' => 'Поле «:attribute» должно быть не меньше :min символов',
601 'integer' => 'Поле «:attribute» должно быть :min или больше', 601 'integer' => 'Поле «:attribute» должно быть :min или больше',
602 'file' => 'Файл «:attribute» должен быть не меньше :min Кбайт' 602 'file' => 'Файл «:attribute» должен быть не меньше :min Кбайт'
603 ], 603 ],
604 'max' => [ 604 'max' => [
605 'string' => 'Поле «:attribute» должно быть не больше :max символов', 605 'string' => 'Поле «:attribute» должно быть не больше :max символов',
606 'integer' => 'Поле «:attribute» должно быть :max или меньше', 606 'integer' => 'Поле «:attribute» должно быть :max или меньше',
607 'file' => 'Файл «:attribute» должен быть не больше :max Кбайт' 607 'file' => 'Файл «:attribute» должен быть не больше :max Кбайт'
608 ] 608 ]
609 ]; 609 ];
610 610
611 $email = $request->get('email'); 611 $email = $request->get('email');
612 if (!preg_match("/^[a-zA-Z0-9_\-.]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-.]+$/", $email)) { 612 if (!preg_match("/^[a-zA-Z0-9_\-.]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-.]+$/", $email)) {
613 return json_encode(Array("ERROR" => "Error: Отсутствует емайл или некорректный емайл")); 613 return json_encode(Array("ERROR" => "Error: Отсутствует емайл или некорректный емайл"));
614 } 614 }
615 615
616 if ($request->get('password') !== $request->get('confirmed')){ 616 if ($request->get('password') !== $request->get('confirmed')){
617 return json_encode(Array("ERROR" => "Error: Не совпадают пароль и подтверждение пароля")); 617 return json_encode(Array("ERROR" => "Error: Не совпадают пароль и подтверждение пароля"));
618 } 618 }
619 619
620 if (strlen($request->get('password')) < 6) { 620 if (strlen($request->get('password')) < 6) {
621 return json_encode(Array("ERROR" => "Error: Недостаточная длина пароля! Увеличьте себе длину пароля!")); 621 return json_encode(Array("ERROR" => "Error: Недостаточная длина пароля! Увеличьте себе длину пароля!"));
622 } 622 }
623 623
624 /*$haystack = $request->get('password'); 624 /*$haystack = $request->get('password');
625 625
626 $specsumbol = Array('!','~', '#', '$', '%', '^', '&', '*', '(', ')', '-', '=', ';', ':', '<', '>', '?'); 626 $specsumbol = Array('!','~', '#', '$', '%', '^', '&', '*', '(', ')', '-', '=', ';', ':', '<', '>', '?');
627 $alpha = Array('Q', 'W', 'E', 'R', 'T', 'Y', 'U', 'I', 'O', 'P', 'A', 'S', 'D', 'F', 'G', 'H', 'J', 'K', 'L', 'Z', 627 $alpha = Array('Q', 'W', 'E', 'R', 'T', 'Y', 'U', 'I', 'O', 'P', 'A', 'S', 'D', 'F', 'G', 'H', 'J', 'K', 'L', 'Z',
628 'X', 'C', 'V', 'B', 'N', 'M'); 628 'X', 'C', 'V', 'B', 'N', 'M');
629 $lenpwd_bool = true; 629 $lenpwd_bool = true;
630 $spec_bool = false; 630 $spec_bool = false;
631 $alpha_bool = false; 631 $alpha_bool = false;
632 632
633 if (strlen($haystack) < 8) $lenpwd_bool = false; 633 if (strlen($haystack) < 8) $lenpwd_bool = false;
634 634
635 foreach ($specsumbol as $it) { 635 foreach ($specsumbol as $it) {
636 if (strpos($haystack, $it) !== false) { 636 if (strpos($haystack, $it) !== false) {
637 $spec_bool = true; 637 $spec_bool = true;
638 } 638 }
639 } 639 }
640 640
641 foreach ($alpha as $it) { 641 foreach ($alpha as $it) {
642 if (strpos($haystack, $it) !== false) { 642 if (strpos($haystack, $it) !== false) {
643 $alpha_bool = true; 643 $alpha_bool = true;
644 } 644 }
645 } 645 }
646 646
647 if ((!$spec_bool) || (!$alpha_bool)) { 647 if ((!$spec_bool) || (!$alpha_bool)) {
648 return json_encode(Array("ERROR" => "Error: Нет спецсимволов в пароле, латинские буквы заглавные, а также один из символов: !~#$%^&*()-=;,:<>?")); 648 return json_encode(Array("ERROR" => "Error: Нет спецсимволов в пароле, латинские буквы заглавные, а также один из символов: !~#$%^&*()-=;,:<>?"));
649 }*/ 649 }*/
650 650
651 if (($request->has('politik')) && ($request->get('politik') == 1)) { 651 if (($request->has('politik')) && ($request->get('politik') == 1)) {
652 $validator = Validator::make($params, $rules, $messages); 652 $validator = Validator::make($params, $rules, $messages);
653 653
654 if ($validator->fails()) { 654 if ($validator->fails()) {
655 return json_encode(array("ERROR" => "Error1: Регистрация оборвалась ошибкой! Не все обязательные поля заполнены. Либо вы уже были зарегистрированы в системе.")); 655 return json_encode(array("ERROR" => "Error1: Регистрация оборвалась ошибкой! Не все обязательные поля заполнены. Либо вы уже были зарегистрированы в системе."));
656 } else { 656 } else {
657 //dd($params); 657 //dd($params);
658 $user = $this->create($params); 658 $user = $this->create($params);
659 event(new Registered($user)); 659 event(new Registered($user));
660 Auth::guard()->login($user); 660 Auth::guard()->login($user);
661 } 661 }
662 if ($user) { 662 if ($user) {
663 return json_encode(Array("REDIRECT" => redirect()->route('worker.cabinet')->getTargetUrl()));; 663 return json_encode(Array("REDIRECT" => redirect()->route('worker.cabinet')->getTargetUrl()));;
664 } else { 664 } else {
665 return json_encode(Array("ERROR" => "Error2: Данные были утеряны!")); 665 return json_encode(Array("ERROR" => "Error2: Данные были утеряны!"));
666 } 666 }
667 667
668 } else { 668 } else {
669 return json_encode(Array("ERROR" => "Error3: Вы не согласились с политикой конфидициальности!")); 669 return json_encode(Array("ERROR" => "Error3: Вы не согласились с политикой конфидициальности!"));
670 } 670 }
671 } 671 }
672 672
673 // Звездная оценка и ответ 673 // Звездная оценка и ответ
674 public function stars_answer(Request $request) { 674 public function stars_answer(Request $request) {
675 $params = $request->all(); 675 $params = $request->all();
676 $rules = [ 676 $rules = [
677 'message' => ['required', 'string', 'max:255'], 677 'message' => ['required', 'string', 'max:255'],
678 ]; 678 ];
679 679
680 $messages = [ 680 $messages = [
681 'required' => 'Укажите обязательное поле', 681 'required' => 'Укажите обязательное поле',
682 'min' => [ 682 'min' => [
683 'string' => 'Поле «:attribute» должно быть не меньше :min символов', 683 'string' => 'Поле «:attribute» должно быть не меньше :min символов',
684 'integer' => 'Поле «:attribute» должно быть :min или больше', 684 'integer' => 'Поле «:attribute» должно быть :min или больше',
685 'file' => 'Файл «:attribute» должен быть не меньше :min Кбайт' 685 'file' => 'Файл «:attribute» должен быть не меньше :min Кбайт'
686 ], 686 ],
687 'max' => [ 687 'max' => [
688 'string' => 'Поле «:attribute» должно быть не больше :max символов', 688 'string' => 'Поле «:attribute» должно быть не больше :max символов',
689 'integer' => 'Поле «:attribute» должно быть :max или меньше', 689 'integer' => 'Поле «:attribute» должно быть :max или меньше',
690 'file' => 'Файл «:attribute» должен быть не больше :max Кбайт' 690 'file' => 'Файл «:attribute» должен быть не больше :max Кбайт'
691 ] 691 ]
692 ]; 692 ];
693 $response_worker = ResponseWork::create($params); 693 $response_worker = ResponseWork::create($params);
694 return redirect()->route('resume_profile', ['worker' => $request->get('worker_id')])->with('success', 'Ваше сообщение было отправлено!'); 694 return redirect()->route('resume_profile', ['worker' => $request->get('worker_id')])->with('success', 'Ваше сообщение было отправлено!');
695 } 695 }
696 696
697 public function TestWorker() 697 public function TestWorker()
698 { 698 {
699 $Use = new User(); 699 $Use = new User();
700 700
701 $Code_user = $Use->create([ 701 $Code_user = $Use->create([
702 'name' => 'surname name_man', 702 'name' => 'surname name_man',
703 'name_man' => 'name_man', 703 'name_man' => 'name_man',
704 'surname' => 'surname', 704 'surname' => 'surname',
705 'surname2' => 'surname2', 705 'surname2' => 'surname2',
706 'subscribe_email' => '1', 706 'subscribe_email' => '1',
707 'email' => 'email@mail.com', 707 'email' => 'email@mail.com',
708 'telephone' => '1234567890', 708 'telephone' => '1234567890',
709 'password' => Hash::make('password'), 709 'password' => Hash::make('password'),
710 'pubpassword' => base64_encode('password'), 710 'pubpassword' => base64_encode('password'),
711 'email_verified_at' => Carbon::now(), 711 'email_verified_at' => Carbon::now(),
712 'is_worker' => 1, 712 'is_worker' => 1,
713 ]); 713 ]);
714 714
715 if ($Code_user->id > 0) { 715 if ($Code_user->id > 0) {
716 $Worker = new Worker(); 716 $Worker = new Worker();
717 $Worker->user_id = $Code_user->id; 717 $Worker->user_id = $Code_user->id;
718 $Worker->position_work = 1; //'job_titles'; 718 $Worker->position_work = 1; //'job_titles';
719 $Worker->email = 'email@email.com'; 719 $Worker->email = 'email@email.com';
720 $Worker->telephone = '1234567890'; 720 $Worker->telephone = '1234567890';
721 $status = $Worker->save(); 721 $status = $Worker->save();
722 722
723 $Title_Worker = new Title_worker(); 723 $Title_Worker = new Title_worker();
724 $Title_Worker->worker_id = $Worker->id; 724 $Title_Worker->worker_id = $Worker->id;
725 $Title_Worker->job_title_id = 1; 725 $Title_Worker->job_title_id = 1;
726 $Title_Worker->save(); 726 $Title_Worker->save();
727 } 727 }
728 } 728 }
729 729
730 // Создание пользователя 730 // Создание пользователя
731 protected function create(array $data) 731 protected function create(array $data)
732 { 732 {
733 $Use = new User(); 733 $Use = new User();
734 734
735 $Code_user = $Use->create([ 735 $Code_user = $Use->create([
736 'name' => $data['surname']." ".$data['name_man'], 736 'name' => $data['surname']." ".$data['name_man'],
737 'name_man' => $data['name_man'], 737 'name_man' => $data['name_man'],
738 'surname' => $data['surname'], 738 'surname' => $data['surname'],
739 'surname2' => $data['surname2'], 739 'surname2' => $data['surname2'],
740 'subscribe_email' => $data['email'], 740 'subscribe_email' => $data['email'],
741 'email' => $data['email'], 741 'email' => $data['email'],
742 'telephone' => $data['telephone'], 742 'telephone' => $data['telephone'],
743 'password' => Hash::make($data['password']), 743 'password' => Hash::make($data['password']),
744 'pubpassword' => base64_encode($data['password']), 744 'pubpassword' => base64_encode($data['password']),
745 'email_verified_at' => Carbon::now(), 745 'email_verified_at' => Carbon::now(),
746 'is_worker' => $data['is_worker'], 746 'is_worker' => $data['is_worker'],
747 ]); 747 ]);
748 748
749 if ($Code_user->id > 0) { 749 if ($Code_user->id > 0) {
750 $Worker = new Worker(); 750 $Worker = new Worker();
751 $Worker->user_id = $Code_user->id; 751 $Worker->user_id = $Code_user->id;
752 $Worker->position_work = $data['job_titles']; 752 $Worker->position_work = $data['job_titles'];
753 $Worker->email = $data['email']; 753 $Worker->email = $data['email'];
754 $Worker->telephone = $data['telephone']; 754 $Worker->telephone = $data['telephone'];
755 $Worker->save(); 755 $Worker->save();
756 756
757 if (isset($Worker->id)) { 757 if (isset($Worker->id)) {
758 $Title_Worker = new Title_worker(); 758 $Title_Worker = new Title_worker();
759 $Title_Worker->worker_id = $Worker->id; 759 $Title_Worker->worker_id = $Worker->id;
760 $Title_Worker->job_title_id = $data['job_titles']; 760 $Title_Worker->job_title_id = $data['job_titles'];
761 $Title_Worker->save(); 761 $Title_Worker->save();
762 } 762 }
763 763
764 return $Code_user; 764 return $Code_user;
765 } 765 }
766 } 766 }
767 767
768 // Вакансии избранные 768 // Вакансии избранные
769 public function colorado(Request $request) { 769 public function colorado(Request $request) {
770 $IP_address = RusDate::ip_addr_client(); 770 $IP_address = RusDate::ip_addr_client();
771 $Arr = Like_vacancy::Query()->select('code_record')->where('ip_address', '=', $IP_address)->get(); 771 $Arr = Like_vacancy::Query()->select('code_record')->where('ip_address', '=', $IP_address)->get();
772 772
773 if ($Arr->count()) { 773 if ($Arr->count()) {
774 $A = Array(); 774 $A = Array();
775 foreach ($Arr as $it) { 775 foreach ($Arr as $it) {
776 $A[] = $it->code_record; 776 $A[] = $it->code_record;
777 } 777 }
778 778
779 $Query = Ad_employer::query()->whereIn('id', $A); 779 $Query = Ad_employer::query()->whereIn('id', $A);
780 } else { 780 } else {
781 $Query = Ad_employer::query()->where('id', '=', '0'); 781 $Query = Ad_employer::query()->where('id', '=', '0');
782 } 782 }
783 783
784 $Query = $Query->with('jobs')-> 784 $Query = $Query->with('jobs')->
785 with('cat')-> 785 with('cat')->
786 with('employer')-> 786 with('employer')->
787 whereHas('jobs_code', function ($query) use ($request) { 787 whereHas('jobs_code', function ($query) use ($request) {
788 if ($request->ajax()) { 788 if ($request->ajax()) {
789 if (null !== ($request->get('job'))) { 789 if (null !== ($request->get('job'))) {
790 $query->where('job_title_id', $request->get('job')); 790 $query->where('job_title_id', $request->get('job'));
791 } 791 }
792 } 792 }
793 })->select('ad_employers.*'); 793 })->select('ad_employers.*');
794 794
795 $Job_title = Job_title::query()->OrderBy('name')->get(); 795 $Job_title = Job_title::query()->OrderBy('name')->get();
796 796
797 $Query_count = $Query->count(); 797 $Query_count = $Query->count();
798 798
799 $Query = $Query->OrderBy('updated_at')->paginate(3); 799 $Query = $Query->OrderBy('updated_at')->paginate(3);
800 800
801 return view('workers.favorite', compact('Query', 801 return view('workers.favorite', compact('Query',
802 'Query_count', 802 'Query_count',
803 'Job_title')); 803 'Job_title'));
804 804
805 } 805 }
806 806
807 //Переписка 807 //Переписка
808 public function dialog(Chat $chat, Request $request) { 808 public function dialog(Chat $chat, Request $request) {
809 // Получение параметров. 809 // Получение параметров.
810 if ($request->has('ad_employer')){ 810 if ($request->has('ad_employer')){
811 $ad_employer = $request->get('ad_employer'); 811 $ad_employer = $request->get('ad_employer');
812 } else { 812 } else {
813 $ad_employer = 0; 813 $ad_employer = 0;
814 } 814 }
815 815
816 $sender = User_Model::query()->with('workers')->with('employers')->where('id', $chat->user_id)->first(); 816 $sender = User_Model::query()->with('workers')->with('employers')->where('id', $chat->user_id)->first();
817 $companion = User_Model::query()->with('workers')->with('employers')->where('id', $chat->to_user_id)->first(); 817 $companion = User_Model::query()->with('workers')->with('employers')->where('id', $chat->to_user_id)->first();
818 818
819 $Messages = Chat::get_chat_messages($chat); 819 $Messages = Chat::get_chat_messages($chat);
820 820
821 Message::where('chat_id_to', '=', $chat->id)->update(['flag_new' => 0]); 821 Message::where('chat_id_to', '=', $chat->id)->update(['flag_new' => 0]);
822 822
823 return view('workers.dialog', compact('companion', 'sender', 'chat', 'Messages', 'ad_employer')); 823 return view('workers.dialog', compact('companion', 'sender', 'chat', 'Messages', 'ad_employer'));
824 } 824 }
825 825
826 // Даунылоады 826 // Даунылоады
827 public function download(Worker $worker) { 827 public function download(Worker $worker) {
828 $arr_house = ['0' => 'Проверка, проверка, проверка, проверка, проверка...']; 828 $arr_house = ['0' => 'Проверка, проверка, проверка, проверка, проверка...'];
829 view()->share('house',$arr_house); 829 view()->share('house',$arr_house);
830 $pdf = PDF::loadView('layout.pdf', $arr_house)->setPaper('a4', 'landscape'); 830 $pdf = PDF::loadView('layout.pdf', $arr_house)->setPaper('a4', 'landscape');
831 return $pdf->stream(); 831 return $pdf->stream();
832 } 832 }
833 833
834 // Поднятие анкеты 834 // Поднятие анкеты
835 public function up(Worker $worker) { 835 public function up(Worker $worker) {
836 $worker->updated_at = Carbon::now(); 836 $worker->updated_at = Carbon::now();
837 $worker->save(); 837 $worker->save();
838 // 0 838 // 0
839 return redirect()->route('worker.cabinet')->with('success', 'Ваша анкета была поднята выше остальных'); 839 return redirect()->route('worker.cabinet')->with('success', 'Ваша анкета была поднята выше остальных');
840 } 840 }
841 841
842 // Форма сертификате 842 // Форма сертификате
843 public function new_sertificate(Worker $worker) { 843 public function new_sertificate(Worker $worker) {
844 return view('workers.sertificate_add', compact('worker')); 844 return view('workers.sertificate_add', compact('worker'));
845 } 845 }
846 846
847 // Добавление сертификата 847 // Добавление сертификата
848 public function add_serificate(SertificationRequest $request) { 848 public function add_serificate(SertificationRequest $request) {
849 $request->validate([ 849 $request->validate([
850 'name' => 'required|string|max:255', 850 'name' => 'required|string|max:255',
851 'end_begin' => 'required|date|date_format:d.m.Y' 851 'end_begin' => 'required|date|date_format:d.m.Y'
852 ], 852 ],
853 [ 853 [
854 'name' => 'Навание сертификата обязательно для заполнения.', 854 'name' => 'Навание сертификата обязательно для заполнения.',
855 'end_begin' => 'Формат даты должен соответствовать дд.мм.гггг' 855 'end_begin' => 'Формат даты должен соответствовать дд.мм.гггг'
856 ]); 856 ]);
857 857
858 $params = $request->all(); 858 $params = $request->all();
859 859
860 $end_begin = DateTime::createFromFormat('d.m.Y', $params['end_begin']); 860 $end_begin = DateTime::createFromFormat('d.m.Y', $params['end_begin']);
861 $params['end_begin'] = $end_begin->format('Y-m-d'); 861 $params['end_begin'] = $end_begin->format('Y-m-d');
862 862
863 $Sertificate = new sertification(); 863 $Sertificate = new sertification();
864 $Sertificate->create($params); 864 $Sertificate->create($params);
865 865
866 return response()->json([ 866 return response()->json([
867 'success' => true 867 'success' => true
868 ]); 868 ]);
869 } 869 }
870 870
871 // Удалить сертификат 871 // Удалить сертификат
872 public function delete_sertificate(sertification $doc) { 872 public function delete_sertificate(sertification $doc) {
873 $doc->delete(); 873 $doc->delete();
874 874
875 return redirect()->route('worker.cabinet'); 875 return redirect()->route('worker.cabinet');
876 } 876 }
877 877
878 // Редактирование сертификата 878 // Редактирование сертификата
879 public function edit_sertificate(Worker $worker, sertification $doc) { 879 public function edit_sertificate(Worker $worker, sertification $doc) {
880 return view('workers.sertificate_edit', compact('doc', 'worker')); 880 return view('workers.sertificate_edit', compact('doc', 'worker'));
881 } 881 }
882 882
883 // Редактирование обновление сертификата 883 // Редактирование обновление сертификата
884 public function update_serificate(SertificationRequest $request, sertification $doc) { 884 public function update_serificate(SertificationRequest $request, sertification $doc) {
885 $request->validate([ 885 $request->validate([
886 'name' => 'required|string|max:255', 886 'name' => 'required|string|max:255',
887 'end_begin' => 'required|date|date_format:d.m.Y' 887 'end_begin' => 'required|date|date_format:d.m.Y'
888 ], 888 ],
889 [ 889 [
890 'name' => 'Навание сертификата обязательно для заполнения.', 890 'name' => 'Навание сертификата обязательно для заполнения.',
891 'end_begin' => 'Формат даты должен соответствовать дд.мм.гггг' 891 'end_begin' => 'Формат даты должен соответствовать дд.мм.гггг'
892 ]); 892 ]);
893 893
894 $all = $request->all(); 894 $all = $request->all();
895 895
896 $end_begin = DateTime::createFromFormat('d.m.Y', $all['end_begin']); 896 $end_begin = DateTime::createFromFormat('d.m.Y', $all['end_begin']);
897 $all['end_begin'] = $end_begin->format('Y-m-d'); 897 $all['end_begin'] = $end_begin->format('Y-m-d');
898 898
899 $doc->worker_id = $all['worker_id']; 899 $doc->worker_id = $all['worker_id'];
900 $doc->name = $all['name']; 900 $doc->name = $all['name'];
901 $doc->end_begin = $all['end_begin']; 901 $doc->end_begin = $all['end_begin'];
902 $doc->save(); 902 $doc->save();
903 903
904 return redirect()->route('worker.cabinet')->with('success', 'Вы успешно отредактировали запись!'); 904 return redirect()->route('worker.cabinet')->with('success', 'Вы успешно отредактировали запись!');
905 } 905 }
906 906
907 public function edit_diploms(Request $request, Worker $worker) { 907 public function edit_diploms(Request $request, Worker $worker) {
908 $dop_info_data = $request->input('diploms'); 908 $dop_info_data = $request->input('diploms');
909 909
910 if (empty($dop_info_data)) { 910 if (empty($dop_info_data)) {
911 return redirect()->route('worker.additional_documents')->with('error', 'Данные не предоставлены!'); 911 return redirect()->route('worker.additional_documents')->with('error', 'Данные не предоставлены!');
912 } 912 }
913 913
914 foreach ($dop_info_data as $infoblok_id => $status) { 914 foreach ($dop_info_data as $infoblok_id => $status) {
915 Dop_info::updateOrCreate( 915 Dop_info::updateOrCreate(
916 ['worker_id' => $worker->id, 'infoblok_id' => $infoblok_id], 916 ['worker_id' => $worker->id, 'infoblok_id' => $infoblok_id],
917 ['status' => $status] 917 ['status' => $status]
918 ); 918 );
919 } 919 }
920 920
921 return redirect()->route('worker.additional_documents')->with('success', 'Успешно сохранено!'); 921 return redirect()->route('worker.additional_documents')->with('success', 'Успешно сохранено!');
922 } 922 }
923 923
924 public function delete_add_diplom(Request $request, Worker $worker) { 924 public function delete_add_diplom(Request $request, Worker $worker) {
925 $infoblok_id = $request->get('infoblok_id'); 925 $infoblok_id = $request->get('infoblok_id');
926 926
927 if (Dop_info::query()->where('worker_id', $worker->id)->where('infoblok_id', $infoblok_id)->count() > 0) 927 if (Dop_info::query()->where('worker_id', $worker->id)->where('infoblok_id', $infoblok_id)->count() > 0)
928 $id = Dop_info::query()->where('worker_id', $worker->id)->where('infoblok_id', $infoblok_id)->delete(); 928 $id = Dop_info::query()->where('worker_id', $worker->id)->where('infoblok_id', $infoblok_id)->delete();
929 else { 929 else {
930 $params['infoblok_id'] = $infoblok_id; 930 $params['infoblok_id'] = $infoblok_id;
931 $params['worker_id'] = $worker->id; 931 $params['worker_id'] = $worker->id;
932 $params['status'] = $request->get('val'); 932 $params['status'] = $request->get('val');
933 $id = Dop_info::create($params); 933 $id = Dop_info::create($params);
934 //$id = $worker->infobloks()->sync([$infoblok_id]); 934 //$id = $worker->infobloks()->sync([$infoblok_id]);
935 } 935 }
936 936
937 //$Infoblocks = infobloks::query()->get(); 937 //$Infoblocks = infobloks::query()->get();
938 return $id; //redirect()->route('worker.cabinet')->getTargetUrl(); //view('workers.ajax.diploms_dop', compact('worker', 'Infoblocks')); 938 return $id; //redirect()->route('worker.cabinet')->getTargetUrl(); //view('workers.ajax.diploms_dop', compact('worker', 'Infoblocks'));
939 } 939 }
940 940
941 941
942 942
943 // Добавление диплома 943 // Добавление диплома
944 public function add_diplom_ajax(Request $request) { 944 public function add_diplom_ajax(Request $request) {
945 // конец 945 // конец
946 $params = $request->all(); 946 $params = $request->all();
947 $count = Dop_info::query()->where('worker_id', $request->get('worker_id'))->where('infoblok_id', $request->get('infoblok_id'))->count(); 947 $count = Dop_info::query()->where('worker_id', $request->get('worker_id'))->where('infoblok_id', $request->get('infoblok_id'))->count();
948 948
949 if ($count == 0) $dop_info = Dop_info::create($params); 949 if ($count == 0) $dop_info = Dop_info::create($params);
950 $Infoblocks = infobloks::query()->get(); 950 $Infoblocks = infobloks::query()->get();
951 $Worker = Worker::query()->where('id', $request->get('worker_id'))->get(); 951 $Worker = Worker::query()->where('id', $request->get('worker_id'))->get();
952 $data = Dop_info::query()->where('worker_id', $request->has('worker_id')); 952 $data = Dop_info::query()->where('worker_id', $request->has('worker_id'));
953 return view('ajax.dop_info', compact('data', 'Infoblocks', 'Worker')); 953 return view('ajax.dop_info', compact('data', 'Infoblocks', 'Worker'));
954 } 954 }
955 955
956 // Добавление диплома без ajax 956 // Добавление диплома без ajax
957 public function add_diplom(Worker $worker) { 957 public function add_diplom(Worker $worker) {
958 $worker_id = $worker->id; 958 $worker_id = $worker->id;
959 $Infoblocks = infobloks::query()->get(); 959 $Infoblocks = infobloks::query()->get();
960 return view('workers.dop_info', compact('worker_id', 'worker', 'Infoblocks')); 960 return view('workers.dop_info', compact('worker_id', 'worker', 'Infoblocks'));
961 } 961 }
962 // Сохранить 962 // Сохранить
963 // Сохраняю диплом 963 // Сохраняю диплом
964 public function add_diplom_save(Request $request) { 964 public function add_diplom_save(Request $request) {
965 $params = $request->all(); 965 $params = $request->all();
966 $count = Dop_info::query()->where('worker_id', $request->get('worker_id'))->where('infoblok_id', $request->get('infoblok_id'))->count(); 966 $count = Dop_info::query()->where('worker_id', $request->get('worker_id'))->where('infoblok_id', $request->get('infoblok_id'))->count();
967 if ($count == 0) $dop_info = Dop_info::create($params); 967 if ($count == 0) $dop_info = Dop_info::create($params);
968 return redirect()->route('worker.cabinet'); 968 return redirect()->route('worker.cabinet');
969 } 969 }
970 970
971 // Добавление стандартного документа 971 // Добавление стандартного документа
972 public function add_document(Worker $worker) { 972 public function add_document(Worker $worker) {
973 return view('workers.docs', compact('worker')); 973 return view('workers.docs', compact('worker'));
974 } 974 }
975 975
976 //Сохранение стандартого документа 976 //Сохранение стандартого документа
977 public function add_document_save(DocumentsRequest $request) { 977 public function add_document_save(DocumentsRequest $request) {
978 $params = $request->all(); 978 $params = $request->all();
979 place_works::create($params); 979 place_works::create($params);
980 return response()->json(['success' => true]); 980 return response()->json(['success' => true]);
981 } 981 }
982 982
983 // Редактирование документа 983 // Редактирование документа
984 public function edit_document(place_works $doc, Worker $worker) { 984 public function edit_document(place_works $doc, Worker $worker) {
985 return view('workers.docs-edit', compact('doc', 'worker')); 985 return view('workers.docs-edit', compact('doc', 'worker'));
986 } 986 }
987 987
988 //Сохранение отредактированного документа 988 //Сохранение отредактированного документа
989 public function edit_document_save(DocumentsRequest $request, place_works $doc) { 989 public function edit_document_save(DocumentsRequest $request, place_works $doc) {
990 $params = $request->all(); 990 $params = $request->all();
991 $doc->update($params); 991 $doc->update($params);
992 992
993 return redirect()->route('worker.cabinet')->with('success', 'Вы успешно отредактировали запись!'); 993 return redirect()->route('worker.cabinet')->with('success', 'Вы успешно отредактировали запись!');
994 } 994 }
995 995
996 // Удаление документа 996 // Удаление документа
997 public function delete_document(place_works $doc) { 997 public function delete_document(place_works $doc) {
998 $doc->delete(); 998 $doc->delete();
999 return redirect()->route('worker.cabinet')->with('success', 'Вы успешно удалили запись!'); 999 return redirect()->route('worker.cabinet')->with('success', 'Вы успешно удалили запись!');
1000 } 1000 }
1001 1001
1002 //Отправка нового сообщения 1002 //Отправка нового сообщения
1003 public function new_message(Request $request) { 1003 public function new_message(Request $request) {
1004 $params = $request->all(); 1004 $params = $request->all();
1005 1005
1006 $id = $params['send_user_id']; 1006 $id = $params['send_user_id'];
1007 $message_params = [ 1007 $message_params = [
1008 'title' => $params['send_title'], 1008 'title' => $params['send_title'],
1009 'text' => $params['send_text'], 1009 'text' => $params['send_text'],
1010 'ad_employer_id' => $params['send_vacancy'], 1010 'ad_employer_id' => $params['send_vacancy'],
1011 'flag_new' => 1 1011 'flag_new' => 1
1012 ]; 1012 ];
1013 1013
1014 $id_message = Message::add_message( 1014 $message = Message::add_message(
1015 $request, 1015 $request,
1016 $params['send_user_id'], 1016 $params['send_user_id'],
1017 $params['send_to_user_id'], 1017 $params['send_to_user_id'],
1018 $message_params, 1018 $message_params,
1019 file_store_path: "worker/$id" 1019 file_store_path: "worker/$id"
1020 ); 1020 );
1021 1021
1022 $data['message_id'] = $id_message; 1022 $data['message_id'] = $message->id;
1023 $data['ad_employer_id'] = $params['send_vacancy']; 1023 $data['ad_employer_id'] = $params['send_vacancy'];
1024 $data['job_title_id'] = $params['send_job_title_id']; 1024 $data['job_title_id'] = $params['send_job_title_id'];
1025 $data['flag'] = 1; 1025 $data['flag'] = 1;
1026 $ad_responce = ad_response::create($data); 1026 $ad_responce = ad_response::create($data);
1027 return redirect()->route('worker.messages', ['type_message' => 'output']); 1027 return redirect()->route('worker.messages', ['type_message' => 'output']);
1028 } 1028 }
1029 1029
1030 1030
1031 public function test123(Request $request) { 1031 public function test123(Request $request) {
1032 $params = $request->all(); 1032 $params = $request->all();
1033 $user1 = $params['user_id']; 1033 $user1 = $params['user_id'];
1034 $user2 = $params['to_user_id']; 1034 $user2 = $params['to_user_id'];
1035 1035
1036 $rules = [ 1036 $rules = [
1037 'text' => 'nullable|required_without:file|min:1|max:150000', 1037 'text' => 'nullable|required_without:file|min:1|max:150000',
1038 'file' => 'nullable|file|mimes:doc,docx,xlsx,csv,txt,xlx,xls,pdf|max:150000' 1038 'file' => 'nullable|file|mimes:doc,docx,xlsx,csv,txt,xlx,xls,pdf|max:150000'
1039 ]; 1039 ];
1040 $messages = [ 1040 $messages = [
1041 'required_without' => 'Поле «:attribute» обязательно, если файл не прикреплен', 1041 'required_without' => 'Поле «:attribute» обязательно, если файл не прикреплен',
1042 'min' => [ 1042 'min' => [
1043 'string' => 'Поле «:attribute» должно быть не меньше :min символов', 1043 'string' => 'Поле «:attribute» должно быть не меньше :min символов',
1044 'integer' => 'Поле «:attribute» должно быть :min или больше', 1044 'integer' => 'Поле «:attribute» должно быть :min или больше',
1045 'file' => 'Файл «:attribute» должен быть не меньше :min Кбайт' 1045 'file' => 'Файл «:attribute» должен быть не меньше :min Кбайт'
1046 ], 1046 ],
1047 'max' => [ 1047 'max' => [
1048 'string' => 'Поле «:attribute» должно быть не больше :max символов', 1048 'string' => 'Поле «:attribute» должно быть не больше :max символов',
1049 'integer' => 'Поле «:attribute» должно быть :max или меньше', 1049 'integer' => 'Поле «:attribute» должно быть :max или меньше',
1050 'file' => 'Файл «:attribute» должен быть не больше :max Кбайт' 1050 'file' => 'Файл «:attribute» должен быть не больше :max Кбайт'
1051 ] 1051 ]
1052 ]; 1052 ];
1053 1053
1054 $validator = Validator::make($request->all(), $rules, $messages); 1054 $validator = Validator::make($request->all(), $rules, $messages);
1055 1055
1056 if ($validator->fails()) { 1056 if ($validator->fails()) {
1057 $chat = Chat::where('user_id', $user1) 1057 $chat = Chat::where('user_id', $user1)
1058 ->where('to_user_id', $user2) 1058 ->where('to_user_id', $user2)
1059 ->where('is_removed', 0) 1059 ->where('is_removed', 0)
1060 ->first() 1060 ->first()
1061 ; 1061 ;
1062 1062
1063 if ($chat->id){ 1063 if ($chat->id){
1064 return redirect()->route('worker.dialog', ['chat' => $chat->id])->withErrors($validator); 1064 return redirect()->route('worker.dialog', ['chat' => $chat->id])->withErrors($validator);
1065 } else { 1065 } else {
1066 return redirect()->route('cabinet.messages', ['type_message' => 'input'])->withErrors($validator); 1066 return redirect()->route('cabinet.messages', ['type_message' => 'input'])->withErrors($validator);
1067 } 1067 }
1068 } else { 1068 } else {
1069 $new_message = Message::add_message($request, $user1, $user2, $request->all(), file_store_path: 'messages'); 1069 $new_message = Message::add_message($request, $user1, $user2, $request->all(), file_store_path: 'messages');
1070 1070
1071 return redirect()->route('worker.dialog', ['chat' => $new_message->chat_id_from]); 1071 return redirect()->route('worker.dialog', ['chat' => $new_message->chat_id_from]);
1072 1072
1073 } 1073 }
1074 } 1074 }
1075 1075
1076 // Информация о предыдущих компаниях 1076 // Информация о предыдущих компаниях
1077 public function new_prev_company(Worker $worker) { 1077 public function new_prev_company(Worker $worker) {
1078 return view('workers.prev_company_form', compact('worker')); 1078 return view('workers.prev_company_form', compact('worker'));
1079 } 1079 }
1080 1080
1081 // Добавление контакта компании 1081 // Добавление контакта компании
1082 public function add_prev_company(PrevCompanyRequest $request) { 1082 public function add_prev_company(PrevCompanyRequest $request) {
1083 // Возвращение параметров 1083 // Возвращение параметров
1084 $all = $request->all(); 1084 $all = $request->all();
1085 PrevCompany::create($all); 1085 PrevCompany::create($all);
1086 1086
1087 return response()->json(['success' => true]); 1087 return response()->json(['success' => true]);
1088 } 1088 }
1089 1089
1090 // Редактирование контакта компании 1090 // Редактирование контакта компании
1091 public function edit_prev_company(PrevCompany $doc, Worker $worker) { 1091 public function edit_prev_company(PrevCompany $doc, Worker $worker) {
1092 return view('workers.prev_company_edit_form', compact('doc', 'worker')); 1092 return view('workers.prev_company_edit_form', compact('doc', 'worker'));
1093 } 1093 }
1094 1094
1095 //Сохранение редактирования контакта компании 1095 //Сохранение редактирования контакта компании
1096 public function update_prev_company(PrevCompany $doc, Request $request){ 1096 public function update_prev_company(PrevCompany $doc, Request $request){
1097 $all = $request->all(); 1097 $all = $request->all();
1098 $doc->update($all); 1098 $doc->update($all);
1099 1099
1100 return redirect()->route('worker.cabinet')->with('success', 'Вы успешно отредактировали запись'); 1100 return redirect()->route('worker.cabinet')->with('success', 'Вы успешно отредактировали запись');
1101 } 1101 }
1102 1102
1103 // Удаление контакта предыдущей компании 1103 // Удаление контакта предыдущей компании
1104 public function delete_prev_company(PrevCompany $doc) { 1104 public function delete_prev_company(PrevCompany $doc) {
1105 $doc->delete(); 1105 $doc->delete();
1106 return redirect()->route('worker.cabinet')->with('success', 'Вы успешно удалили запись!'); 1106 return redirect()->route('worker.cabinet')->with('success', 'Вы успешно удалили запись!');
1107 } 1107 }
1108 } 1108 }
1109 1109
1110 1110