public function now() { $history = LeaveRequest::with('user')->with('entitlement')->where('mgr_id', '=', 6)->orderBy('id', 'DESC')->take(20)->get(); return $history; //$leaves = User::with('leaveRequest')->where('id', '=', 6)->get(); //return $leaves; // return Config::get('systech.annual_start_date'); // $enrolls = Enroll::with('sassions')->orderBy('id', 'DESC')->take(10)->get(); /*$leaveSum = DB::table('leave_requests')->where('user_id', '=', 6) ->where('entitlement_id', '=', 1)->sum('no_of_days'); echo $leaveSum; */ }
public function actionGetleavesinfo($id) { header('Content-type: application/json'); $employee = MastersEmployees::model()->findByPk($_GET['id']); $leave = LeaveRequest::model()->find(array('condition' => 'employee_id = ' . $_GET['id'] . ' and (status = "new" or status = "request")')); // $leaves_pending_msg = count($leave); if (count($leave) == 0) { $leaves_pending_msg = ''; } else { $leaves_pending_msg = at('There is a pending leaves request for this employee.'); } $leaves_quota = $employee->leave_quota; echo CJSON::encode(array('leaves_pending' => $leaves_pending_msg, 'leaves_info' => '{ Current Leaves : 2 / 3 ( Max : 1 ) } { Total Leaves : 21 }', 'leaves_quota' => $leaves_quota)); }
/** * 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 actionRequest() { $model = new LeaveRequest('search'); $model->unsetAttributes(); // clear any default values if (isset($_GET['LeaveRequest'])) { $model->attributes = $_GET['LeaveRequest']; } $this->render('request', array('model' => $model)); }
public function actionOnLeaveRequest() { $all = Input::all(); $leave = LeaveRequest::where('id', '=', $all['id']); $leave->update(array('status' => $all['status'])); return Response::jsend('success', array('msg' => sprintf("Leave status is set to %s.", $all['status']))); }
public function xtestChangeLeaveStatusForLeave() { $leaveRequest = new LeaveRequest(); $leaveRequest->setId(1); $leave = new Leave(); $leave->setLeaveRequest($leaveRequest); $changes = array(1 => 'APPROVE', 21 => 'REJECT', 31 => 'CANCEL'); $changeType = 'change_leave'; $leaveRequestDao = $this->getMock('LeaveRequestDao', array('getLeaveById')); $leaveRequestDao->expects($this->any())->method('getLeaveById')->will($this->returnValue($leave)); $this->leaveRequestService->setLeaveRequestDao($leaveRequestDao); $mockLeaveStateManager = new MockLeaveStateManager(); $this->leaveRequestService->setLeaveStateManager($mockLeaveStateManager); $leaveNotificationService = $this->getMock('LeaveNotificationService', array('approve', 'cancel', 'reject', 'cancelEmployee')); $this->leaveRequestService->setLeaveNotificationService($leaveNotificationService); $this->leaveRequestService->changeLeaveStatus($changes, $changeType); }
/** * 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()); } }
protected function compareLeaveRequest(LeaveRequest $expected, LeaveRequest $result) { $this->assertTrue($result instanceof LeaveRequest); $expectedId = $expected->getId(); if (!empty($expectedId)) { $this->assertEquals($expectedId, $result->getId()); } else { $leaveRequestId = $result->getId(); $this->assertTrue(!empty($leaveRequestId)); } $this->assertEquals($expected->getLeaveTypeId(), $result->getLeaveTypeId()); $this->assertEquals($expected->getDateApplied(), $result->getDateApplied()); $this->assertEquals($expected->getEmpNumber(), $result->getEmpNumber()); $this->assertEquals($expected->getComments(), $result->getComments()); }
public function testModifyOverlapLeaveRequest() { /* 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() */ $this->assertTrue($this->leaveRequestDao->saveLeaveRequest($leaveRequest, $leave)); $this->assertTrue($this->leaveRequestDao->modifyOverlapLeaveRequest($leaveRequest, $leave, $leavePeriod)); $leaveRequestList = TestDataService::fetchLastInsertedRecords('LeaveRequest', 2); $this->assertEquals(21, $leaveRequestList[0]->getLeaveRequestId()); $this->assertEquals(1, $leaveRequestList[0]->getLeavePeriodId()); $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(2, $leaveRequestList[1]->getLeavePeriodId()); $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]->getLeaveId()); $this->assertEquals(8, $leaveList[0]->getLeaveLengthHours()); $this->assertEquals(1, $leaveList[0]->getLeaveLengthDays()); $this->assertEquals(21, $leaveList[0]->getLeaveRequestId()); $this->assertEquals('LTY001', $leaveList[0]->getLeaveTypeId()); $this->assertEquals(1, $leaveList[0]->getEmployeeId()); $this->assertEquals('2010-12-30', $leaveList[0]->getLeaveDate()); $this->assertEquals(1, $leaveList[0]->getLeaveStatus()); $this->assertEquals(37, $leaveList[1]->getLeaveId()); $this->assertEquals(8, $leaveList[1]->getLeaveLengthHours()); $this->assertEquals(1, $leaveList[1]->getLeaveLengthDays()); $this->assertEquals(21, $leaveList[1]->getLeaveRequestId()); $this->assertEquals('LTY001', $leaveList[1]->getLeaveTypeId()); $this->assertEquals(1, $leaveList[1]->getEmployeeId()); $this->assertEquals('2010-12-31', $leaveList[1]->getLeaveDate()); $this->assertEquals(1, $leaveList[1]->getLeaveStatus()); $this->assertEquals(38, $leaveList[2]->getLeaveId()); $this->assertEquals(8, $leaveList[2]->getLeaveLengthHours()); $this->assertEquals(1, $leaveList[2]->getLeaveLengthDays()); $this->assertEquals(22, $leaveList[2]->getLeaveRequestId()); $this->assertEquals('LTY001', $leaveList[2]->getLeaveTypeId()); $this->assertEquals(1, $leaveList[2]->getEmployeeId()); $this->assertEquals('2011-01-01', $leaveList[2]->getLeaveDate()); $this->assertEquals(1, $leaveList[2]->getLeaveStatus()); $this->assertEquals(39, $leaveList[3]->getLeaveId()); $this->assertEquals(8, $leaveList[3]->getLeaveLengthHours()); $this->assertEquals(1, $leaveList[3]->getLeaveLengthDays()); $this->assertEquals(22, $leaveList[3]->getLeaveRequestId()); $this->assertEquals('LTY001', $leaveList[3]->getLeaveTypeId()); $this->assertEquals(1, $leaveList[3]->getEmployeeId()); $this->assertEquals('2011-01-02', $leaveList[3]->getLeaveDate()); $this->assertEquals(1, $leaveList[3]->getLeaveStatus()); }
/** * Check Whether the Employee is Allowed to Apply Requested Leave Days * @param array $requestedLeaveDays key => leave period id * @param LeaveRequest $leaveRequest * @return boolean */ public function isLeaveRequestNotExceededLeaveBalance($requestedLeaveDays, $leaveRequest) { foreach ($requestedLeaveDays as $leavePeriodId => $days) { $leaveQuota = $this->getEmployeeLeaveEntitlementDays($leaveRequest->getEmployeeId(), $leaveRequest->getLeaveTypeId(), $leavePeriodId); $acceptedLeaveDays = $this->getLeaveRequestService()->getNumOfAvaliableLeave($leaveRequest->getEmployeeId(), $leaveRequest->getLeaveTypeId(), $leavePeriodId); if ($days > $leaveQuota - $acceptedLeaveDays) { return false; } } return true; }