function updatestatusAction()
 {
     $this->_helper->layout->disableLayout();
     $this->_helper->viewRenderer->setNoRender(TRUE);
     $formvalues = $this->_getAllParams();
     debugMessage($formvalues);
     $session = SessionWrapper::getInstance();
     $this->_translate = Zend_Registry::get("translate");
     $formvalues['id'] = $id = $formvalues['id'];
     $formvalues['dateapproved'] = date("Y-m-d H:i:s", strtotime('now'));
     $formvalues['approvedbyid'] = $session->getVar('userid');
     // debugMessage($formvalues);
     $leave = new Leave();
     $leave->populate($id);
     $leave->setStatus($formvalues['status']);
     $leave->setDateApproved(DEFAULT_DATETIME);
     $leave->setApprovedByID($session->getVar('userid'));
     if (!isArrayKeyAnEmptyString('reason', $formvalues)) {
         $leave->setReason("<br/>Rejected with remarks: " . $formvalues['reason']);
     }
     try {
         $leave->save();
         $leave->afterApprove($formvalues['status']);
         $session->setVar(SUCCESS_MESSAGE, $this->_translate->translate($formvalues[SUCCESS_MESSAGE]));
     } catch (Exception $e) {
         // debugMessage('error '.$e->getMessage());
         $session->setVar(ERROR_MESSAGE, $e->getMessage());
     }
     // exit();
     $this->_helper->redirector->gotoUrl(decode($formvalues[URL_SUCCESS]));
 }
 public function testGetLeaveActions()
 {
     $loggedInEmpNumber = 4;
     $leave = new Leave();
     $leave->setStatus(Leave::LEAVE_STATUS_LEAVE_PENDING_APPROVAL);
     $leave->setEmpNumber(5);
     $approveAction = new WorkflowStateMachine();
     $approveAction->fromArray(array('id' => 2, 'workflow' => 'leave', 'state' => 'PENDING APPROVAL', 'role' => 'ADMIN', 'action' => 'APPROVE', 'resulting_state' => 'SCHEDULED', 'roles_to_notify' => '', 'priority' => 0));
     $cancelAction = new WorkflowStateMachine();
     $cancelAction->fromArray(array('id' => 3, 'workflow' => 'leave', 'state' => 'PENDING APPROVAL', 'role' => 'ADMIN', 'action' => 'CANCEL', 'resulting_state' => 'CANCELLED', 'roles_to_notify' => '', 'priority' => 0));
     $rejectAction = new WorkflowStateMachine();
     $rejectAction->fromArray(array('id' => 5, 'workflow' => 'leave', 'state' => 'PENDING APPROVAL', 'role' => 'ADMIN', 'action' => 'REJECT', 'resulting_state' => 'REJECTED', 'roles_to_notify' => '', 'priority' => 0));
     $actions = array($approveAction, $cancelAction, $rejectAction);
     $userManager = $this->getMock('BasicUserRoleManager', array('getAllowedActions'));
     $userManager->expects($this->any())->method('getAllowedActions')->with(WorkflowStateMachine::FLOW_LEAVE, $leave->getTextLeaveStatus(), array(), array())->will($this->returnValue($actions));
     $this->leaveRequestService->setUserRoleManager($userManager);
     $result = $this->leaveRequestService->getLeaveActions($leave, $loggedInEmpNumber);
     $this->verifyLeaveActions($actions, $result);
 }
 /**
  * 
  * Get Leave array
  * @param LeaveParameterObject $leaveAssignmentData
  * @return array
  */
 public function createLeaveObjectListForAppliedRange(LeaveParameterObject $leaveAssignmentData)
 {
     $leaveList = array();
     $from = strtotime($leaveAssignmentData->getFromDate());
     $to = strtotime($leaveAssignmentData->getToDate());
     for ($timeStamp = $from; $timeStamp <= $to; $timeStamp = $this->incDate($timeStamp)) {
         $leave = new Leave();
         $leaveDate = date('Y-m-d', $timeStamp);
         $isWeekend = $this->isWeekend($leaveDate, $leaveAssignmentData);
         $isHoliday = $this->isHoliday($leaveDate, $leaveAssignmentData);
         $isHalfday = $this->isHalfDay($leaveDate, $leaveAssignmentData);
         $isHalfDayHoliday = $this->isHalfdayHoliday($leaveDate, $leaveAssignmentData);
         $leave->setDate($leaveDate);
         //$leave->setComments($leaveAssignmentData->getComment());
         $leave->setLengthDays($this->calculateDateDeference($leaveAssignmentData, $isWeekend, $isHoliday, $isHalfday, $isHalfDayHoliday));
         $leave->setStartTime($leaveAssignmentData->getFromTime() != '' ? $leaveAssignmentData->getFromTime() : '00:00');
         $leave->setEndTime($leaveAssignmentData->getToTime() != '' ? $leaveAssignmentData->getToTime() : '00:00');
         $leave->setLengthHours($this->calculateTimeDeference($leaveAssignmentData, $isWeekend, $isHoliday, $isHalfday, $isHalfDayHoliday));
         $leave->setStatus($this->getLeaveRequestStatus($isWeekend, $isHoliday, $leaveDate, $leaveAssignmentData));
         array_push($leaveList, $leave);
     }
     return $leaveList;
 }
 private function _getLeaveRequestData()
 {
     $leaveRequest = new LeaveRequest();
     $leaveRequest->setLeaveTypeId(1);
     $leaveRequest->setDateApplied('2010-09-01');
     $leaveRequest->setEmpNumber(1);
     $leaveRequest->setComments("Testing comment i add");
     $leave1 = new Leave();
     $leave1->setLengthHours(8);
     $leave1->setLengthDays(1);
     $leave1->setDate('2010-12-01');
     $leave1->setStatus(1);
     $leave2 = new Leave();
     $leave2->setLengthHours(6);
     $leave2->setLengthDays(0.75);
     $leave2->setDate('2010-12-02');
     $leave2->setStatus(1);
     return array($leaveRequest, array($leave1, $leave2));
 }