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); }
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; }