/**
  * Gera uma requisicao de AIDOF
  *
  * @return void
  */
 public function gerarRequisicaoAction()
 {
     $aDados = $this->getRequest()->getParams();
     $oForm = new Contribuinte_Form_RequisicaoRps();
     // Busca Tipos de Nota do Grupo RPS
     $aTiposNota = Contribuinte_Model_Nota::getTiposNota(Contribuinte_Model_Nota::GRUPO_NOTA_RPS);
     // Popula o select com os tipos de nota para poder validar
     if (is_object($oForm->tipo_documento) && is_array($aTiposNota)) {
         $oForm->tipo_documento->addMultiOptions($aTiposNota);
     }
     // Valida o formulario e gera a requisicao
     if ($oForm->isValid($aDados)) {
         $iInscricaoMunicipal = $this->_session->contribuinte->getInscricaoMunicipal();
         $iCgmGrafica = $this->_getParam('cgm_grafica');
         $iTipoDocumento = $this->_getParam('tipo_documento');
         $iQuantidade = $this->_getParam('quantidade');
         // Verifica se possui requisicoes pendentes
         $iQuantidadeRequisicaoPendente = Administrativo_Model_RequisicaoAidof::verificarRequisicaoPendente($iInscricaoMunicipal, $iTipoDocumento, Contribuinte_Model_Nota::GRUPO_NOTA_RPS);
         if ($iQuantidadeRequisicaoPendente > 0) {
             $aRetornoJson['status'] = FALSE;
             $aRetornoJson['error'][] = $this->translate->_('Existem requisições pendentes para este tipo de documento.');
         } else {
             Administrativo_Model_RequisicaoAidof::gerar($iTipoDocumento, $iInscricaoMunicipal, $iCgmGrafica, $iQuantidade);
             $aRetornoJson['status'] = TRUE;
             $aRetornoJson['success'] = $this->translate->_('Requisição de emissão de RPS enviada.');
             $aRetornoJson['reload'] = TRUE;
         }
     } else {
         $aRetornoJson['status'] = FALSE;
         $aRetornoJson['fields'] = array_keys($oForm->getMessages());
         $aRetornoJson['error'][] = $this->translate->_('Preencha os dados corretamente.');
     }
     echo $this->getHelper('json')->sendJson($aRetornoJson);
 }