public function testBulkAssignLeaveEntitlements()
 {
     $this->fixture = sfConfig::get('sf_plugins_dir') . '/orangehrmLeavePlugin/test/fixtures/LeaveEntitlement.yml';
     TestDataService::populate($this->fixture);
     $dao = new LeaveEntitlementDao();
     $limit = 5000;
     $empList = array();
     $employeeService = new EmployeeService();
     $employeeService->setEmployeeDao(new EmployeeDao());
     for ($i = 0; $i < $limit; $i++) {
         $employee = new Employee();
         $employee->setFirstName($i);
         $employee = $employeeService->saveEmployee($employee);
         array_push($empList, $employee->getEmpNumber());
     }
     $start_time = microtime(true);
     $leaveEntitlement = new LeaveEntitlement();
     $leaveEntitlement->setLeaveTypeId(1);
     $leaveEntitlement->setCreditedDate(date('Y-m-d'));
     $leaveEntitlement->setEntitlementType(LeaveEntitlement::ENTITLEMENT_TYPE_ADD);
     $leaveEntitlement->setDeleted(0);
     $leaveEntitlement->setNoOfDays(2);
     $leaveEntitlement->setFromDate('2012-01-01');
     $leaveEntitlement->setToDate('2012-08-01');
     $result = $dao->bulkAssignLeaveEntitlements($empList, $leaveEntitlement);
     $deference = microtime(true) - $start_time;
     $this->assertEquals(count($empList), $result, "Time Deference - " . $deference);
     echo "Add Entitlement 5000 Time " . $deference;
 }
 public function testBulkAssignLeaveEntitlementsLinkingOfUnlinkedLeave()
 {
     $empList = array(7);
     $leaveEntitlement = new LeaveEntitlement();
     $leaveEntitlement->setLeaveTypeId(1);
     $leaveEntitlement->setCreditedDate(date('Y-m-d'));
     $leaveEntitlement->setEntitlementType(LeaveEntitlement::ENTITLEMENT_TYPE_ADD);
     $leaveEntitlement->setDeleted(0);
     $leaveEntitlement->setNoOfDays(3);
     $leaveEntitlement->setFromDate('2014-01-01');
     $leaveEntitlement->setToDate('2014-12-31');
     $result = $this->dao->bulkAssignLeaveEntitlements($empList, $leaveEntitlement);
     $this->assertEquals(count($empList), $result);
     // verify unlinked leave is now linked
     $conn = Doctrine_Manager::connection()->getDbh();
     $statement = $conn->prepare('SELECT * FROM ohrm_leave_leave_entitlement e WHERE e.leave_id = ?');
     $leaveIds = array(11, 12);
     foreach ($leaveIds as $leaveId) {
         $this->assertTrue($statement->execute(array($leaveId)));
         $results = $statement->fetchAll();
         $this->assertEquals(1, count($results));
         $this->assertEquals($leaveId, $results[0]['leave_id']);
         $this->assertEquals(1, $results[0]['length_days']);
     }
 }
 public function testGetLeaveEntitlementTypeListSpecificSort()
 {
     $entitlementTypeList = TestDataService::loadObjectList('LeaveEntitlementType', $this->fixture, 'LeaveEntitlementType');
     $expected = array($entitlementTypeList[0], $entitlementTypeList[1]);
     $result = $this->dao->getLeaveEntitlementTypeList('id', 'ASC');
     $this->compareEntitlementTypes($expected, $result);
 }
Пример #4
0
 public function getPendingStatusIds()
 {
     if (is_null(self::$pendingStatusIds)) {
         $q = Doctrine_Query::create()->select('s.status')->from('LeaveStatus s')->where("s.name LIKE 'PENDING APPROVAL%'");
         self::$pendingStatusIds = $q->execute(array(), Doctrine_Core::HYDRATE_SINGLE_SCALAR);
     }
     return self::$pendingStatusIds;
 }
 public function getPendingStatusIds()
 {
     if (is_null(self::$pendingStatusIds)) {
         $q = Doctrine_Query::create()->select('s.status')->from('LeaveStatus s')->where("s.name LIKE '%PENDING APPROVAL%'");
         self::$pendingStatusIds = $q->execute(array(), Doctrine_Core::HYDRATE_SINGLE_SCALAR);
         if (count(self::$pendingStatusIds) == 0) {
             $logger = $this->getLogger();
             $logger->error('No PENDING APPROVAL leave status found!');
             throw new DaoException("No PENDING APPROVAL leave statuses in ohrm_leave_status table!");
         }
     }
     return self::$pendingStatusIds;
 }