Blame view
app/Http/Controllers/Admin/WorkersController.php
6.77 KB
8de035475 Создание: Структу... |
1 2 3 4 5 |
<?php namespace App\Http\Controllers\Admin; use App\Http\Controllers\Controller; |
313a7a805 Работа с разделом... |
6 |
use App\Http\Requests\WorkerRequest; |
32cbe7736 Обновление блейдо... |
7 8 |
use App\Models\Company; use App\Models\Job_title; |
e688e0d8a Статистика работн... |
9 |
use App\Models\Static_worker; |
8de035475 Создание: Структу... |
10 |
use App\Models\User; |
c84db5243 Форма редактирова... |
11 |
use App\Models\Worker; |
313a7a805 Работа с разделом... |
12 |
use Carbon\Carbon; |
be3039cb9 Правки по работод... |
13 |
use Illuminate\Database\Eloquent\Builder; |
8de035475 Создание: Структу... |
14 |
use Illuminate\Http\Request; |
32cbe7736 Обновление блейдо... |
15 16 |
use Illuminate\Support\Facades\Storage; use Illuminate\Support\Facades\Validator; |
0388bf4f0 Задачи 44,46,48 |
17 |
use App\Enums\WorkerStatuses; |
8de035475 Создание: Структу... |
18 19 20 21 22 23 24 25 26 |
class WorkersController extends Controller { public function index(Request $request) { if ($request->ajax()) { $user = User::find($request->id); $request->offsetUnset('id'); $user->update($request->all()); } |
be3039cb9 Правки по работод... |
27 |
$status_work = Job_title::query()->active()->orderBy('name')->get(); |
5558bda14 fix workers error... |
28 |
$users = User::with(['jobtitles', 'workers'])->realuser(); |
9b4580039 Медиа сущность, д... |
29 |
$all_worker = $users->count(); |
be3039cb9 Правки по работод... |
30 31 32 33 |
$find_status_work = ""; if (isset($request->status_work)) { $find_status_work = $request->status_work; |
be3039cb9 Правки по работод... |
34 |
|
be3039cb9 Правки по работод... |
35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
if ($request->status_work > 0) { $users = $users->with('workers')-> whereHas('workers', function (Builder $query) use ($find_status_work) { $query->where('position_work', $find_status_work); } ); } else { $users = $users->with('workers'); } } else { $users = $users->with('workers'); } |
93a3f79f0 Поисковый движок ... |
49 50 51 52 53 54 |
$find_key = ""; if (isset($request->find)) { $find_key = $request->find; $users = $users->where(function($query) use($find_key) { $query->Where('name_man', 'LIKE', "%$find_key%") ->orWhere('email', 'LIKE', "%$find_key%") |
3e44ec515 Настройки форм со... |
55 56 57 |
->orWhere('telephone', 'LIKE', "%$find_key%") ->orWhere('surname', 'LIKE', "%$find_key%") ->orWhere('surname2', 'LIKE', "%$find_key%"); |
93a3f79f0 Поисковый движок ... |
58 59 |
}); } |
84f2ac341 Задачи 42,43,50 |
60 |
$users = $users->orderByDesc('id')->Realuser()->paginate(15); |
be3039cb9 Правки по работод... |
61 |
|
0388bf4f0 Задачи 44,46,48 |
62 |
$status_wor = WorkerStatuses::getWorkerStatuses(); |
673a7768d Правки в админке,... |
63 |
|
8de035475 Создание: Структу... |
64 |
if ($request->ajax()) { |
673a7768d Правки в админке,... |
65 |
return view('admin.worker.index_ajax', compact('users', 'status_wor')); |
8de035475 Создание: Структу... |
66 |
} else { |
673a7768d Правки в админке,... |
67 68 69 70 |
return view('admin.worker.index', compact('users', 'find_key', 'find_status_work', 'status_work', |
9b4580039 Медиа сущность, д... |
71 72 |
'status_wor', 'all_worker')); |
8de035475 Создание: Структу... |
73 74 |
} } |
c84db5243 Форма редактирова... |
75 |
|
313a7a805 Работа с разделом... |
76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 |
public function form_add_worker(User $user) { $job_titles = Job_title::query()->active()->orderBy('name')->get(); $time_end_anketa = 'Создана только'; $long_days = Company::find(1)->time_resume; $time_end_anketa = date("d.m.Y H:i:s", strtotime(Carbon::now() . "+$long_days days")); return view('admin.worker.add', compact('user', 'job_titles', 'time_end_anketa')); } public function form_store_worker(WorkerRequest $request, User $user) { $params = $request->all(); $worker = Worker::create($params); return redirect()->route('admin.basedata'); } |
32cbe7736 Обновление блейдо... |
91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 |
public function form_edit_worker(Worker $worker) { $job_titles = Job_title::query()->active()->orderBy('name')->get(); $time_end_anketa = 'Бессрочно'; if (!empty($worker->updated_at)) { $long_days = Company::find(1)->time_resume; $time_end_anketa = date("d.m.Y H:i:s", strtotime($worker->updated_at . "+$long_days days")); } return view('admin.worker.edit', compact('worker', 'job_titles', 'time_end_anketa')); } public function form_update_worker(Request $request, Worker $worker) { $params = $request->all(); $rules = [ 'email' => 'email|string|max:255', //'photo' => 'mimes:jpeg,jpg,png|max:15000', ]; $messages = [ 'required' => 'Укажите обязательное поле «:attribute»', 'confirmed' => 'Пароли не совпадают', 'email' => 'Введите корректный email', 'min' => [ 'string' => 'Поле «:attribute» должно быть не меньше :min символов', 'file' => 'Файл «:attribute» должен быть не меньше :min Кбайт' ], 'max' => [ 'string' => 'Поле «:attribute» должно быть не больше :max символов', 'file' => 'Файл «:attribute» должен быть не больше :max Кбайт' ], ]; $validator = Validator::make($params, $rules, $messages); if ($validator->fails()) { return back()->withErrors($validator)->withInput(); } else { $user_id = $worker->user_id; if ($request->has('photo')) { if (!empty($worker->photo)) { Storage::delete($worker->photo); } if (!empty($request->photo)) $params['photo'] = $request->file('photo')->store("workers/$user_id", 'public'); } $worker->update($params); return redirect()->route('admin.workers'); } |
c84db5243 Форма редактирова... |
142 |
} |
bb2fb443d Архитектурное доп... |
143 144 |
// кабинет - статистика работников |
e688e0d8a Статистика работн... |
145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 |
public function static_workers(Request $request) { $stat = Static_worker::with('users'); //->join('users', 'users.id', '=', 'static_workers.user_id'); $users = User::query()->active()->OrderBy('id')->get(); $periods = Static_worker::query()->distinct('year_month')->select('year_month')->get(); if ($request->ajax()) { if (isset($request->user_id)) if (!$request->user_id == "0") $stat = $stat->Where('user_id', '=', $request->user_id); if (isset($request->year_month)) { if (!$request->year_month == "0") $stat = $stat->Where('year_month', '=', $request->year_month); } } $stat = $stat->OrderByDesc('year_month'); //->OrderBy('users.name'); //OrderBy('users.name')-> /*$stat->implode() loadMissing(['users' => function (Builder $query) { $query->orderBy('name', 'asc'); }]);*/ $stat = $stat->paginate(15); if ($request->ajax()) return view('admin.static.index_workers_ajax', compact('stat')); else return view('admin.static.index_workers', compact('stat', 'users', 'periods')); |
bb2fb443d Архитектурное доп... |
173 |
} |
8de035475 Создание: Структу... |
174 |
} |