Пример #1
0
 public function store($request, $response)
 {
     $leave = Leave::where('user_id', Auth::user()->id)->first();
     if ($leave) {
         $l = Leave::create(['user_id' => Auth::user()->id, 'leave_remain' => $leave->leave_remain - $request->leave_count, 'leave_times' => $leave->leave_times + 1, 'leave_count' => $leave->count + $request->leave_count, 'title' => $request->title, 'active_token' => false]);
     } else {
         $l = Leave::create(['user_id' => Auth::user()->id, 'leave_remain' => 20 - $request->leave_count, 'leave_times' => 1, 'leave_count' => $request->leave_count, 'title' => $request->title, 'active_token' => false]);
     }
     return $response->redirect('/dashboard/leave/index', $code = 302);
 }
Пример #2
0
 public function postLeaveRequest()
 {
     $user = User::find(Input::get('id'));
     if (!$user) {
         App::abort(404);
     }
     if (Auth::id() !== $user->id) {
         return Redirect::route('profile', Auth::id())->with('alert', 'warning|This action is not allowed.');
     }
     $validator = Validator::make(Input::all(), Leave::$rules);
     if ($validator->fails()) {
         return Redirect::route('leave-request', $user->id)->withErrors($validator)->withInput();
     }
     // check if enough leave balance
     $user_id = Input::get('id');
     $leavetype_id = Input::get('leave_type_id');
     $start_date = Input::get('start_date');
     $end_date = Input::get('end_date');
     $row = DB::table('leavebalance')->where('user_id', $user_id)->where('leavetype_id', $leavetype_id)->first();
     $diffDays = Carbon::parse($start_date)->diffInDays(Carbon::parse($end_date)) + 1;
     if ($diffDays < $row->balance) {
         Leave::create(['user_id' => $user_id, 'leavetype_id' => $leavetype_id, 'start_date' => Input::get('start_date'), 'end_date' => Input::get('end_date'), 'balance' => $row->balance, 'status' => 'Pending']);
     } else {
         // change this validation later, redirect with alert danger
         return Redirect::route('leave-request', $user->id)->with('alert', 'danger|Leave days requested is greater than remaining days');
     }
     $audit = AuditTrail::create(['user_id' => Auth::id(), 'role' => 'User', 'action' => 'has filed a Leave Request']);
     return Redirect::route('leave-request', $user->id)->with('alert', 'success|Leave request has been submitted successfully. Please wait for the Admin\'s Response');
 }