public function assigntask(Requests\TaskRequest $taskRequest) { $task = new Task(); $task->task_name = $taskRequest['taskName']; $task->task_description = $taskRequest['taskDescription']; $task->assigned_date = date('Y-m-d', strtotime($taskRequest['startingDate'])); $task->completion_date = date('Y-m-d', strtotime($taskRequest['endingDate'])); $taskRange = $this->dateRange->date_range($task->assigned_date, $task->completion_date); $task->slug = $taskRequest['slug']; $flag = false; $empNames = $taskRequest['empName']; $users = $this->user->where('designation', '=', 'Employee')->get(); // var_dump($empNames); $var = array(); $leave_user = array(); //for users in leave $var2 = array(); //for users not in leave $notLeave = array(); foreach ($empNames as $empName) { $user = $this->user->find($empName); $leaves = $user->leaves()->get(); //User That are in Leave // var_dump($leaves); if ($leaves->isEmpty()) { array_push($notLeave, $user); } else { array_push($leave_user, $user); } } foreach ($leaves as $leave) { $start_date = $leave->start_date; $end_date = $leave->end_date; $leaveRange = $this->dateRange->date_range($start_date, $end_date); $flag = $this->dateRange->date_diff_task_leave($taskRange, $leaveRange); if ($flag) { array_push($var, $user->id); break; } } if (empty($var)) { if ($task->save()) { $task->users()->attach($empNames); \Session::flash('notice', 'Task Assigned'); return Redirect::back(); } } else { \Session::flash('notice', 'Certain User are Absent'); return Redirect::back()->withInput(); } }