示例#1
0
 /**
  * get Leave Request
  * @return LeaveRequest
  */
 public function getLeaveRequest()
 {
     $posts = $this->getValues();
     $leaveRequest = new LeaveRequest();
     $leaveRequest->setLeaveTypeId($posts['txtLeaveType']);
     $leaveRequest->setDateApplied($posts['txtFromDate']);
     $leaveRequest->setLeavePeriodId($this->getLeavePeriod($posts['txtFromDate']));
     $leaveRequest->setEmpNumber($posts['txtEmpID']);
     $leaveRequest->setLeaveComments($posts['txtComment']);
     return $leaveRequest;
 }
 /**
  *
  * @param LeaveParameterObject $leaveAssignmentData
  * @return LeaveRequest 
  */
 protected function generateLeaveRequest(LeaveParameterObject $leaveAssignmentData)
 {
     $leavePeriodId = null;
     $leavePeriod = $this->getLeavePeriodService()->getLeavePeriod(strtotime($leaveAssignmentData->getFromDate()));
     if (!is_null($leavePeriod) && $leavePeriod instanceof LeavePeriod) {
         $leavePeriodId = $leavePeriod->getLeavePeriodId();
     }
     $leaveRequest = new LeaveRequest();
     $leaveRequest->setLeaveTypeId($leaveAssignmentData->getLeaveType());
     $leaveRequest->setDateApplied($leaveAssignmentData->getFromDate());
     $leaveRequest->setLeavePeriodId($leavePeriodId);
     $leaveRequest->setEmpNumber($leaveAssignmentData->getEmployeeNumber());
     $leaveRequest->setLeaveComments($leaveAssignmentData->getComment());
     return $leaveRequest;
 }
 public function xtestIsEmployeeHavingLeaveBalanceErrorCases()
 {
     $empId = 1;
     $leaveTypeId = "LT001";
     $leaveRequest = "";
     $leavePeriodId = 11;
     $dateApplied = '2010-09-11';
     $applyDays = 2;
     $leaveRequest = new LeaveRequest();
     $leaveRequest->setDateApplied($dateApplied);
     $leaveRequest->setLeavePeriodId($leavePeriodId);
     $entitledDays = 5;
     $availableLeave = 3;
     $leaveEntitlement = new EmployeeLeaveEntitlement();
     $leaveEntitlement->setLeaveBroughtForward(2);
     $leaveBalance = 0;
     $currentLeavePeriod = new LeavePeriod();
     $currentLeavePeriod->setStartDate('2010-01-01');
     $currentLeavePeriod->setEndDate('2010-12-31');
     $nextLeavePeriod = new LeavePeriod();
     $nextLeavePeriod->setStartDate('2011-01-01');
     $nextLeavePeriod->setEndDate('2011-12-31');
     $leaveEntitlementService = $this->getMock('OldLeaveEntitlementService', array('getEmployeeLeaveEntitlementDays', 'readEmployeeLeaveEntitlement', 'getLeaveBalance'));
     $leaveEntitlementService->expects($this->any())->method('getEmployeeLeaveEntitlementDays')->with($empId, $leaveTypeId, $leavePeriodId)->will($this->returnValue($entitledDays));
     $leaveEntitlementService->expects($this->any())->method('readEmployeeLeaveEntitlement')->with($empId, $leaveTypeId, $leavePeriodId)->will($this->returnValue($leaveEntitlement));
     $leaveEntitlementService->expects($this->any())->method('getLeaveBalance')->will($this->returnValue($leaveBalance));
     $this->leaveRequestService->setLeaveEntitlementService($leaveEntitlementService);
     $leaveRequestDao = $this->getMock('LeaveRequestDao', array('getNumOfAvaliableLeave'));
     $leaveRequestDao->expects($this->any())->method('getNumOfAvaliableLeave')->with($empId, $leaveTypeId)->will($this->returnValue($availableLeave));
     $this->leaveRequestService->setLeaveRequestDao($leaveRequestDao);
     $leavePeriodService = $this->getMock('LeavePeriodService', array('getLeavePeriod', 'createNextLeavePeriod', 'getCurrentLeavePeriod'));
     $leavePeriodService->expects($this->any())->method('getLeavePeriod')->with(strtotime($leaveRequest->getDateApplied()))->will($this->returnValue($currentLeavePeriod));
     $leavePeriodService->expects($this->any())->method('createNextLeavePeriod')->with(date('Y-m-d', strtotime('2010-09-13')))->will($this->returnValue($nextLeavePeriod));
     $leavePeriodService->expects($this->any())->method('getCurrentLeavePeriod')->will($this->returnValue($currentLeavePeriod));
     $this->leaveRequestService->setLeavePeriodService($leavePeriodService);
     // Trigger leave balance exceeded
     try {
         $retVal = $this->leaveRequestService->isEmployeeHavingLeaveBalance($empId, $leaveTypeId, $leaveRequest, $applyDays);
         $this->fail("Exception expected");
     } catch (LeaveServiceException $e) {
         // expected - check code thrown in LeaveRequestService
     }
 }
 /**
  * Modify Overlap leave request
  * @param LeaveRequest $leaveRequest
  * @return boolean
  */
 public function xmodifyOverlapLeaveRequest(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());
     }
 }
 public function xtestModifyOverlapLeaveRequest()
 {
     /* Preparing required data */
     $leaveRequest = new LeaveRequest();
     $leaveRequest->setLeavePeriodId(1);
     $leaveRequest->setLeaveTypeId('LTY001');
     $leaveRequest->setLeaveTypeName('Casual');
     $leaveRequest->setDateApplied('2010-12-01');
     $leaveRequest->setEmpNumber(1);
     $leave[0] = new Leave();
     $leave[0]->setLeaveLengthHours(8);
     $leave[0]->setLeaveLengthDays(1);
     $leave[0]->setLeaveDate('2010-12-30');
     $leave[0]->setLeaveStatus(1);
     $leave[1] = new Leave();
     $leave[1]->setLeaveLengthHours(8);
     $leave[1]->setLeaveLengthDays(1);
     $leave[1]->setLeaveDate('2010-12-31');
     $leave[1]->setLeaveStatus(1);
     $leave[2] = new Leave();
     $leave[2]->setLeaveLengthHours(8);
     $leave[2]->setLeaveLengthDays(1);
     $leave[2]->setLeaveDate('2011-01-01');
     $leave[2]->setLeaveStatus(1);
     $leave[3] = new Leave();
     $leave[3]->setLeaveLengthHours(8);
     $leave[3]->setLeaveLengthDays(1);
     $leave[3]->setLeaveDate('2011-01-02');
     $leave[3]->setLeaveStatus(1);
     $leavePeriod = TestDataService::fetchObject('LeavePeriod', 1);
     /* Executing tests */
     /* At use, modifyOverlapLeaveRequest() is called after calling
      * saveLeaveRequest()
      */
     $leaveRequest = $this->leaveRequestDao->saveLeaveRequest($leaveRequest, $leave);
     $this->assertTrue($leaveRequest instanceof LeaveRequest);
     $this->assertTrue($this->leaveRequestDao->modifyOverlapLeaveRequest($leaveRequest, $leave, $leavePeriod));
     $leaveRequestList = TestDataService::fetchLastInsertedRecords('LeaveRequest', 2);
     $this->assertEquals(21, $leaveRequestList[0]->getLeaveRequestId());
     $this->assertEquals('LTY001', $leaveRequestList[0]->getLeaveTypeId());
     $this->assertEquals('Casual', $leaveRequestList[0]->getLeaveTypeName());
     $this->assertEquals('2010-12-01', $leaveRequestList[0]->getDateApplied());
     $this->assertEquals(1, $leaveRequestList[0]->getEmpNumber());
     $this->assertEquals(22, $leaveRequestList[1]->getLeaveRequestId());
     $this->assertEquals('LTY001', $leaveRequestList[1]->getLeaveTypeId());
     $this->assertEquals('Casual', $leaveRequestList[1]->getLeaveTypeName());
     $this->assertEquals('2010-12-01', $leaveRequestList[1]->getDateApplied());
     $this->assertEquals(1, $leaveRequestList[1]->getEmpNumber());
     $leaveList = TestDataService::fetchLastInsertedRecords('Leave', 4);
     $this->assertEquals(36, $leaveList[0]->getId());
     $this->assertEquals(8, $leaveList[0]->getLengthHours());
     $this->assertEquals(1, $leaveList[0]->getLengthDays());
     $this->assertEquals(21, $leaveList[0]->getLeaveRequestId());
     $this->assertEquals('LTY001', $leaveList[0]->getLeaveTypeId());
     $this->assertEquals(1, $leaveList[0]->getEmpNumber());
     $this->assertEquals('2010-12-30', $leaveList[0]->getDate());
     $this->assertEquals(1, $leaveList[0]->getStatus());
     $this->assertEquals(37, $leaveList[1]->getId());
     $this->assertEquals(8, $leaveList[1]->getLengthHours());
     $this->assertEquals(1, $leaveList[1]->getLengthDays());
     $this->assertEquals(21, $leaveList[1]->getLeaveRequestId());
     $this->assertEquals('LTY001', $leaveList[1]->getLeaveTypeId());
     $this->assertEquals(1, $leaveList[1]->getEmpNumber());
     $this->assertEquals('2010-12-31', $leaveList[1]->getDate());
     $this->assertEquals(1, $leaveList[1]->getStatus());
     $this->assertEquals(38, $leaveList[2]->getId());
     $this->assertEquals(8, $leaveList[2]->getLengthHours());
     $this->assertEquals(1, $leaveList[2]->getLengthDays());
     $this->assertEquals(22, $leaveList[2]->getLeaveRequestId());
     $this->assertEquals('LTY001', $leaveList[2]->getLeaveTypeId());
     $this->assertEquals(1, $leaveList[2]->getEmpNumber());
     $this->assertEquals('2011-01-01', $leaveList[2]->getDate());
     $this->assertEquals(1, $leaveList[2]->getStatus());
     $this->assertEquals(39, $leaveList[3]->getId());
     $this->assertEquals(8, $leaveList[3]->getLengthHours());
     $this->assertEquals(1, $leaveList[3]->getLengthDays());
     $this->assertEquals(22, $leaveList[3]->getLeaveRequestId());
     $this->assertEquals('LTY001', $leaveList[3]->getLeaveTypeId());
     $this->assertEquals(1, $leaveList[3]->getEmpNumber());
     $this->assertEquals('2011-01-02', $leaveList[3]->getDate());
     $this->assertEquals(1, $leaveList[3]->getStatus());
 }