コード例 #1
0
 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;
       */
 }
コード例 #2
0
 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));
 }
コード例 #3
0
ファイル: ApplyLeaveForm.php プロジェクト: rabbitdigital/HRM
 /**
  * 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;
 }
コード例 #4
0
 /**
  *
  * @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;
 }
コード例 #5
0
 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));
 }
コード例 #6
0
 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'])));
 }
コード例 #7
0
 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);
 }
コード例 #8
0
 /**
  * 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());
     }
 }
コード例 #9
0
 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());
 }
コード例 #10
0
 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());
 }
コード例 #11
0
 /**
  * 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;
 }