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(); }
/** * 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()); } }
public function getLeavePeriodService() { if (is_null($this->leavePeriodService)) { $leavePeriodService = new LeavePeriodService(); $leavePeriodService->setLeavePeriodDao(new LeavePeriodDao()); $this->leavePeriodService = $leavePeriodService; } return $this->leavePeriodService; }
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; }
/** * 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; }
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; }