public function getLeaveBalance()
 {
     $employeeId = $this->getEmpNumber();
     $leaveTypeId = $this->getLeaveTypeId();
     $leavePeriodId = $this->getLeavePeriodId();
     $leaveEntitlementService = new LeaveEntitlementService();
     $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);
     return $leaveRemaining;
 }
 protected function setUp()
 {
     $this->leavePeriodService = new LeavePeriodService();
     $leaveEntitlementService = new LeaveEntitlementService();
     $leaveEntitlementService->setLeaveEntitlementStrategy(new FIFOEntitlementConsumptionStrategy());
     $this->leavePeriodService->setLeaveEntitlementService($leaveEntitlementService);
     TestDataService::truncateTables(array('LeavePeriodHistory'));
 }
Пример #3
0
 public function getLeaveBalance()
 {
     $leaveEntitlementService = new LeaveEntitlementService();
     $employeeId = $this->getEmpNumber();
     $leaveTypeId = $this->getLeaveTypeId();
     $leavePeriodId = $this->getLeavePeriodId();
     $balance = $leaveEntitlementService->getLeaveBalance($employeeId, $leaveTypeId, $leavePeriodId);
     return $balance;
 }
 public function getLeaveBalance()
 {
     $balance = '';
     $leaveEntitlementService = new LeaveEntitlementService();
     $employeeId = $this->getEmpNumber();
     $leaveTypeId = $this->getLeaveTypeId();
     $leaveBalance = $leaveEntitlementService->getLeaveBalance($employeeId, $leaveTypeId);
     if ($leaveBalance instanceof LeaveBalance) {
         $balance = $leaveBalance->getBalance();
     }
     return $balance;
 }
 function getLeaveBalances($postData)
 {
     $count = count($postData);
     $data = array();
     $leaveEntitlementService = new LeaveEntitlementService();
     $leaveStrategy = $leaveEntitlementService->getLeaveEntitlementStrategy();
     for ($i = 0; $i < $count; $i++) {
         $empNumber = $postData[$i][0];
         $leaveTypeId = $postData[$i][1];
         $startDate = $postData[$i][2];
         $endDate = $postData[$i][3];
         if ($startDate == $endDate) {
             $leaveBalance = $leaveEntitlementService->getLeaveBalance($empNumber, $leaveTypeId, $startDate);
         } else {
             $leavePeriodForStartDate = $leaveStrategy->getLeavePeriod($startDate, $empNumber, $leaveTypeId);
             $leavePeriodForEndDate = $leaveStrategy->getLeavePeriod($endDate, $empNumber, $leaveTypeId);
             if ($leavePeriodForStartDate[0] == $leavePeriodForEndDate[0] && $leavePeriodForStartDate[1] == $leavePeriodForEndDate[1]) {
                 $leaveBalance = $leaveEntitlementService->getLeaveBalance($empNumber, $leaveTypeId, $startDate);
             } else {
                 $startPeriodBalance = $leaveEntitlementService->getLeaveBalance($empNumber, $leaveTypeId, $startDate);
                 $endPeriodBalance = $leaveEntitlementService->getLeaveBalance($empNumber, $leaveTypeId, $endDate);
                 $leaveBalance = array(array('start' => set_datepicker_date_format($leavePeriodForStartDate[0]), 'end' => set_datepicker_date_format($leavePeriodForStartDate[1]), 'balance' => $startPeriodBalance->getBalance()), array('start' => set_datepicker_date_format($leavePeriodForEndDate[0]), 'end' => set_datepicker_date_format($leavePeriodForEndDate[1]), 'balance' => $endPeriodBalance->getBalance()));
             }
         }
         if ($leaveBalance instanceof LeaveBalance) {
             $data[] = number_format($leaveBalance->getBalance(), 2);
         } else {
             $data[] = $leaveBalance;
         }
     }
     return $data;
 }
 /**
  *
  * @param <type> $request
  * @return <type>
  */
 public function execute($request)
 {
     sfConfig::set('sf_web_debug', false);
     sfConfig::set('sf_debug', false);
     $isValidEntitlement = true;
     if ($this->getRequest()->isXmlHttpRequest()) {
         $this->getResponse()->setHttpHeader('Content-Type', 'application/json; charset=utf-8');
     }
     $id = $request->getParameter('id');
     if ($id > 0) {
         $entitlementValue = $request->getParameter('entitlements');
         $entitlmentService = new LeaveEntitlementService();
         $entitlment = $entitlmentService->getLeaveEntitlement($id);
         if ($entitlment->getDaysUsed() > $entitlementValue['entitlement']) {
             $isValidEntitlement = false;
         }
     }
     $response = $this->getResponse();
     $response->setHttpHeader('Expires', '0');
     $response->setHttpHeader("Cache-Control", "must-revalidate, post-check=0, pre-check=0, max-age=0");
     $response->setHttpHeader("Cache-Control", "private", false);
     return $this->renderText(json_encode($isValidEntitlement));
 }
 public function testSaveEmployeeLeaveEntitlementCollection()
 {
     $employeeLeaveEntitlementCollection = new Doctrine_Collection('EmployeeLeaveEntitlement');
     $employeeLeaveEntitlementList = array();
     $employeeLeaveEntitlement = new EmployeeLeaveEntitlement();
     $employeeLeaveEntitlement->setLeaveTypeId(1);
     $employeeLeaveEntitlement->setLeavePeriodId(1);
     $employeeLeaveEntitlement->setEmployeeId(1);
     $employeeLeaveEntitlement->setNoOfDaysAllotted(14);
     $employeeLeaveEntitlement->setLeaveBroughtForward(2);
     $employeeLeaveEntitlement->setLeaveCarriedForward(5);
     $employeeLeaveEntitlementCollection->add($employeeLeaveEntitlement);
     $employeeLeaveEntitlementList[] = $employeeLeaveEntitlement;
     $employeeLeaveEntitlement = new EmployeeLeaveEntitlement();
     $employeeLeaveEntitlement->setLeaveTypeId(1);
     $employeeLeaveEntitlement->setLeavePeriodId(1);
     $employeeLeaveEntitlement->setEmployeeId(2);
     $employeeLeaveEntitlement->setNoOfDaysAllotted(20);
     $employeeLeaveEntitlement->setLeaveBroughtForward(3);
     $employeeLeaveEntitlement->setLeaveCarriedForward(4);
     $employeeLeaveEntitlementCollection->add($employeeLeaveEntitlement);
     $employeeLeaveEntitlementList[] = $employeeLeaveEntitlement;
     $leaveEntitlementDao = $this->getMock('LeaveEntitlementDao', array('saveEmployeeLeaveEntitlementCollection'));
     $leaveEntitlementDao->expects($this->once())->method('saveEmployeeLeaveEntitlementCollection')->with($employeeLeaveEntitlementList)->will($this->returnValue($employeeLeaveEntitlementCollection));
     $leaveEntitlementService = new LeaveEntitlementService();
     $leaveEntitlementService->setLeaveEntitlementDao($leaveEntitlementDao);
     $results = $leaveEntitlementService->saveEmployeeLeaveEntitlementCollection($employeeLeaveEntitlementList);
     $this->assertEquals($employeeLeaveEntitlementCollection, $results);
 }
Пример #8
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;
 }