/** * 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'); }); }
/** * 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'); }
/** * 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; }
/** * 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>"; }