예제 #1
0
 /**
  * Email Action Notification
  */
 public function emailAction($action)
 {
     $issue = SiteIssue::findOrFail($action->issue_id);
     $site = Site::findOrFail($issue->site_id);
     $email_list = env('EMAIL_ME');
     if (\App::environment('prod')) {
         $email_list = "*****@*****.**";
     } else {
         if (\App::environment('dev')) {
             //$email_list = "jo@capecod.com.au; tara@capecod.com.au; " . $email_list;
         }
     }
     $email_list = explode(';', $email_list);
     $email_list = array_map('trim', $email_list);
     // trim white spaces
     $email_user = \App::environment('prod', 'dev') ? Auth::user()->email : '';
     $data = ['id' => $issue->id, 'site' => $site->name . ' (' . $site->code . ')', 'date' => Carbon::now()->format('d/m/Y g:i a'), 'user_fullname' => Auth::user()->fullname, 'user_company_name' => Auth::user()->company->name, 'action' => $action->action, 'site_owner' => $site->client->clientOfCompany->name];
     $filename = $this->photo;
     Mail::send('emails/siteIssueAction', $data, function ($m) use($email_list, $email_user, $site, $filename, $action) {
         $m->from('*****@*****.**');
         $m->to($email_list);
         if (preg_match(VALID_EMAIL_PATTERN, $email_user)) {
             $m->cc($email_user);
         }
         $m->subject('WHS Issue Update Notification');
     });
 }
예제 #2
0
 /**
  * Update the specified resource in storage.
  *
  * @return \Illuminate\Http\Response
  */
 public function update(Request $request, $id)
 {
     if ($request->ajax()) {
         $issue = SiteIssue::findorFail($id);
         $issue->update($request->all());
         return $issue;
     }
     return view('errors/404');
 }
예제 #3
0
 /**
  * Get Sites current user is authorised to manage + Process datatables ajax request.
  */
 public function getIssues(Request $request)
 {
     //$site_list = Auth::user()->company->reportsToCompany()->siteList()->pluck('id')->toArray();
     $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.issue.report|view.p.issue.report') && Auth::user()->is('full.access|full.read.access|whs.admin|leading.hand|contractor.admin')) {
         $user_list = Auth::user()->company->userList()->pluck('id')->toArray();
     }
     $issue_records = SiteIssue::select(['site_issues.id', 'site_issues.site_id', 'site_issues.created_by', DB::raw('DATE_FORMAT(site_issues.created_at, "%d/%m/%y") AS nicedate'), DB::raw('CONCAT(users.firstname, " ", users.lastname) AS fullname'), 'site_issues.reason', 'site_issues.action_required', 'site_issues.photo', 'site_issues.status', 'site_issues.resolved_date', 'sites.name', 'sites.code'])->join('sites', 'site_issues.site_id', '=', 'sites.id')->join('users', 'site_issues.created_by', '=', 'users.id')->where('site_issues.status', '=', $request->get('status'))->where(function ($q) use($site_list, $user_list) {
         $q->whereIn('site_issues.created_by', $user_list);
         $q->orWhereIn('site_id', $site_list);
     });
     //->orderBy('site_issues.created_at', 'DESC');
     $dt = Datatables::of($issue_records)->addColumn('view', function ($issue) {
         return '<div class="text-center"><a href="/site/safety-issue/' . $issue->id . '"><i class="fa fa-search"></i></a></div>';
     })->addColumn('supervisor', function ($issue) {
         $s = Site::find($issue->site_id);
         return $s->supervisorsSeparatedByComma();
     })->editColumn('action_required', function ($issue) {
         return $issue->action_required ? 'Yes' : 'No';
     })->editColumn('photo', function ($issue) {
         if ($issue->photo && file_exists('filebank/site/' . $issue->site_id . '/issue/' . $issue->photo)) {
             return '<a href="/filebank/site/' . $issue->site_id . '/issue/' . $issue->photo . '" data-lity class="html5lightboxXXXX btn btn-xs blue"><i class="fa fa-picture-o"></a>';
         }
         return '';
     })->filterColumn('fullname', 'whereRaw', "CONCAT(users . firstname, ' ', users . lastname) like ? ", [" % \$1 % "])->make(true);
     return $dt;
 }
예제 #4
0
 /**
  * Migrate Issues
  */
 public function issues()
 {
     echo "<h1>Migrating Site Actions</h1>";
     $issues = zAction::all();
     $issues->each(function ($issue) {
         echo "<b>" . $issue->jobnum . "</b>({$issue->sub_id})<br>";
         if ($issue->jobnum) {
             if ($issue->jobnum == '003') {
                 $issue->jobnum = '0003';
             }
             $site = Site::where('code', $issue->jobnum)->first();
             $user = User::where('username', $issue->sub_id)->first();
             $status = '1';
             if ($issue->resolved == "y") {
                 $status = '0';
             }
             $req = '1';
             if ($issue->codreq == "y") {
                 $req = '0';
             }
             $newIssue = SiteIssue::create(array('site_id' => $site->id, 'reason' => reformatOldStr($issue->reason), 'action_required' => $req, 'notes' => reformatOldStr($issue->notes), 'resolved_date' => $issue->resdate, 'status' => $status, 'created_at' => $issue->date, 'updated_at' => $issue->date, 'created_by' => $user->id));
             if ($issue->photo) {
                 list($s, $u, $photo) = explode('_', $issue->photo, 3);
                 $newIssue->photo = 'issue-' . $site->code . '-' . $newIssue->id . '-' . $user->id . '-' . $photo;
                 $newIssue->save();
                 // Copy file to new location
                 if (file_exists('filebankOrig/photos/' . $issue->photo)) {
                     $dir = 'filebank/site/' . $site->id . '/issue/';
                     $newfile = $dir . $newIssue->photo;
                     if (!file_exists($dir)) {
                         mkdir($dir, 0777, true);
                         echo "created directory {$dir} <br>";
                     }
                     if (!file_exists($newfile)) {
                         echo "copying to {$newfile}<br>";
                         if (!copy('filebankOrig/photos/' . $issue->photo, $newfile)) {
                             echo "*** FAILED to copy {$issue->photo}...\n";
                         }
                     }
                 }
             }
             $newIssueAction = SiteIssueAction::create(array('issue_id' => $newIssue->id, 'action' => reformatOldStr($issue->sub_action), 'created_by' => $user->id, 'created_at' => $issue->date, 'updated_at' => $issue->date));
             $site_super = $site->supervisors->pluck('id')->toArray();
             if ($issue->cod_action) {
                 $newIssueAction2 = SiteIssueAction::create(array('issue_id' => $newIssue->id, 'action' => reformatOldStr($issue->cod_action), 'created_by' => $site_super[0], 'created_at' => $issue->date, 'updated_at' => $issue->date));
             }
             if ($issue->notes) {
                 $newIssueAction3 = SiteIssueAction::create(array('issue_id' => $newIssue->id, 'action' => reformatOldStr($issue->notes), 'created_by' => $site_super[0], 'created_at' => $issue->resdate, 'updated_at' => $issue->resdate));
             }
         }
     });
     echo "<h1>Completed</h1>";
 }