Exemplo n.º 1
0
 /**
  * Execute the console command.
  *
  * @return mixed
  */
 public function handle()
 {
     $date = new \DateTime();
     $date->modify('+3 days');
     $formatted_date_from = $date->format('Y-m-d');
     $date->modify('+6 days');
     $formatted_date_to = $date->format('Y-m-d');
     $dates = createDateRangeArray(strtotime($formatted_date_from), strtotime($formatted_date_to));
     $bases = Base::where('center', 1)->get();
     $current_gen = Gen::getCurrentGen();
     $shiftSessions = ShiftSession::where('active', 1)->get();
     $lastShift = Shift::where('gen_id', $current_gen->id)->orderBy('week', 'desc')->first();
     $week = $lastShift ? $lastShift->week : 0;
     foreach ($dates as $date) {
         foreach ($bases as $base) {
             foreach ($shiftSessions as $shiftSession) {
                 $shift = new Shift();
                 $shift->gen_id = $current_gen->id;
                 $shift->base_id = $base->id;
                 $shift->shift_session_id = $shiftSession->id;
                 $shift->week = $week + 1;
                 $shift->date = $date;
                 $shift->save();
             }
         }
     }
     $role_ids = Tab::find(35)->roles->pluck('id')->unique()->toArray();
     $roles = Role::whereIn('id', $role_ids)->get();
     if ($week == 0) {
         $week = 1;
     }
     foreach ($roles as $role) {
         $users = $role->users;
         foreach ($users as $user) {
             send_mail_regis_shift($user, $week, $current_gen, ['*****@*****.**']);
         }
     }
     $this->info('done');
 }
Exemplo n.º 2
0
 /**
  * Store a newly created resource in storage.
  *
  * @return Response
  */
 public function store(Request $request)
 {
     // Only managers can create new shifts
     if (Auth::user()->role == "manager") {
         // These need better validation but for times sake, this will prevent some bad data (not all)
         $validator = Validator::make($request->all(), ['employee_id' => 'required', 'start_time' => 'required|min:1', 'end_time' => 'required|min:1']);
         if ($validator->fails()) {
             return $this->setStatusCode('400')->setError('Missing data to create a new shift resource');
         }
         $shift = new \App\Shift();
         $shift->employee_id = $request->employee_id;
         $shift->manager_id = Auth::user()->id;
         $shift->start_time = $request->start_time;
         $shift->end_time = $request->end_time;
         if (!$shift->save()) {
             return $this->setStatusCode(500)->setError('An error occured');
         }
         // Everything checks out...
         return $this->setStatusCode(200)->setSuccess('success');
     } else {
         // For readability sake, even though we will always return
         return $this->setStatusCode(403)->setError('Unauthorized Access');
     }
 }