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