Ejemplo n.º 1
0
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";
    }
}
Ejemplo n.º 2
0
             }
             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 = '';
Ejemplo n.º 3
0
 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');
     }
     //}
 }