$schedule = new Schedule(); //$getSchedule = $schedule->getSchedule($employeeId, $employeeClocking->daydate); $getSchedule = DB::table('employee_schedule')->where('employee_id', $employeeId)->where('schedule_date', trim($employeeClocking->daydate))->first(); $Workshift = new Workshift(); //$getWorkshiftByDayOfTheWeek = $Workshift->getWorkshiftByDayOfTheWeek($employeeId, date('l', strtotime($employeeClocking->daydate)), $overtime->shift); $getWorkshiftByDayOfTheWeek = DB::table('work_shift')->where('employee_id', $employeeId)->where('name_of_day', date('l', strtotime($employeeClocking->daydate)))->where('shift', $shift)->first(); //return dd($getWorkshiftByDayOfTheWeek); $holiday = new Holiday(); //$getHolidayByDate = $holiday->getHolidayByDate($employeeClocking[0]->daydate); $getHolidayByDate = DB::table('holiday')->where('date', trim($employeeClocking->daydate))->first(); //return dd($getHolidayByDate); //$timesheet = new Timesheet; //$employeeClocking = $timesheet->getEmployeeByEmployeeIdandDate($employeeId, $employeeClocking->daydate); //$employeeClocking = DB::table('employee_timesheet')->where('employee_id', '=', $employeeId)->where('daydate', '=', $employeeClocking->daydate)->first(); $summary = new Summary(); $employeeSummary = $summary->getEmployeeSummaryByEmployeeIdandDate($employeeId, $employeeClocking->daydate); //return dd($employeeSummary); //$setting = new Setting; //$employeeSetting = $setting->getEmployeeSettingByEmployeeId($employeeId); if (!empty($getSchedule)) { //$scheduled['start_time'] = $getSchedule[0]->start_time; //$scheduled['end_time'] = $getSchedule[0]->end_time; $scheduled['rest_day'] = $getSchedule->rest_day; } elseif (!empty($getWorkshiftByDayOfTheWeek)) { // From 01:00:00 change to 2015-04-30 09:00:00 //$scheduled['start_time'] = date( 'Y-m-d', strtotime($employeeClocking[0]->time_in_1) ).' '.$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->rest_day; } //$totalOvertime = '';
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"; } }