/**
  * @return ViewModel
  */
 public function processAction()
 {
     $this->init_data();
     $helper = new PayrollHelper();
     $form = $helper->getForm($this->formulaList);
     return new ViewModel(array('staffs' => $this->staffTable->getActiveStaffs(), 'lateList' => $this->lateList, 'workingHours' => $this->workingHours, 'leaveValues' => $this->leaveValues, 'form' => $form));
 }
 public function indexAction()
 {
     try {
         $this->init_data();
         $staffId = $this->staff ? $this->staff->getStaffId() : 0;
         $request = $this->getRequest();
         $attendance = $this->attendanceTable()->checkAttendance($staffId, date('Y-m-d', time()));
         if (!$attendance) {
             $attendance = new Attendance();
             $attendance->exchangeArray(array('staffId' => $staffId, 'attendanceDate' => date('Y-m-d', time())));
         }
         $helper = new DashboardHelper();
         $leaveForm = $helper->getLeaveForm($this->leaveTypeList);
         $leave = new Leave();
         $leaveForm->bind($leave);
         $salaryHelper = new PayrollHelper();
         $salaryForm = $salaryHelper->getForm(array());
         if ($request->isPost()) {
             $post_data = $request->getPost()->toArray();
             $leaveForm->setData($post_data);
             $leaveForm->setInputFilter($helper->getLeaveFilter());
             if ($leaveForm->isValid()) {
                 $leave->setStaffId($staffId);
                 $leave->setStatus('R');
                 $this->leaveTable->saveLeave($leave);
                 $this->flashMessenger()->addWarningMessage('Leave request send to HR.');
                 return $this->redirect()->toRoute('dashboard');
             }
         }
         return new ViewModel(array('attendance' => $attendance, 'leaveForm' => $leaveForm, 'salaryForm' => $salaryForm, 'lateList' => $this->lateList, 'workingHours' => $this->workingHours, 'leaveValues' => $this->leaveValues, 'staff' => $this->staff ? $this->staff : new Staff()));
     } catch (\Exception $ex) {
         throw $ex;
     }
 }