public function forms()
 {
     $exitPass = ExitPass::where('status', '!=', 3)->get();
     $leaveForm = Leaves::where('status', '!=', 3)->get();
     $changeSchedule = Change::where('status', '!=', 3)->get();
     $oas = Overtime::where('status', '!=', 3)->get();
     return count($exitPass) + count($leaveForm) + count($changeSchedule) + count($oas);
 }
 public function viewUserPaternity($id)
 {
     $users = User::find($id);
     // dd($user)
     $paternityUser = Leaves::where('leave_type', 4)->where('user_id', $id)->first();
     if ($paternityUser) {
         $positions = $this->position();
         $profileImage = $this->getImage();
         $inboxNotif = $this->inboxNotif();
         $approvalNotif = $this->approvalNotif();
         $id_user = Auth::user()->position_id;
         $empDepartment = Positions::find($id_user)->departments;
         $paternityRecords = Leaves::where('leave_type', 4)->where('user_id', $id)->get();
         $count = $this->forms();
         $balance = 0;
         foreach ($paternityRecords as $paternity) {
             $balance = $paternity->users->PL_entitlement - $paternity->users->PL_taken;
             $PL_entitlement = $paternity->users->PL_entitlement;
         }
         $data = array('title' => 'View User Paternity Leaves', 'positions' => $positions, 'profileImage' => $profileImage, 'inboxNotif' => $inboxNotif, 'approvalNotif' => $approvalNotif, 'empDepartment' => $empDepartment, 'count' => $count, 'paternityRecords' => $paternityRecords, 'balance' => max($balance, 0), 'PL_entitlement' => $PL_entitlement, 'users' => $users);
         return view('record.userPaternity')->with($data);
     } else {
         return redirect('dashboard')->with('status', 'Error: No Paternity Records Found');
     }
 }
 public function editLeave(array $data, $id)
 {
     $datas = Leaves::where('id', $id)->get();
     $dateUpdate = date("Y-m-d H:i:s");
     if ($data['typeofLeave'] == 1) {
         if (isset($data['VL_daysApplied'])) {
             $days_taken = Auth::user()->VL_taken + $data['VL_daysApplied'];
             if ($days_taken <= Auth::user()->VL_entitlement) {
                 $department = Positions::find(Auth::user()->position_id)->departments;
                 return Leaves::where('id', $id)->update(array('leave_type' => $data['typeofLeave'], 'purpose' => $data['reasonforAbsence'], 'permission_id1' => $data['recommendApproval'], 'permission_id2' => $data['approvedBy'], 'days_applied' => $data['VL_daysApplied'], 'updated_at' => $dateUpdate));
             }
         } else {
             return false;
         }
     } else {
         if ($data['typeofLeave'] == 2) {
             if (isset($data['SL_daysApplied'])) {
                 $days_taken = Auth::user()->SL_taken + $data['SL_daysApplied'];
                 if ($days_taken <= Auth::user()->SL_entitlement) {
                     $department = Positions::find(Auth::user()->position_id)->departments;
                     return Leaves::where('id', $id)->update(array('leave_type' => $data['typeofLeave'], 'purpose' => $data['reasonforAbsence'], 'permission_id1' => $data['recommendApproval'], 'permission_id2' => $data['approvedBy'], 'days_applied' => $data['SL_daysApplied'], 'updated_at' => $dateUpdate));
                 }
             } else {
                 return false;
             }
             // dd($data);
         } else {
             if ($data['typeofLeave'] == 3) {
                 if (isset($data['ML_daysApplied'])) {
                     $days_taken = Auth::user()->ML_taken + $data['ML_daysApplied'];
                     if ($days_taken <= Auth::user()->ML_entitlement) {
                         $department = Positions::find(Auth::user()->position_id)->departments;
                         return Leaves::where('id', $id)->update(array('leave_type' => $data['typeofLeave'], 'purpose' => $data['reasonforAbsence'], 'permission_id1' => $data['recommendApproval'], 'permission_id2' => $data['approvedBy'], 'days_applied' => $data['ML_daysApplied'], 'updated_at' => $dateUpdate));
                     }
                 } else {
                     return false;
                 }
             } else {
                 if ($data['typeofLeave'] == 4) {
                     if (isset($data['PL_daysApplied'])) {
                         $days_taken = Auth::user()->PL_taken + $data['PL_daysApplied'];
                         if ($days_taken <= Auth::user()->PL_entitlement) {
                             $department = Positions::find(Auth::user()->position_id)->departments;
                             return Leaves::where('id', $id)->update(array('leave_type' => $data['typeofLeave'], 'purpose' => $data['reasonforAbsence'], 'permission_id1' => $data['recommendApproval'], 'permission_id2' => $data['approvedBy'], 'days_applied' => $data['PL_daysApplied'], 'updated_at' => $dateUpdate));
                         }
                     } else {
                         return false;
                     }
                 }
             }
         }
     }
 }
 public function postrequestForLeave(Request $request)
 {
     $rules = array('typeofLeave' => 'required', 'startDate' => 'required', 'reasonforAbsence' => 'required', 'recommendApproval' => 'required', 'approvedBy' => 'required');
     $validator = Validator::make($request->all(), $rules);
     if ($validator->fails()) {
         $this->throwValidationException($request, $validator);
     }
     $id = Auth::user()->id;
     $dateUpdate = date("Y-m-d H:i:s");
     if ($request->input('typeofLeave') == 1) {
         $days_taken = Auth::user()->VL_taken + $request->input('VL_daysApplied');
         $balance = Auth::user()->VL_entitlement - Auth::user()->VL_taken;
         if ($balance != 0) {
             if ($days_taken <= Auth::user()->VL_entitlement) {
                 $department = Positions::find(Auth::user()->position_id)->departments;
                 $requestAdd = new Leaves(array('user_id' => $id, 'leave_type' => $request->input('typeofLeave'), 'purpose' => $request->input('reasonforAbsence'), 'department_id' => $department->id, 'permission_id1' => $request->input('recommendApproval'), 'permission_id2' => $request->input('approvedBy'), 'days_applied' => $request->input('VL_daysApplied'), 'start_date' => $request->input('startDate'), 'updated_at' => $dateUpdate));
                 $save = $requestAdd->save();
                 if ($save) {
                     $status = "Success!";
                 } else {
                     $status = "Failed!";
                 }
             } else {
                 $status = "Failed!";
             }
         } else {
             $status = "You don't have any days of leave left.";
         }
     } elseif ($request->input('typeofLeave') == 2) {
         $days_taken = Auth::user()->SL_taken + $request->input('SL_daysApplied');
         $balance = Auth::user()->SL_entitlement - Auth::user()->SL_taken;
         if ($balance != 0) {
             if ($days_taken <= Auth::user()->SL_entitlement) {
                 $department = Positions::find(Auth::user()->position_id)->departments;
                 $requestAdd = new Leaves(array('user_id' => $id, 'leave_type' => $request->input('typeofLeave'), 'purpose' => $request->input('reasonforAbsence'), 'department_id' => $department->id, 'permission_id1' => $request->input('recommendApproval'), 'permission_id2' => $request->input('approvedBy'), 'days_applied' => $request->input('SL_daysApplied'), 'start_date' => $request->input('startDate'), 'updated_at' => $dateUpdate));
                 $save = $requestAdd->save();
                 if ($save) {
                     $status = "Success!";
                 } else {
                     $status = "Failed!";
                 }
             } else {
                 $status = "Failed!";
             }
         } else {
             $status = "You don't have any days of leave left.";
         }
     } elseif ($request->input('typeofLeave') == 3) {
         $days_taken = Auth::user()->ML_taken + $request->input('ML_daysApplied');
         $balance = Auth::user()->ML_entitlement - Auth::user()->ML_taken;
         if ($balance != 0) {
             if ($days_taken <= Auth::user()->ML_entitlement) {
                 // Auth::user()->ML_taken = $days_taken;
                 // Auth::user()->save();
                 $department = Positions::find(Auth::user()->position_id)->departments;
                 $requestAdd = new Leaves(array('user_id' => $id, 'leave_type' => $request->input('typeofLeave'), 'purpose' => $request->input('reasonforAbsence'), 'department_id' => $department->id, 'permission_id1' => $request->input('recommendApproval'), 'permission_id2' => $request->input('approvedBy'), 'days_applied' => $request->input('ML_daysApplied'), 'start_date' => $request->input('startDate'), 'updated_at' => $dateUpdate));
                 $save = $requestAdd->save();
                 if ($save) {
                     $status = "Success!";
                 } else {
                     $status = "Failed!";
                 }
             } else {
                 $status = "Failed!";
             }
         } else {
             $status = "You don't have any days of leave left.";
         }
     } elseif ($request->input('typeofLeave') == 4) {
         $days_taken = Auth::user()->PL_taken + $request->input('PL_daysApplied');
         $balance = Auth::user()->PL_entitlement - Auth::user()->PL_taken;
         if ($balance != 0) {
             if ($days_taken <= Auth::user()->PL_entitlement) {
                 $department = Positions::find(Auth::user()->position_id)->departments;
                 $requestAdd = new Leaves(array('user_id' => $id, 'leave_type' => $request->input('typeofLeave'), 'purpose' => $request->input('reasonforAbsence'), 'department_id' => $department->id, 'permission_id1' => $request->input('recommendApproval'), 'permission_id2' => $request->input('approvedBy'), 'days_applied' => $request->input('PL_daysApplied'), 'start_date' => $request->input('startDate'), 'updated_at' => $dateUpdate));
                 $save = $requestAdd->save();
                 if ($save) {
                     $status = "Success!";
                 } else {
                     $status = "Failed!";
                 }
             } else {
                 $status = "Failed!";
             }
         } else {
             $status = "You don't have any days of leave left.";
         }
     }
     // dd($request->all());
     return redirect('/inbox')->with('status', $status);
 }