コード例 #1
0
ファイル: SiteIssueAction.php プロジェクト: unclefudge/whs
 /**
  * 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
ファイル: SiteAccident.php プロジェクト: unclefudge/whs
 /**
  * Email Accident
  */
 public function emailAccident()
 {
     $site = Site::findOrFail($this->site_id);
     $email_list = env('EMAIL_ME');
     if (\App::environment('dev', 'prod')) {
         $email_list = "robert@capecod.com.au; gary@capecod.com.au; tara@capecod.com.au; jo@capecod.com.au; " . $email_list;
         foreach ($site->supervisors as $super) {
             if (preg_match(VALID_EMAIL_PATTERN, $super->email)) {
                 $email_list .= '; ' . $super->email;
             }
         }
     }
     $email_list = trim($email_list);
     $email_list = explode(';', $email_list);
     $email_list = array_map('trim', $email_list);
     // trim white spaces
     $email_user = \App::environment('dev', 'prod') ? Auth::user()->email : '';
     $data = ['id' => $this->id, 'site' => $site->name . ' (' . $site->code . ')', 'address' => $site->address . ', ' . $site->SuburbStatePostcode, 'date' => $this->date->format('d/m/Y g:i a'), 'worker' => $this->name . ' (age: ' . $this->age . ')', 'occupation' => $this->occupation, 'location' => $this->location, 'nature' => $this->nature, 'referred' => $this->referred, 'damage' => $this->damage, 'description' => $this->info, 'user_fullname' => User::find($this->created_by)->fullname, 'user_company_name' => User::find($this->created_by)->company->name, 'submit_date' => $this->created_at->format('d/m/Y g:i a'), 'site_owner' => $site->client->clientOfCompany->name];
     Mail::send('emails.siteAccident', $data, function ($m) use($email_list, $email_user) {
         $m->from('*****@*****.**');
         $m->to($email_list);
         if (preg_match(VALID_EMAIL_PATTERN, $email_user)) {
             $m->cc($email_user);
         }
         $m->subject('WHS Accident Notification');
     });
 }
コード例 #3
0
ファイル: SiteIssue.php プロジェクト: unclefudge/whs
 /**
  * Email Issue
  */
 public function emailIssue($action)
 {
     $site = Site::findOrFail($this->site_id);
     $email_list = env('EMAIL_ME');
     if (\App::environment('prod')) {
         $email_list = "gary@capecod.com.au; jo@capecod.com.au; tara@capecod.com.au; " . $email_list;
         foreach ($site->supervisors as $super) {
             if (preg_match(VALID_EMAIL_PATTERN, $super->email)) {
                 $email_list .= '; ' . $super->email;
             }
         }
     } 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' => $this->id, 'site' => $site->name . ' (' . $site->code . ')', 'address' => $site->address . ', ' . $site->SuburbStatePostcode, 'date' => Carbon::now()->format('d/m/Y g:i a'), 'user_fullname' => Auth::user()->fullname, 'user_company_name' => Auth::user()->company->name, 'reason' => $this->reason, 'action' => $action->action, 'site_owner' => $site->client->clientOfCompany->name];
     $filename = $this->photo;
     Mail::send('emails/siteIssue', $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 Notification');
         $file_path = public_path('filebank/site/' . $site->id . '/issue/' . $filename);
         if ($filename && file_exists($file_path)) {
             $m->attach($file_path);
         }
     });
 }
コード例 #4
0
ファイル: PdfController.php プロジェクト: unclefudge/whs
 public function plannerSite($site_id, $date, $weeks)
 {
     $site = Site::findOrFail($site_id);
     //return view('pdf.plan-site', compact('site'));
     $pdf = PDF::loadView('pdf.plan-site', compact('site', 'date', 'weeks'))->setOrientation('landscape')->setOption('margin-bottom', 0);
     //$file = public_path('filebank/company/' . $doc->for_company_id . '/wms/' . $doc->name . ' v' . $doc->version . ' ref-' . $doc->id . ' ' . '.pdf');
     //if (file_exists($file))
     //    unlink($file);
     //$pdf->save($file);
     return $pdf->stream();
     //return $pdf->download('invoice.pdf');
     //PDF::loadHTML($html)->setPaper('a4')->setOrientation('landscape')->setOption('margin-bottom', 0)->save('myfile.pdf')
 }
コード例 #5
0
 /**
  * Store a newly created resource in storage.
  *
  * @return \Illuminate\Http\Response
  */
 public function store(SiteIssueRequest $request)
 {
     // Check authorisation and throw 404 if not
     if (!Auth::user()->allowedTo('add', 'issue.report')) {
         return view('errors/404');
     }
     $issue_request = $request->except('action');
     $site = Site::findOrFail($issue_request['site_id']);
     $issue = SiteIssue::create($issue_request);
     //Create action taken + attach image to issue
     if ($issue) {
         $action_request = $request->only('action');
         $action = $issue->actions()->save(new SiteIssueAction($action_request));
         // Handle attached Photo or Video
         if ($request->hasFile('media')) {
             $issue->saveAttachedMedia($request->file('media'));
         }
         // Email issue
         $issue->emailIssue($action);
     }
     Toastr::success("Lodged safety issue");
     $worksite = Site::findOrFail($issue_request['site_id']);
     return view('pages/home', compact('worksite'));
 }
