Blame view
app/Http/Controllers/Admin/WorkersController.php
8.89 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; |
be3039cb9 Правки по работод... |
15 |
use Illuminate\Support\Facades\DB; |
32cbe7736 Обновление блейдо... |
16 17 |
use Illuminate\Support\Facades\Storage; use Illuminate\Support\Facades\Validator; |
8de035475 Создание: Структу... |
18 19 20 |
class WorkersController extends Controller { |
673a7768d Правки в админке,... |
21 22 23 24 25 26 |
public $Status_work = [ '0' => 'Не ищу работу', '1' => 'Ищу работу', '2' => 'Не указано' ]; |
8de035475 Создание: Структу... |
27 28 29 30 31 32 |
public function index(Request $request) { if ($request->ajax()) { $user = User::find($request->id); $request->offsetUnset('id'); $user->update($request->all()); } |
be3039cb9 Правки по работод... |
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
$status_work = Job_title::query()->active()->orderBy('name')->get(); $users = User::with('jobtitles')->where('is_worker', '1'); $find_status_work = ""; if (isset($request->status_work)) { $find_status_work = $request->status_work; //$users = $users->where('position_work', '=', $find_status_work); /*if ($request->status_work > 0) $users = $users->with(['workers' => function($query) use ($find_status_work){ $query->where('position_work', $find_status_work); }]); else $users = $users->with('workers');*/ /*$users = $users->where(function($query) use($find_status_work) { $query->with(['workers' => function($query1) use ($find_status_work){ $query1->where('position_work', $find_status_work); }]); });*/ 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 Поисковый движок ... |
67 68 69 70 71 72 |
$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 Настройки форм со... |
73 74 75 |
->orWhere('telephone', 'LIKE', "%$find_key%") ->orWhere('surname', 'LIKE', "%$find_key%") ->orWhere('surname2', 'LIKE', "%$find_key%"); |
93a3f79f0 Поисковый движок ... |
76 77 |
}); } |
313a7a805 Работа с разделом... |
78 |
$users = $users->Realuser()->paginate(15); |
8de035475 Создание: Структу... |
79 |
|
be3039cb9 Правки по работод... |
80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 |
/* $Arr = array(); $where = ''; $find_status_work = ""; if (isset($request->status_work)) { $find_status_work = $request->status_work; //$users = $users->where('position_work', '=', $find_status_work); $where.= ' and (w.position_work = :uid1)'; $Arr['uid1'] = $find_status_work; } $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%") ->orWhere('telephone', 'LIKE', "%$find_key%"); });*/ /*$where.= " and ((u.name_man LIKE %:uid2%) or (w.email LIKE %:uid2%) or (w.telephone LIKE %:uid2%))"; $Arr['uid2'] = $find_key; } //$users = $users->paginate(15); //DB::enableQueryLog(); $users = DB::select('SELECT u.*, w.*, j.* FROM workers w JOIN users u ON u.id = w.user_id JOIN job_titles j ON j.id = w.position_work Where (u.is_worker = 1) '.$where, $Arr); //dump(DB::getQueryLog()); dd($users); */ |
673a7768d Правки в админке,... |
115 |
$status_wor = $this->Status_work; |
8de035475 Создание: Структу... |
116 |
if ($request->ajax()) { |
673a7768d Правки в админке,... |
117 |
return view('admin.worker.index_ajax', compact('users', 'status_wor')); |
8de035475 Создание: Структу... |
118 |
} else { |
673a7768d Правки в админке,... |
119 120 121 122 123 |
return view('admin.worker.index', compact('users', 'find_key', 'find_status_work', 'status_work', 'status_wor')); |
8de035475 Создание: Структу... |
124 125 |
} } |
c84db5243 Форма редактирова... |
126 |
|
313a7a805 Работа с разделом... |
127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 |
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 Обновление блейдо... |
142 143 144 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 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 |
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 Форма редактирова... |
193 |
} |
bb2fb443d Архитектурное доп... |
194 195 |
// кабинет - статистика работников |
e688e0d8a Статистика работн... |
196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 |
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 Архитектурное доп... |
224 |
} |
8de035475 Создание: Структу... |
225 |
} |