/** * Get Accidents current user is authorised to manage + Process datatables ajax request. */ public function getAccidents(Request $request) { $site_list = []; // Allow Supervisor + Construction Manager to view their sites if (Auth::user()->is('construction.manager')) { $site_list = Auth::user()->company->siteList()->pluck('id')->toArray(); } else { if (Auth::user()->is('supervisor')) { $site_list = Auth::user()->supervisorSiteList()->pluck('id')->toArray(); } } $user_list = [Auth::user()->id]; // Allow senior users with full access, WHS or child companies leading hand/admin to view their own users reports if (Auth::user()->can('view.accident.report|view.p.accident.report') && Auth::user()->is('full.access|full.read.access|whs.admin|leading.hand|contractor.admin')) { $user_list = Auth::user()->company->userList()->pluck('id')->toArray(); } $accident_records = SiteAccident::select(['site_accidents.id', 'site_accidents.site_id', 'site_accidents.name', 'site_accidents.location', 'site_accidents.nature', 'site_accidents.status', 'site_accidents.resolved_date', DB::raw('DATE_FORMAT(site_accidents.date, "%d/%m/%y") AS nicedate'), DB::raw('sites.name AS sitename'), 'sites.code'])->join('sites', 'site_accidents.site_id', '=', 'sites.id')->where('site_accidents.status', '=', $request->get('status'))->where(function ($q) use($site_list, $user_list) { $q->whereIn('site_accidents.created_by', $user_list); $q->orWhereIn('site_accidents.site_id', $site_list); }); $dt = Datatables::of($accident_records)->addColumn('view', function ($accident) { return '<div class="text-center"><a href="/site/accident/' . $accident->id . '"><i class="fa fa-search"></i></a></div>'; })->make(true); return $dt; }
/** * Migrate Accidents */ public function accidents() { echo "<h1>Migrating Accidents</h1>"; $accidents = zAccident::all(); $accidents->each(function ($accident) { echo "<b>" . $accident->name . "</b>({$accident->jobnum})<br>"; $site = Site::where('code', $accident->jobnum)->first(); $user = User::where('username', $accident->createdby)->first(); $status = '1'; if ($accident->resolved == "y") { $status = '0'; } $newAccident = SiteAccident::create(array('site_id' => $site->id, 'date' => $accident->date, 'name' => $accident->name, 'age' => $accident->age, 'location' => reformatOldStr($accident->location), 'nature' => reformatOldStr($accident->nature), 'occupation' => reformatOldStr($accident->occupation), 'referred' => $accident->referred, 'damage' => $accident->damage, 'info' => reformatOldStr($accident->info), 'action' => reformatOldStr($accident->action), 'occupation' => reformatOldStr($accident->occupation), 'notes' => reformatOldStr($accident->notes), 'created_at' => $accident->created, 'created_by' => $user->id, 'updated_at' => $accident->created, 'updated_by' => $user->id, 'status' => $status, 'resolved_date' => $accident->resdate)); }); echo "<h1>Completed</h1>"; }