function clockingStatusClockIn3Out($clockingDateTime) { $employeeId = Session::get('userEmployeeId'); $userId = Session::get('userId'); $dayOfTheWeek = date('l'); $currentDate = date('Y-m-d'); $schedule = new Schedule(); $getSchedule = $schedule->getSchedule($employeeId, date('Y-m-d')); $workShift = new Workshift(); //$getWorkShiftByEmployeeId = $workShift->getWorkShiftByEmployeeId($employeeId); $getWorkShiftByDayOfTheWeek = $workShift->getWorkShiftByDayOfTheWeek($employeeId, $dayOfTheWeek, 2); //return dd($getWorkShiftByDayOfTheWeek); //break; $holiday = new Holiday(); $getHolidayByDate = $holiday->getHolidayByDate($currentDate); $timesheet = new Timesheet(); $employeeClocking = $timesheet->getEmployeeByEmployeeIdandDate($employeeId, date('Y-m-d')); $summary = new Summary(); $employeeSummary = $summary->getEmployeeSummaryByEmployeeIdandDate($employeeId, date('Y-m-d')); $setting = new Setting(); $employeeSetting = $setting->getEmployeeSettingByEmployeeId($employeeId); if (!empty($getSchedule)) { //echo 'getSchedule'; $scheduled['start_time'] = $getSchedule[0]->start_time; $scheduled['end_time'] = $getSchedule[0]->end_time; $scheduled['rest_day'] = $getSchedule[0]->rest_day; } elseif (!empty($getWorkShiftByDayOfTheWeek)) { //echo 'getWorkShiftByDayOfTheWeek'; // From 01:00:00 change to 2015-04-30 09:00:00 $scheduled['start_time'] = date('Y-m-d', strtotime($employeeClocking->time_in_3)) . ' ' . $getWorkShiftByDayOfTheWeek[0]->start_time; // From 01:00:00 change to 2015-04-30 01:00:00 $scheduled['end_time'] = date('Y-m-d', strtotime($clockingDateTime)) . ' ' . $getWorkShiftByDayOfTheWeek[0]->end_time; $scheduled['rest_day'] = $getWorkShiftByDayOfTheWeek[0]->rest_day; } $employeeClocking->time_out_3 = $clockingDateTime; $employeeClocking->clocking_status = 'clock_out_3'; // From 2015-04-30 08:36:16 change to 08:36:16 $clockingIn = date('H:i:s', strtotime($employeeClocking->time_in_3)); // From 2015-04-30 08:36:16 change to 08:36:16 $clockingOut = date('H:i:s', strtotime($clockingDateTime)); //SCHEDULED : TRUE if ((!empty($scheduled['start_time']) || $scheduled['start_time'] !== '00:00:00' || $scheduled['start_time'] !== '') && (!empty($scheduled['end_time']) || $scheduled['end_time'] !== '00:00:00' || $scheduled['end_time'] !== '')) { echo "SCHEDULED : TRUE \n"; //REST DAY: FALSE if ($scheduled['rest_day'] !== 1) { echo "REST DAY: FALSE \n"; //LATE/TARDINESS: TRUE if (!empty($employeeClocking->tardiness_3)) { echo "LATE/TARDINESS: TRUE \n"; //TODO: check employee setting if has_break is true and break time is set. - function getWorkHours $employeeClocking->work_hours_3 = getWorkHours($employeeClocking->time_in_3, $clockingDateTime, $scheduled['end_time']); //TODO: Compute total hours with out overtime - getTotalHours $employeeClocking->total_hours_3 = getTotalHours($employeeClocking->time_in_3, $clockingDateTime, $scheduled['end_time']); //LATE/TARDINESS: FALSE } else { echo "LATE/TARDINESS: FALSE \n"; //TODO: check employee setting if has_break is true and break time is set. - function getWorkHours $employeeClocking->work_hours_3 = getWorkHours($employeeClocking->time_in_3, $clockingDateTime, $scheduled['end_time']); //TODO: Compute total hours with overtime - getTotalHours $employeeClocking->total_hours_3 = getTotalHours($employeeClocking->time_in_3, $clockingDateTime, $scheduled['end_time']); } //UNDERTIME: TRUE if (strtotime($clockingDateTime) < strtotime($scheduled['end_time'])) { echo "UNDERTIME: TRUE \n"; echo $employeeClocking->undertime_3 = getUnderTimeHours($employeeClocking->time_in_3, $clockingDateTime, $scheduled['start_time'], $scheduled['end_time']); } //OVERTIME: TRUE $isOvertime = false; if (date('H:i', strtotime($employeeClocking->time_in_3)) <= date('H:i', strtotime($scheduled['start_time'])) && date('H:i', strtotime($clockingDateTime)) > date('H:i', strtotime($scheduled['end_time']))) { echo "OVERTIME: TRUE \n"; $isOvertime = true; $employeeClocking->total_overtime_3 = getOvertimeHours($clockingDateTime, $scheduled['end_time']); } //HOLIDAY: TRUE if (hasHoliday($currentDate)) { echo "HOLIDAY: TRUE \n"; if ('Regular holiday' === $getHolidayByDate[0]->holiday_type) { //Regular holiday echo "Regular holiday \n"; if (!$isOvertime) { //ISOVERTIME: FALSE $employeeSummary->legal_holiday = getTotalHours($employeeClocking->time_in_3, $clockingDateTime, $scheduled['end_time']); } else { //ISOVERTIME: TRUE $employeeSummary->legal_holiday_overtime = getOvertimeHours($clockingDateTime, $scheduled['end_time']); } } elseif ('Special non-working day' === $getHolidayByDate[0]->holiday_type) { //Special non-working day echo "Special non-working day \n"; if (!$isOvertime) { //ISOVERTIME: FALSE $employeeSummary->special_holiday = getTotalHours($employeeClocking->time_in_3, $clockingDateTime, $scheduled['end_time']); } else { //ISOVERTIME: TRUE $employeeSummary->special_holiday_overtime = getOvertimeHours($clockingDateTime, $scheduled['end_time']); } } //HOLIDAY: FALSE } else { //Regular Day echo "HOLIDAY: FALSE \n"; echo "Regular Day \n"; if (!$isOvertime) { //ISOVERTIME: FALSE $employeeSummary->regular = getTotalHours($employeeClocking->time_in_3, $clockingDateTime, $scheduled['end_time']); } else { //ISOVERTIME: TRUE $employeeSummary->regular_overtime = getOvertimeHours($clockingDateTime, $scheduled['end_time']); } } if ($employeeClocking->save()) { $employeeSummary->save(); return Redirect::to('/redraw/timesheet'); } //REST DAY: TRUE } elseif ($scheduled['rest_day'] === 1) { echo "REST DAY: TRUE \n"; //TODO RULES: First 8 Hours get the hours_per_day in employee setting //LATE/TARDINESS: TRUE if (!empty($employeeClocking->tardiness_3)) { echo "LATE/TARDINESS: TRUE \n"; //TODO: check employee setting if has_break is true and break time is set. - function getWorkHours $employeeClocking->work_hours_3 = getWorkHours($employeeClocking->time_in_3, $clockingDateTime, $scheduled['end_time']); //TODO: Compute total hours with out overtime - getTotalHours $employeeClocking->total_hours_3 = getTotalHours($employeeClocking->time_in_3, $clockingDateTime, $scheduled['end_time']); //LATE/TARDINESS: FALSE } else { echo "LATE/TARDINESS: FALSE \n"; //TODO: check employee setting if has_break is true and break time is set. - function getWorkHours $employeeClocking->work_hours_3 = getWorkHours($employeeClocking->time_in_3, $clockingDateTime, $scheduled['end_time']); //TODO: Compute total hours with overtime - getTotalHours $employeeClocking->total_hours_3 = getTotalHours($employeeClocking->time_in_3, $clockingDateTime, $scheduled['end_time']); } //UNDERTIME: TRUE if (strtotime($clockingDateTime) < strtotime($scheduled['end_time'])) { echo "UNDERTIME: TRUE \n"; echo $employeeClocking->undertime_3 = getUnderTimeHours($employeeClocking->time_in_3, $clockingDateTime, $scheduled['start_time'], $scheduled['end_time']); } //OVERTIME: TRUE $isOvertime = false; if (date('H:i', strtotime($employeeClocking->time_in_3)) <= date('H:i', strtotime($scheduled['start_time'])) && date('H:i', strtotime($clockingDateTime)) > date('H:i', strtotime($scheduled['end_time']))) { echo "OVERTIME: TRUE \n"; $isOvertime = true; $employeeClocking->total_overtime_3 = getOvertimeHours($clockingDateTime, $scheduled['end_time']); } //HOLIDAY: TRUE if (hasHoliday($currentDate)) { echo "HOLIDAY: TRUE \n"; if ('Regular holiday' === $getHolidayByDate[0]->holiday_type) { //Regular holiday echo "Regular holiday \n"; if (!$isOvertime) { //ISOVERTIME: FALSE $employeeSummary->rest_day_legal_holiday = getTotalHours($employeeClocking->time_in_3, $clockingDateTime, $scheduled['end_time']); } else { //ISOVERTIME: TRUE $employeeSummary->rest_day_legal_holiday_overtime = getOvertimeHours($clockingDateTime, $scheduled['end_time']); } } elseif ('Special non-working day' === $getHolidayByDate[0]->holiday_type) { //Special non-working day echo "Special non-working day \n"; if (!$isOvertime) { //ISOVERTIME: FALSE $employeeSummary->rest_day_special_holiday = getTotalHours($employeeClocking->time_in_3, $clockingDateTime, $scheduled['end_time']); } else { //ISOVERTIME: TRUE $employeeSummary->rest_day_special_holiday_overtime = getOvertimeHours($clockingDateTime, $scheduled['end_time']); } } //HOLIDAY: FALSE } else { //Regular Day echo "HOLIDAY: FALSE \n"; echo "Regular Rest Day \n"; if (!$isOvertime) { //ISOVERTIME: FALSE $employeeSummary->rest_day = getTotalHours($employeeClocking->time_in_3, $clockingDateTime, $scheduled['end_time']); } else { //ISOVERTIME: TRUE $employeeSummary->rest_day_overtime = getOvertimeHours($clockingDateTime, $scheduled['end_time']); } } if ($employeeClocking->save()) { $employeeSummary->save(); return Redirect::to('/redraw/timesheet'); } } //SCHEDULED : FALSE } else { echo "SCHEDULED : FALSE \n"; } }
} DB::table('employee_summary')->where('employee_id', $employeeId)->where('daydate', $employeeClocking->daydate)->update($update); } elseif (0 === (int) $data["action"]) { $totalOvertime = ''; if (!$hasNightDiff) { $update = array('regular_overtime' => $totalOvertime); } elseif ($hasNightDiff) { $update = array('regular_overtime_night_diff' => $totalOvertime); } DB::table('employee_summary')->where('employee_id', $employeeId)->where('daydate', $employeeClocking->daydate)->update($update); } } //REST DAY: TRUE } elseif ($scheduled['rest_day'] === 1) { //HOLIDAY: TRUE if (hasHoliday($employeeClocking->daydate)) { echo "HOLIDAY: TRUE \n"; if ('Regular holiday' === $getHolidayByDate->holiday_type) { //Regular holiday echo "Regular holiday \n"; //TODO: check if has night diff //$employeeSummary->rest_day_legal_holiday_overtime = getTotalHours($employeeClocking->time_in_1, $clockingDateTime, $scheduled['end_time']); if (1 === (int) $data["action"]) { if (!$hasNightDiff) { $update = array('rest_day_legal_holiday_overtime' => $totalOvertime); } elseif ($hasNightDiff) { $update = array('rest_day_legal_holiday_overtime_night_diff' => $totalOvertime); } DB::table('employee_summary')->where('employee_id', $employeeId)->where('daydate', $employeeClocking->daydate)->update($update); } elseif (0 === (int) $data["action"]) { $totalOvertime = '';
public function updateTimesheetTimeOut3($data = '', $column = NULL) { //Settings $nightDiff['from'] = strtotime('22:00:00'); $nightDiff['to'] = strtotime('06:00:00'); $breakTime = date('H:i:s', strtotime('01:00:00')); $shift = 2; $hasNightDiff = false; $getTimesheet = Timesheet::where('id', (int) trim($data["row_id"]))->first(); $clockingIn = $getTimesheet->time_in_3; $clockingOut = $getTimesheet->time_out_3; $timeInHour = date('G', strtotime($clockingIn)); //24-hour format of an hour without leading zeros $timeOutHour = date('G', strtotime($clockingOut)); //24-hour format of an hour without leading zeros $timesheetId = $getTimesheet->id; $employeeId = $getTimesheet->employee_id; $clockingStatus = $getTimesheet->clocking_status; //$shiftStart = $getTimesheet->schedule_in; //$shiftEnd = $getTimesheet->schedule_out; $dayDate = $getTimesheet->daydate; $tardiness = $getTimesheet->tardiness_3; $dayOfTheWeek = date('l', strtotime($dayDate)); $getSummary = Summary::where('employee_id', $employeeId)->where('daydate', trim($dayDate))->first(); $hourNeedle = date('G', strtotime(trim($data['value']))); $hourHaystack = array(0, 1, 2, 3, 4, 5, 6); if (in_array($hourNeedle, $hourHaystack)) { $nightdiff = true; } else { $nightdiff = false; } $dayDateModify = new DateTime($dayDate); //Todo Add a condition here if (!empty($data['value']) && !empty($getTimesheet->time_in_3)) { if (!$nightdiff) { $clockingDateTime = date('Y-m-d', strtotime($dayDate)) . ' ' . date('H:i:s', strtotime($data['value'])); } else { //$dayDateModify = new DateTime($dayDate); $dayDateModify->modify('+1 day'); //$dayDateModify->format('Y-m-d'); $clockingDateTime = date('Y-m-d', strtotime($dayDateModify->format('Y-m-d'))) . ' ' . date('H:i:s', strtotime($data['value'])); } $getTimesheet->time_out_3 = $clockingDateTime; $getTimesheet->clocking_status = 'clock_out_3'; } elseif (!empty($data['value']) && empty($getTimesheet->time_in_3)) { if (!$nightdiff) { $clockingDateTime = date('Y-m-d', strtotime($dayDate)) . ' ' . date('H:i:s', strtotime($data['value'])); } else { //$dayDateModify = new DateTime($dayDate); $dayDateModify->modify('+1 day'); //$dayDateModify->format('Y-m-d'); $clockingDateTime = date('Y-m-d', strtotime($dayDateModify->format('Y-m-d'))) . ' ' . date('H:i:s', strtotime($data['value'])); } $getTimesheet->time_out_3 = $clockingDateTime; $getTimesheet->clocking_status = 'clock_out_3'; //close } elseif (empty($data['value']) && !empty($getTimesheet->time_in_3)) { $clockingDateTime = ''; $getTimesheet->time_out_3 = $clockingDateTime; $getTimesheet->clocking_status = 'clock_in_3'; } elseif (empty($data['value']) && empty($getTimesheet->time_in_3)) { $clockingDateTime = date('Y-m-d', strtotime($dayDate)) . ' ' . date('H:i:s', strtotime($data['value'])); if (!$nightdiff) { $clockingDateTime = date('Y-m-d', strtotime($dayDate)) . ' ' . date('H:i:s', strtotime($data['value'])); } else { //$dayDateModify = new DateTime($dayDate); $dayDateModify->modify('+1 day'); //$dayDateModify->format('Y-m-d'); $clockingDateTime = date('Y-m-d', strtotime($dayDateModify->format('Y-m-d'))) . ' ' . date('H:i:s', strtotime($data['value'])); } $getTimesheet->time_out_3 = ''; $getTimesheet->clocking_status = 'close'; } $schedule = new Schedule(); $getSchedule = DB::table('employee_schedule')->where('employee_id', $employeeId)->where('schedule_date', trim($dayDate))->first(); $workShift = new Workshift(); $getWorkShiftByDayOfTheWeek = DB::table('work_shift')->where('employee_id', $employeeId)->where('name_of_day', date('l', strtotime($dayDate)))->where('shift', $shift)->first(); $holiday = new Holiday(); $getHolidayByDate = DB::table('holiday')->where('date', trim($dayDate))->first(); if (!empty($getSchedule)) { $scheduled['start_time'] = $getSchedule->start_time; $scheduled['end_time'] = $getSchedule->end_time; $scheduled['rest_day'] = $getSchedule->rest_day; $startTime = date('H:i:s', strtotime($scheduled['start_time'])); } elseif (!empty($getWorkShiftByDayOfTheWeek)) { //$scheduled['start_time'] = $getWorkShiftByDayOfTheWeek->start_time; //$scheduled['end_time'] = $getWorkShiftByDayOfTheWeek->end_time; // From 01:00:00 change to 2015-04-30 09:00:00 $scheduled['start_time'] = date('Y-m-d', strtotime($getTimesheet->time_out_3)) . ' ' . $getWorkShiftByDayOfTheWeek->start_time; // From 01:00:00 change to 2015-04-30 01:00:00 $scheduled['end_time'] = date('Y-m-d', strtotime($clockingDateTime)) . ' ' . $getWorkShiftByDayOfTheWeek->end_time; $scheduled['rest_day'] = $getWorkShiftByDayOfTheWeek->rest_day; $startTime = $scheduled['start_time']; } //return dd($clockingDateTime); //SCHEDULED : TRUE if ((!empty($scheduled['start_time']) || $scheduled['start_time'] !== '00:00:00' || $scheduled['start_time'] !== '') && (!empty($scheduled['end_time']) || $scheduled['end_time'] !== '00:00:00' || $scheduled['end_time'] !== '')) { //REST DAY: FALSE if ($scheduled['rest_day'] !== 1) { $datetime1 = $getTimesheet->time_in_3; $datetime2 = $clockingDateTime; //$interval = getDateTimeDiffInterval($getTimesheet->time_in_3, $getTimesheet->time_out_3) { //Used $datetime1 = new DateTime($datetime1); $datetime2 = new DateTime($datetime2); $interval = $datetime1->diff($datetime2); $hh = $interval->format('%H'); $mm = $interval->format('%I'); $ss = $interval->format('%S'); $overtime = getTimeToDecimalHours($hh, $mm, $ss); //number_format($hours, 2);*/ //OVERTIME: TRUE $isOvertime = true; $getTimesheet->total_overtime_3 = $overtime; $getTimesheet->total_hours_3 = $overtime; /* //echo "LATE/TARDINESS: TRUE \n"; //TODO: check employee setting if has_break is true and break time is set. - function getWorkHours $workHours = $getTimesheet->total_overtime_3; if ( $workHours >= 8 || $workHours >= 8.00 || $workHours >= 8.0 ) { $getTimesheet->work_hours_3 = 8.00; } else { $getTimesheet->work_hours_3 = $workHours; } */ //TODO: Compute total hours with out overtime - getTotalHours $getTimesheet->total_hours_3 = $getTimesheet->total_overtime_3; //GET NIGHTDIFF $timeInArr = array(); $timeOutArr = array(); $timeInArr = explode(' ', $getTimesheet->time_in_3); $timeOutArr = explode(' ', $clockingDateTime); $nightDiff['from'] = strtotime(date('Y-m-d H:i', strtotime($timeInArr[0] . ' ' . '22:00:00'))); $nightDiff['to'] = strtotime(date('Y-m-d H:i', strtotime($timeOutArr[0] . ' ' . '06:00:00'))); $timesheet['timeIn'] = strtotime(date('Y-m-d H:i', strtotime($getTimesheet->time_in_3))); $timesheet['timeOut'] = strtotime(date('Y-m-d H:i', strtotime($clockingDateTime))); if ($timesheet['timeIn'] >= $nightDiff['from'] && $timesheet['timeIn'] <= $nightDiff['to']) { if ($timesheet['timeOut'] >= $nightDiff['to']) { // SET IT TO 8.00 //$getTimesheet->night_differential_3 = 8.00; $getTimesheet->night_differential_3 = ($nightDiff['to'] - $timesheet['timeIn']) / 3600; } else { //$getTimesheet->night_differential_3 = $overtime; $getTimesheet->night_differential_3 = ($timesheet['timeOut'] - $timesheet['timeIn']) / 3600; } } elseif ($timesheet['timeOut'] >= $nightDiff['from'] && $timesheet['timeOut'] <= $nightDiff['to']) { if ($timesheet['timeIn'] <= $nightDiff['from']) { //$getTimesheet->night_differential_3 = 8.00; $getTimesheet->night_differential_3 = ($timesheet['timeOut'] - $nightDiff['from']) / 3600; } else { //$getTimesheet->night_differential_3 = $overtime; $getTimesheet->night_differential_3 = ($timesheet['timeOut'] - $timesheet['timeIn']) / 3600; } } /*else { if($timesheet['timeIn'] < $nightDiff['from'] && $timesheet['timeOut'] > $nightDiff['to']) { //$getTimesheet->night_differential_3 = 8.00; $getTimesheet->night_differential_3 = ($nightDiff['from'] - $nightDiff['to']) / 3600; } }*/ //HOLIDAY: TRUE if (hasHoliday($dayDate)) { ////echo "HOLIDAY: TRUE \n"; if ('Regular holiday' === $getHolidayByDate->holiday_type) { //Regular holiday //echo "Regular holiday \n"; if (!$isOvertime) { //ISOVERTIME: FALSE $getSummary->legal_holiday = getTotalHours($getTimesheet->time_in_3, $clockingDateTime, $scheduled['end_time']); $getSummary->legal_holiday_overtime = ''; } else { //ISOVERTIME: TRUE $getSummary->legal_holiday_overtime = getOvertimeHours($clockingDateTime, $scheduled['end_time']); $getSummary->legal_holiday = ''; } } elseif ('Special non-working day' === $getHolidayByDate->holiday_type) { //Special non-working day //echo "Special non-working day \n"; if (!$isOvertime) { //ISOVERTIME: FALSE $getSummary->special_holiday = getTotalHours($getTimesheet->time_in_3, $clockingDateTime, $scheduled['end_time']); $getSummary->special_holiday_overtime = ''; } else { //ISOVERTIME: TRUE $getSummary->special_holiday_overtime = getOvertimeHours($clockingDateTime, $scheduled['end_time']); $getSummary->special_holiday = ''; } } //HOLIDAY: FALSE } else { //Regular Day //echo "HOLIDAY: FALSE \n"; //echo "Regular Day \n"; if (!$isOvertime) { //ISOVERTIME: FALSE $getSummary->regular = getTotalHours($getTimesheet->time_in_3, $clockingDateTime, $scheduled['end_time']); $getSummary->regular_overtime = ''; $getSummary->legal_holiday = ''; $getSummary->special_holiday = ''; } else { //ISOVERTIME: TRUE $getSummary->regular_overtime = getOvertimeHours($clockingDateTime, $scheduled['end_time']); $getSummary->regular = ''; $getSummary->legal_holiday_overtime = ''; $getSummary->special_holiday_overtime = ''; } } //REST DAY: TRUE } elseif ($scheduled['rest_day'] === 1) { $datetime1 = $getTimesheet->time_in_3; $datetime2 = $clockingDateTime; //$interval = getDateTimeDiffInterval($getTimesheet->time_in_3, $getTimesheet->time_out_3) { //Used $datetime1 = new DateTime($datetime1); $datetime2 = new DateTime($datetime2); $interval = $datetime1->diff($datetime2); $hh = $interval->format('%H'); $mm = $interval->format('%I'); $ss = $interval->format('%S'); $overtime = getTimeToDecimalHours($hh, $mm, $ss); //number_format($hours, 2);*/ //OVERTIME: TRUE $isOvertime = true; $getTimesheet->total_overtime_3 = $overtime; $getTimesheet->total_hours_3 = $overtime; /* //echo "LATE/TARDINESS: TRUE \n"; //TODO: check employee setting if has_break is true and break time is set. - function getWorkHours $workHours = $getTimesheet->total_overtime_3; if ( $workHours >= 8 || $workHours >= 8.00 || $workHours >= 8.0 ) { $getTimesheet->work_hours_3 = 8.00; } else { $getTimesheet->work_hours_3 = $workHours; } */ //TODO: Compute total hours with out overtime - getTotalHours $getTimesheet->total_hours_3 = $getTimesheet->total_overtime_3; //GET NIGHTDIFF $timeInArr = array(); $timeOutArr = array(); $timeInArr = explode(' ', $getTimesheet->time_in_3); $timeOutArr = explode(' ', $clockingDateTime); $nightDiff['from'] = strtotime(date('Y-m-d H:i', strtotime($timeInArr[0] . ' ' . '22:00:00'))); $nightDiff['to'] = strtotime(date('Y-m-d H:i', strtotime($timeOutArr[0] . ' ' . '06:00:00'))); $timesheet['timeIn'] = strtotime(date('Y-m-d H:i', strtotime($getTimesheet->time_in_3))); $timesheet['timeOut'] = strtotime(date('Y-m-d H:i', strtotime($clockingDateTime))); if ($timesheet['timeIn'] >= $nightDiff['from'] && $timesheet['timeIn'] <= $nightDiff['to']) { if ($timesheet['timeOut'] >= $nightDiff['to']) { // SET IT TO 8.00 $getTimesheet->night_differential_3 = 8.0; } else { $getTimesheet->night_differential_3 = $overtime; } } elseif ($timesheet['timeOut'] >= $nightDiff['from'] && $timesheet['timeOut'] <= $nightDiff['to']) { if ($timesheet['timeIn'] <= $nightDiff['from']) { $getTimesheet->night_differential_3 = 8.0; } else { $getTimesheet->night_differential_3 = $overtime; } } /*else { if($timesheet['timeIn'] < $nightDiff['from'] && $timesheet['timeOut'] > $nightDiff['to']) { $getTimesheet->night_differential_3 = 8.00; } }*/ //HOLIDAY: TRUE if (hasHoliday($dayDate)) { ////echo "HOLIDAY: TRUE \n"; if ('Regular holiday' === $getHolidayByDate->holiday_type) { //Regular holiday //echo "Regular holiday \n"; if (!$isOvertime) { //ISOVERTIME: FALSE $getSummary->rest_day_legal_holiday = getTotalHours($getTimesheet->time_in_3, $clockingDateTime, $scheduled['end_time']); $getSummary->rest_day_legal_holiday_overtime = ''; } else { //ISOVERTIME: TRUE $getSummary->rest_day_legal_holiday_overtime = getOvertimeHours($clockingDateTime, $scheduled['end_time']); $getSummary->rest_day_legal_holiday = ''; } } elseif ('Special non-working day' === $getHolidayByDate->holiday_type) { //Special non-working day //echo "Special non-working day \n"; if (!$isOvertime) { //ISOVERTIME: FALSE $getSummary->rest_day_special_holiday = getTotalHours($getTimesheet->time_in_3, $clockingDateTime, $scheduled['end_time']); $getSummary->rest_day_special_holiday_overtime = ''; } else { //ISOVERTIME: TRUE $getSummary->rest_day_special_holiday_overtime = getOvertimeHours($clockingDateTime, $scheduled['end_time']); $getSummary->rest_day_special_holiday = ''; } } //HOLIDAY: FALSE } else { //Regular Day //echo "HOLIDAY: FALSE \n"; //echo "Regular Day \n"; if (!$isOvertime) { //ISOVERTIME: FALSE $getSummary->rest_day = getTotalHours($getTimesheet->time_in_3, $clockingDateTime, $scheduled['end_time']); $getSummary->rest_day_overtime = ''; $getSummary->rest_day_legal_holiday = ''; $getSummary->rest_day_special_holiday = ''; } else { //ISOVERTIME: TRUE $getSummary->rest_day_overtime = getOvertimeHours($clockingDateTime, $scheduled['end_time']); $getSummary->rest_day = ''; $getSummary->rest_day_legal_holiday_overtime = ''; $getSummary->rest_day_special_holiday_overtime = ''; } } } } if ($getTimesheet->save()) { $getSummary->save(); return Redirect::to('/redraw/timesheet'); } //} }