/** * * @param LeaveParameterObject $leaveAssignmentData * @param bool $isWeekend * @param bool $isHoliday * @param bool $isHalfday * @param bool $isHalfDayHoliday * @return int */ public function calculateTimeDeference(LeaveParameterObject $leaveAssignmentData, $isWeekend, $isHoliday, $isHalfday, $isHalfDayHoliday) { if ($isWeekend) { $timeDeference = 0; } elseif ($isHoliday) { if ($isHalfDayHoliday) { if ($leaveAssignmentData->getToDate() == $leaveAssignmentData->getFromDate()) { if ($leaveAssignmentData->getWorkShiftLength() / 2 <= $leaveAssignmentData->getLeaveTotalTime()) { $timeDeference = number_format($leaveAssignmentData->getWorkShiftLength() / 2, 3); } else { $timeDeference = $leaveAssignmentData->getLeaveTotalTime(); } } else { $timeDeference = number_format($leaveAssignmentData->getWorkShiftLength() / 2, 3); } } else { $timeDeference = 0; } } elseif ($isHalfday) { if ($leaveAssignmentData->getToDate() == $leaveAssignmentData->getFromDate() && $leaveAssignmentData->getLeaveTotalTime() > 0) { if ($leaveAssignmentData->getWorkShiftLength() / 2 <= $leaveAssignmentData->getLeaveTotalTime()) { $timeDeference = number_format($leaveAssignmentData->getWorkShiftLength() / 2, 3); } else { $timeDeference = $leaveAssignmentData->getLeaveTotalTime(); } } else { $timeDeference = number_format($leaveAssignmentData->getWorkShiftLength() / 2, 3); } } else { if ($leaveAssignmentData->getToDate() == $leaveAssignmentData->getFromDate()) { $timeDeference = $leaveAssignmentData->getLeaveTotalTime(); } else { $timeDeference = $this->getWorkShiftLengthOfEmployee($leaveAssignmentData->getEmployeeNumber()); } } return $timeDeference; }