Example #1
0
 /**
  * like-Action to call with class_name and object_id
  *
  * @return null
  */
 public function likeORdis($class_name, $object_id)
 {
     if (Auth::user()) {
         $class_name = "\\" . self::getAppNamespace() . ucfirst($class_name);
         $object = $class_name::find($object_id);
         if ($object->liked(Auth::user())) {
             if ($object->dislike(\Auth::user())) {
                 $type = "disliked";
             } else {
                 $type = "error";
             }
             return \Response::json([$type, $object->getLikeCount()]);
         } else {
             if ($object->like(\Auth::user())) {
                 $type = "liked";
             } else {
                 $type = "error";
             }
             return \Response::json([$type, $object->getLikeCount(), trans("messages.liked")]);
         }
     } else {
         Toastr::warning("please login or register to LIKE or DISLIKE!", $title = "login required", $options = []);
         return \Response::json("error");
     }
 }
Example #2
0
 /**
  * Save attached Media to existing Issue
  */
 public function saveAttachedMedia($file)
 {
     $site = Site::findOrFail($this->site_id);
     $path = "filebank/site/" . $site->id . '/issue';
     $name = 'issue-' . $site->code . '-' . $this->id . '-' . Auth::user()->id . '-' . sha1(time()) . '.' . strtolower($file->getClientOriginalExtension());
     $path_name = $path . '/' . $name;
     $file->move($path, $name);
     // resize the image to a width of 1024 and constrain aspect ratio (auto height)
     if (exif_imagetype($path_name)) {
         Image::make(url($path_name))->resize(1024, null, function ($constraint) {
             $constraint->aspectRatio();
             $constraint->upsize();
         })->save($path_name);
     } else {
         Toastr::error("Bad image");
     }
     $this->photo = $name;
     $this->save();
 }
Example #3
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'));
 }
Example #4
0
 /**
  * Update the security for user resource in storage.
  *
  * @return \Illuminate\Http\Response
  */
 public function updateSecurity(Request $request, $username)
 {
     $user = User::where(compact('username'))->firstOrFail();
     // Check authorisation and throw 404 if not
     if (!Auth::user()->is('security') || !Auth::user()->allowedTo('edit', 'user', $user)) {
         return view('errors/404');
     }
     // Update Roles
     $roles = $request->get('roles');
     $user->detachAllRoles();
     if ($roles) {
         foreach ($roles as $role) {
             $user->attachRole($role);
         }
     }
     // Update Permissions
     $permissions = $request->get('permissions');
     $user->detachAllPermissions();
     if ($permissions) {
         foreach ($permissions as $permission) {
             $user->attachPermission($permission);
         }
     }
     Toastr::success("Saved changes");
     return redirect('/user/' . $user->username . '/settings/security');
 }
 /**
  * Update the specified resource in storage.
  *
  * @return \Illuminate\Http\Response
  */
 public function update(CompanyLeaveRequest $request, $id)
 {
     $leave = CompanyLeave::findOrFail($id);
     // Check authorisation and throw 404 if not
     if (!Auth::user()->allowedTo('edit', 'company', $leave->company)) {
         return view('errors/404');
     }
     // Format date from daterange picker to mysql format
     $leave_request = $request->all();
     $leave_request['from'] = Carbon::createFromFormat('d/m/Y H:i', $request->get('from') . '00:00')->toDateTimeString();
     $leave_request['to'] = Carbon::createFromFormat('d/m/Y H:i', $request->get('to') . '00:00')->toDateTimeString();
     $leave->update($leave_request);
     Toastr::success("Saved changes");
     return redirect('/company/leave/' . $leave->id . '/edit');
 }
Example #6
0
 /**
  * Process Site Check-in.
  *
  * @return \Illuminate\Http\Response
  */
 public function processCheckin(SiteCheckinRequest $request, $slug)
 {
     $site = Site::where(compact('slug'))->firstOrFail();
     if ($request->has('safe_site')) {
         $site->attendance()->save(new SiteAttendance(['safe_site' => '1']));
     } else {
         $site->attendance()->save(new SiteAttendance(['safe_site' => '0']));
         // Create Issue + attach to site
         if ($request->has('action_required')) {
             $issue = $site->issues()->save(new SiteIssue($request->only('reason', 'action_required')));
         } else {
             $issue = $site->issues()->save(new SiteIssue($request->only('reason')));
         }
         //Create action taken + attach 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);
         }
     }
     // if Today add them to Roster if Company is on Planer but user not on Roster
     $today = Carbon::now()->format('Y-m-d');
     if ($site->isCompanyOnPlanner(Auth::user()->company->id, $today) && !$site->isUserOnRoster(Auth::user()->id, $today)) {
         $newRoster = SiteRoster::create(array('site_id' => $site->id, 'user_id' => Auth::user()->id, 'date' => $today . ' 00:00:00', 'created_by' => '1', 'updated_by' => '1'));
     }
     Toastr::success("Checked in");
     return redirect('/dashboard');
 }
