/**
  * @return \Zend\Http\Response|ViewModel
  */
 public function requestAction()
 {
     $helper = new PayableHelper($this->payableTable());
     $form = $helper->getForm($this->currencyCombo());
     $payable = new Payable();
     $generateNo = $this->payableTable()->getVoucherNo(date('Y-m-d', time()));
     $payable->setVoucherNo($generateNo);
     $payable->setWithdrawBy($this->staffId);
     $form->bind($payable);
     $request = $this->getRequest();
     if ($request->isPost()) {
         $form->setInputFilter($helper->getInputFilter());
         $post_data = $request->getPost()->toArray();
         $form->setData($post_data);
         if ($form->isValid()) {
             $this->payableTable()->savePayable($payable);
             $this->flashMessenger()->addInfoMessage('Requested voucher by' . $generateNo . '.');
             return $this->redirect()->toRoute('account_payable');
         }
     }
     return new ViewModel(array('form' => $form, 'staffName' => $this->staffName, 'accountTypes' => $this->accountTypes()));
 }