/**
  * 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;
 }
Beispiel #2
0
 /**
  * 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>";
 }