コード例 #6
0
ファイル: Company.php プロジェクト: unclefudge/whs
 /**
  * A dropdown list of sites this company is on a Planner for
  *
  * @return array
  */
 public function sitePlannerListSelect($prompt = '', $status = '1')
 {
     $array = [];
     foreach ($this->sitePlannerList($status) as $site) {
         $record = Site::findOrFail($site->id);
         if ($record->status) {
             $array[$site->id] = $record->name;
         }
     }
     asort($array);
     return $prompt && count($array) > 1 ? $array = array('' => 'Select Site') + $array : $array;
 }
コード例 #7
0
ファイル: User.php プロジェクト: unclefudge/whs
 /**
  * A dropdown list of sites this supervisor has authority over
  *
  * @return array
  */
 public function supervisorSiteListSelect($status = '', $prompt = '')
 {
     $array = [];
     $client_list = $this->company->clients->pluck('id')->toArray();
     if ($status) {
         $collection = Site::where('status', $status)->whereIn('client_id', $client_list)->get();
     } else {
         $collection = Site::whereIn('client_id', $client_list)->get();
     }
     foreach ($collection as $site) {
         $record = Site::findOrFail($site->id);
         if ($this->is('supervisor') && $record->isUserSupervisor($this)) {
             $array[$site->id] = $record->name;
         } else {
             if ($this->is('full.access|full.read.access|whs.admin|general.admin|construction.manager')) {
                 $array[$site->id] = $record->name;
             }
         }
     }
     asort($array);
     if ($prompt == 'all') {
         return $prompt && count($array) > 1 ? $array = array('' => 'All Sites') + $array : $array;
     }
     return $prompt && count($array) > 1 ? $array = array('' => 'Select Site') + $array : $array;
 }
コード例 #8
0
ファイル: SiteController.php プロジェクト: unclefudge/whs
 /**
  * Get basic Site details.
  */
 public function getSiteDetails($id)
 {
     //echo "[$id]<br>";
     $site = Site::findOrFail($id);
     return $site;
 }
コード例 #9
0
 public function allocateSiteSupervisor(Request $request, $site_id, $user_id)
 {
     $site = Site::findOrFail($site_id);
     $site->supervisors()->detach();
     $site->supervisors()->attach($user_id);
     $site->status = 1;
     $site->save();
     return;
 }
コード例 #10
0
 public function jobstartPDF(Request $request)
 {
     $today = Carbon::now()->format('Y-m-d');
     $planner = DB::table('site_planner AS p')->select(['p.id', 'p.site_id', 'p.entity_type', 'p.entity_id', 'p.task_id', 'p.from', 't.code'])->join('trade_task as t', 'p.task_id', '=', 't.id')->whereDate('p.from', '>=', $today)->where('t.code', 'START')->orderBy('p.from')->get();
     //dd($planner);
     $startdata = [];
     foreach ($planner as $plan) {
         $site = Site::findOrFail($plan->site_id);
         $entity_name = "Carpenter";
         if ($plan->entity_type == 'c') {
             $entity_name = Company::find($plan->entity_id)->name;
         }
         $startdata[] = ['date' => Carbon::createFromFormat('Y-m-d H:i:s', $plan->from)->format('M j'), 'code' => $site->code, 'name' => $site->name, 'company' => $entity_name];
     }
     $pdf = PDF::loadView('pdf/plan-jobstart', compact('startdata'));
     if ($request->has('view_pdf')) {
         return $pdf->stream();
     }
     if ($request->has('email_pdf')) {
         /*$file = public_path('filebank/tmp/jobstart-' . Auth::user()->id  . '.pdf');
           if (file_exists($file))
               unlink($file);
           $pdf->save($file);*/
         if ($request->get('email_list')) {
             $email_list = explode(';', $request->get('email_list'));
             $email_list = array_map('trim', $email_list);
             // trim white spaces
             $data = ['user_fullname' => Auth::user()->fullname, 'user_company_name' => Auth::user()->company->name, 'startdata' => $startdata];
             Mail::send('emails/jobstart', $data, function ($m) use($email_list, $data) {
                 $user_email = Auth::user()->email;
                 $user_email ? $send_from = $user_email : ($send_from = '*****@*****.**');
                 $m->from($send_from, Auth::user()->fullname);
                 $m->to($email_list);
                 $m->subject('Upcoming Job Start Dates');
             });
             if (count(Mail::failures()) > 0) {
                 foreach (Mail::failures as $email_address) {
                     Toastr::error("Failed to send to {$email_address}");
                 }
             } else {
                 Toastr::success("Sent email");
             }
             return view('planner/export/start');
         }
     }
 }