コード例 #1
0
 /**
  *
  * @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;
 }