コード例 #1
0
 protected function setUp()
 {
     TestDataService::truncateSpecificTables(array('Employee', 'Leave', 'LeaveRequest', 'LeaveType', 'EmployeeLeaveEntitlement', 'LeavePeriod'));
     // Save leave type
     $leaveTypeData = sfYaml::load(sfConfig::get('sf_plugins_dir') . '/orangehrmCoreLeavePlugin/test/fixtures/leaveType.yml');
     $leaveTypeDao = new LeaveTypeDao();
     $leaveType = new LeaveType();
     $leaveType->setLeaveTypeName($leaveTypeData['leaveType']['LT_001']['name']);
     //                $leaveType->setLeaveRules($leaveTypeData['leaveType']['LT_001']['rule']);
     $leaveTypeDao->saveLeaveType($leaveType);
     $this->leaveType = $leaveType;
     $this->leaveTypeId = $leaveType->getLeaveTypeId();
     // Save leave Period
     $leavePeriodData = sfYaml::load(sfConfig::get('sf_plugins_dir') . '/orangehrmCoreLeavePlugin/test/fixtures/leavePeriod.yml');
     $leavePeriodService = new LeavePeriodService();
     $leavePeriodService->setLeavePeriodDao(new LeavePeriodDao());
     $leavePeriod = new LeavePeriod();
     $leavePeriod->setStartDate($leavePeriodData['leavePeriod']['1']['startDate']);
     $leavePeriod->setEndDate($leavePeriodData['leavePeriod']['1']['endDate']);
     $leavePeriodService->saveLeavePeriod($leavePeriod);
     $this->leavePeriod = $leavePeriod;
     $this->leavePeriodId = $leavePeriod->getLeavePeriodId();
     // Save Employee
     $employeeservice = new EmployeeService();
     $this->employee = new Employee();
     $employeeservice->saveEmployee($this->employee);
     $this->empNumber = $this->employee->getEmpNumber();
     // save leave quota
     $this->leaveEntitlement = sfYaml::load(sfConfig::get('sf_plugins_dir') . '/orangehrmCoreLeavePlugin/test/fixtures/leaveEntitlement.yml');
     $this->leaveEntitlementDao = new LeaveEntitlementDao();
 }
コード例 #2
0
ファイル: LeaveRequestDao.php プロジェクト: THM068/orangehrm
 /**
  * Modify Overlap leave request
  * @param LeaveRequest $leaveRequest
  * @return boolean
  */
 public function modifyOverlapLeaveRequest(LeaveRequest $leaveRequest, $leaveList, $leavePeriod = null)
 {
     try {
         $nextLeavePeriod = false;
         $nextLeaveRequest = false;
         if ($leavePeriod == null) {
             $leavePeriod = Doctrine::getTable('LeavePeriod')->find($leaveRequest->getLeavePeriodId());
         }
         foreach ($leaveList as $leave) {
             if ($leave->getLeaveDate() > $leavePeriod->getEndDate()) {
                 if (!$nextLeavePeriod instanceof LeavePeriod) {
                     $leavePeriodService = new LeavePeriodService();
                     $leavePeriodService->setLeavePeriodDao(new LeavePeriodDao());
                     $nextLeavePeriod = $leavePeriodService->createNextLeavePeriod($leave->getLeaveDate());
                     $nextLeaveRequest = new LeaveRequest();
                     $idGenService = new IDGeneratorService();
                     $idGenService->setEntity($leaveRequest);
                     $nextLeaveRequest->setLeaveRequestId($idGenService->getNextID());
                     $nextLeaveRequest->setLeaveTypeId($leaveRequest->getLeaveTypeId());
                     $nextLeaveRequest->setDateApplied($leaveRequest->getDateApplied());
                     $nextLeaveRequest->setLeavePeriodId($nextLeavePeriod->getLeavePeriodId());
                     $nextLeaveRequest->setLeaveTypeName($leaveRequest->getLeaveTypeName());
                     $nextLeaveRequest->setEmpNumber($leaveRequest->getEmpNumber());
                     $nextLeaveRequest->setLeaveComments($leaveRequest->getLeaveComments());
                     $nextLeaveRequest->save();
                 }
                 $q = Doctrine_Query::create()->update('Leave l')->set('l.leave_request_id=', $nextLeaveRequest->getLeaveRequestId())->where('l.leave_id = ?', $leave->getLeaveId());
                 $q->execute();
             }
         }
         return true;
     } catch (Exception $e) {
         throw new DaoException($e->getMessage());
     }
 }
コード例 #3
0
 public function getLeavePeriodService()
 {
     if (is_null($this->leavePeriodService)) {
         $leavePeriodService = new LeavePeriodService();
         $leavePeriodService->setLeavePeriodDao(new LeavePeriodDao());
         $this->leavePeriodService = $leavePeriodService;
     }
     return $this->leavePeriodService;
 }
コード例 #4
0
 private function isLeavePeriodDefined()
 {
     $leavePeriodService = new LeavePeriodService();
     $leavePeriodService->setLeavePeriodDao(new LeavePeriodDao());
     $leavePeriod = $leavePeriodService->getLeavePeriod(strtotime(date("Y-m-d")));
     $flag = 0;
     if ($leavePeriod instanceof LeavePeriod) {
         $flag = 1;
     }
     $_SESSION['leavePeriodDefined'] = $flag;
 }
