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