Example #7
0
 /**
  * Update the photo on user model resource in storage.
  *
  * @param  \Illuminate\Http\Request $request
  * @param  int $id
  * @return \Illuminate\Http\Response
  */
 public function updateLogo(CompanyRequest $request, $slug)
 {
     $company = Company::where(compact('slug'))->firstOrFail();
     // Check authorisation and throw 404 if not
     if (!Auth::user()->allowedTo('edit', 'company', $company)) {
         return view('errors/404');
     }
     $file = $request->file('logo');
     $path = "filebank/company/" . $company->id;
     $name = "logo." . strtolower($file->getClientOriginalExtension());
     $path_name = $path . '/' . $name;
     $file->move($path, $name);
     Image::make(url($path_name))->fit(740)->save($path_name);
     $company->logo_profile = $path_name;
     $company->save();
     Toastr::success("Saved changes");
     return redirect('/company/' . $company->slug . '/settings/logo');
 }
Example #8
0
 /**
  * Update the specified resource in storage.
  *
  * @return \Illuminate\Http\Response
  */
 public function update(Request $request, $id)
 {
     $role = Role::findorFail($id);
     // Update Permissions
     $permissions = $request->get('permissions');
     $role->detachAllPermissions();
     if ($permissions) {
         foreach ($permissions as $permission) {
             $role->attachPermission($permission);
         }
     }
     /*
             PermissionRoleCompany::where('role_id', $id)->delete();
             $permissions = $request->get('permissions');
             if ($permissions) {
                 $data = [];
                 foreach ($permissions as $permission) {
                     $data[] = [
                         'permission_id' => $permission,
                         'role_id'       => $id,
                         'company_id'    => Auth::user()->company->id
                     ];
                 }
                 PermissionRoleCompany::insert($data);
             }*/
     Toastr::success("Saved changes");
     // Get Permissions
     $rt = getRoleTypes();
     $pt = getPermissionTypes();
     //$permissions = PermissionRoleCompany::where('role_id', $role->id)->lists('permission_id')->toArray();
     $permissions = $role->permissions->lists('id')->toArray();
     return view('manage/role/edit', compact('role', 'permissions', 'pt', 'rt'));
 }
 /**
  * Update status of existing ticket
  */
 public function updateStatus(Request $request, $id, $status)
 {
     //$ticket_id = $request->get('id');
     $ticket = SupportTicket::findorFail($id);
     $ticket->status = $status;
     if ($status) {
         $ticket->resolved_date = "0000-00-00 00:00:00";
         $ticket->eta = "0000-00-00 00:00:00";
         $action_request = ['action' => 'Re-opened ticket'];
         $action = $ticket->actions()->save(new SupportTicketAction($action_request));
         Toastr::success("Re-opened ticket");
     } else {
         $ticket->resolved_date = Carbon::now();
         $action_request = ['action' => 'Resolved ticket'];
         $action = $ticket->actions()->save(new SupportTicketAction($action_request));
         Toastr::success("Resolved ticket");
     }
     $ticket->save();
     return redirect('support/ticket/' . $id);
 }
Example #10
0
 /**
  * Email document to someone
  */
 public function email(Request $request, $id)
 {
     $doc = WmsDoc::findOrFail($id);
     $email_list = $request->has('email_list') ? $request->get('email_list') : '';
     $email_user = $request->get('email_self') ? true : false;
     if ($email_list) {
         $doc->emailStatement($email_list, $email_user);
         Toastr::success("Sent email");
     }
     return redirect('/safety/doc/wms/' . $doc->id);
 }
Example #11
0
 /**
  * just deleting posts if the post belongs to user or the user is admin
  *
  * @param $id
  * @return mixed
  */
 public function destroy($id)
 {
     $this->repository->delete($id);
     Toastr::success(Auth::user()->name, $title = 'Your Post deleted successfully! Have a nice day!', $options = []);
     return redirect()->to(App::getLocale() . '/blog');
 }
Example #12
0
 /**
  * Update the specified resource in storage.
  *
  * @return \Illuminate\Http\Response
  */
 public function update(ClientRequest $request, $slug)
 {
     $client = Client::where(compact('slug'))->firstOrFail();
     $client_request = $request->except('tabs');
     $client->update($client_request);
     Toastr::success("Saved changes");
     $tabs = explode(':', $request->get('tabs'));
     return redirect('/client/' . $client->slug . '/' . $tabs[0] . '/' . $tabs[1]);
 }