コード例 #5
0
 /**
  * check overlap leave request
  * @return unknown_type
  */
 public function isOverlapLeaveRequest()
 {
     $posts = $this->getValues();
     $leavePeriodService = new LeavePeriodService();
     $leavePeriodService->setLeavePeriodDao(new LeavePeriodDao());
     $leavePeriod = $leavePeriodService->getLeavePeriod(strtotime($posts['txtFromDate']));
     if ($leavePeriod != null) {
         if ($posts['txtToDate'] > $leavePeriod->getEndDate()) {
             return true;
         }
     }
     return false;
 }
コード例 #6
0
 public function fetchRawLeaveSummaryRecords($clues, $offset, $limit)
 {
     $includeTerminated = false;
     if ($clues['cmbWithTerminated'] != 0) {
         $includeTerminated = true;
     }
     $recordsResult = $this->getLeaveSummaryDao()->fetchRawLeaveSummaryRecords($clues, $offset, $limit, $includeTerminated);
     $recordsCount = $this->fetchRawLeaveSummaryRecordsCount($clues, $includeTerminated);
     $leaveEntitlementService = new LeaveEntitlementService();
     $leaveEntitlementService->setLeaveEntitlementDao(new LeaveEntitlementDao());
     $leavePeriodService = new LeavePeriodService();
     $leavePeriodService->setLeavePeriodDao(new LeavePeriodDao());
     $summaryListArray = array();
     if ($recordsCount > 0) {
         $i = 0;
         while ($row = $recordsResult->fetch()) {
             $employeeName = $row['empFirstName'] . ' ' . $row['empLastName'];
             $employeeId = $row['empNumber'];
             $employeeStatus = $row['empStatus'];
             $leaveType = $row['leaveTypeName'];
             $leaveTypeId = $row['leaveTypeId'];
             $leavePeriodId = $clues['cmbLeavePeriod'] ? $clues['cmbLeavePeriod'] : $leavePeriodService->getCurrentLeavePeriod();
             $leaveEntitlementObj = $leaveEntitlementService->readEmployeeLeaveEntitlement($employeeId, $leaveTypeId, $leavePeriodId);
             if ($leaveEntitlementObj instanceof EmployeeLeaveEntitlement) {
                 $leaveEntitled = $leaveEntitlementObj->getNoOfDaysAllotted();
                 $leaveBroughtForward = $leaveEntitlementObj->getLeaveBroughtForward();
                 $leaveCarryForward = $leaveEntitlementObj->getLeaveCarriedForward();
             } else {
                 $leaveEntitled = '0.00';
                 $leaveBroughtForward = '0.00';
                 $leaveCarryForward = '0.00';
             }
             $leaveRequestService = new LeaveRequestService();
             $leaveRequestService->setLeaveRequestDao(new LeaveRequestDao());
             $leaveTaken = $leaveRequestService->getTakenLeaveSum($employeeId, $leaveTypeId, $leavePeriodId);
             $leaveTaken = empty($leaveTaken) ? '0.00' : $leaveTaken;
             //$leaveScheduled = $this->_getLeaveScheduled($employeeId, $leaveTypeId, $leavePeriodId);
             $leaveScheduled = $leaveRequestService->getScheduledLeavesSum($employeeId, $leaveTypeId, $leavePeriodId);
             $leaveScheduled = empty($leaveScheduled) ? '0.00' : $leaveScheduled;
             $leaveRemaining = $leaveEntitled + $leaveBroughtForward - ($leaveTaken + $leaveScheduled + $leaveCarryForward);
             $leaveRemaining = number_format($leaveRemaining, 2);
             $rowDisplayFlag = false;
             $deletedFlag = false;
             //show active leave types
             if ($row['availableFlag'] == 1) {
                 $rowDisplayFlag = true;
             }
             //show inactive leave types if any leaveEntitled, leaveTaken, leaveScheduled of them above 0
             if ($row['availableFlag'] != 1 && ($leaveEntitled > 0 || $leaveTaken > 0 || $leaveScheduled > 0)) {
                 $rowDisplayFlag = true;
                 $deletedFlag = true;
             }
             if ($rowDisplayFlag) {
                 $summaryListRow = array();
                 $employeeLeaveEntitlementObject = new EmployeeLeaveEntitlement();
                 // If readonly value is 1, force read only
                 if (isset($row['readonly']) && $row['readonly'] == 1) {
                     $employeeLeaveEntitlementObject->setForceReadOnly(true);
                 }
                 $employeeLeaveEntitlementObject->setEmployeeId($employeeId);
                 $employeeLeaveEntitlementObject->setEmployeeStatus($employeeStatus);
                 $employeeLeaveEntitlementObject->setLeaveTypeId($leaveTypeId);
                 $employeeLeaveEntitlementObject->setNoOfDaysAllotted($leaveEntitled);
                 $employeeLeaveEntitlementObject->setLeaveBroughtForward($leaveBroughtForward);
                 $employeeLeaveEntitlementObject->setLeaveCarriedForward($leaveCarryForward);
                 $employeeLeaveEntitlementObject->setLeavePeriodId($leavePeriodId);
                 $summaryListArray[] = $employeeLeaveEntitlementObject;
                 $i++;
             }
         }
     }
     return $summaryListArray;
 }