Example #13
0
 /**
  * Update the specified resource in storage.
  *
  * @return \Illuminate\Http\Response
  */
 public function update(SiteDocRequest $request, $id)
 {
     $site_id = $request->get('site_id');
     $type = $request->get('type');
     // Redirect on 'back' button
     if ($request->has('back')) {
         return view('/site/doc/list', compact('site_id', 'type'));
     }
     $doc = SiteDoc::findOrFail($id);
     // Check authorisation and throw 404 if not
     if (!Auth::user()->allowedTo('edit', 'site.doc', $doc)) {
         return view('errors/404');
     }
     // Get Original report filename path
     $orig_site = $doc->site_id;
     $orig_type = $doc->type;
     $orig_reportfile = $doc->reportUrl;
     //dd($request->all());
     $doc_request = $request->only('name', 'type', 'site_id', 'notes');
     $doc->update($doc_request);
     // if doc has altered 'site_id' or 'type' move the file to the new file location
     if ($doc->type != $orig_type || $doc->site_id != $orig_site) {
         // Make directory if non-existant
         if (!file_exists(public_path(pathinfo($doc->reportUrl, PATHINFO_DIRNAME)))) {
             mkdir(public_path(pathinfo($doc->reportUrl, PATHINFO_DIRNAME), 0755));
         }
         rename(public_path($orig_reportfile), public_path($doc->reportUrl));
         $orig_reportfile = $doc->reportUrl;
     }
     if ($doc->type == 'RISK') {
         $type = 'risk';
     }
     if ($doc->type == 'HAZ') {
         $type = 'hazard';
     }
     if ($doc->type == 'PLAN') {
         $type = 'plan';
     }
     // Handle attached file
     if ($request->hasFile('uploadfile')) {
         $file = $request->file('uploadfile');
         $path = "filebank/site/" . $doc->site_id . '/' . $type;
         $name = sanitizeFilename(pathinfo($file->getClientOriginalName(), PATHINFO_FILENAME)) . '.' . strtolower($file->getClientOriginalExtension());
         // Ensure filename is unique by adding counter to similiar filenames
         $count = 1;
         while (file_exists(public_path("{$path}/{$name}"))) {
             $name = $doc->site_id . '-' . sanitizeFilename(pathinfo($file->getClientOriginalName(), PATHINFO_FILENAME)) . '-' . $count++ . '.' . strtolower($file->getClientOriginalExtension());
         }
         $file->move($path, $name);
         $doc->reportfile = $name;
         $doc->save();
         // Delete previous file
         if (file_exists(public_path($orig_reportfile))) {
             unlink(public_path($orig_reportfile));
         }
     }
     Toastr::success("Updated document");
     return view('site/doc/edit', compact('doc', 'site_id', 'type'));
 }
 /**
  * Update the specified resource in storage.
  *
  * @return \Illuminate\Http\Response
  */
 public function update(Request $request, $id)
 {
     $comply = SiteCompliance::findOrFail($id);
     // Check authorisation and throw 404 if not
     if (!Auth::user()->allowedTo('edit', 'compliance', $comply)) {
         return view('errors/404');
     }
     $comply_request = $request->only('reason', 'status', 'notes');
     if ($comply_request['reason'] == '') {
         $comply_request['reason'] = null;
     }
     // Format date from datetime picker to mysql format
     //$date = new Carbon (preg_replace('/-/', '', $request->get('resolved_date')));
     //$comply_request['resolveddate'] = $date->format('Y-m-d H:i:s');
     $comply->update($comply_request);
     Toastr::success("Updated record");
     return $comply;
 }
Example #15
0
 /**
  * Update the specified resource in storage.
  *
  * @return \Illuminate\Http\Response
  */
 public function update(SiteAccidentRequest $request, $id)
 {
     $accident = SiteAccident::findOrFail($id);
     // Check authorisation and throw 404 if not
     if (!Auth::user()->allowedTo('edit', 'accident.report', $accident)) {
         return view('errors/404');
     }
     $accident_request = $request->all();
     // Format date from datetime picker to mysql format
     $date = new Carbon(preg_replace('/-/', '', $request->get('date')));
     $accident_request['date'] = $date->format('Y-m-d H:i:s');
     // If Status closed 'field not present' set to 0
     if (!$request->has('status')) {
         $accident_request['status'] = '0';
     }
     // If status was modified then update resolved date
     if ($accident->status != $accident_request['status']) {
         $accident_request['resolved_date'] = $accident_request['status'] ? '000-00-00 00:00:00' : Carbon::now()->toDateTimeString();
     }
     $accident->update($accident_request);
     Toastr::success("Updated accident report");
     return view('site/accident/show', compact('accident'));
 }
 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');
         }
     }
 }