コード例 #1
0
 /**
  * Verifica se ja existe uma nota com o numero e se tem AIDOF [Json]
  *
  * @return boolean
  */
 public function emissaoManualSaidaVerificarDocumentoAction()
 {
     parent::noLayout();
     try {
         // Parâmetros request
         $iTipoDocumento = $this->getRequest()->getParam('tipo_documento', NULL);
         $sNumeroNota = $this->getRequest()->getParam('s_nota', NULL);
         $iIdDmsNota = $this->getRequest()->getParam('id', NULL);
         if ($iTipoDocumento) {
             // Verifica a quantidade de Aidof disponivel para o tipo de documento
             $oAidof = new Administrativo_Model_Aidof();
             $iQtdeAidofEmissao = $oAidof->getQuantidadesNotasEmissao($this->oContribuinte->getInscricaoMunicipal(), $iTipoDocumento);
             // Verifica Requisicoes de AIDOF
             if (!$iIdDmsNota && $iQtdeAidofEmissao <= 0) {
                 $sUrlRequisicao = $this->view->serverUrl('/contribuinte/dms/requisicao');
                 $aRetornoJson['status'] = FALSE;
                 $aRetornoJson['error'][] = 'O limite para emissão de notas foi atingido para este tipo de documento, ';
                 $aRetornoJson['error'][] = "<a href='" . $sUrlRequisicao . "'>clique aqui</a> ";
                 $aRetornoJson['error'][] = 'para emitir uma nova requisição.';
                 echo $this->getHelper('json')->sendJson($aRetornoJson);
                 return FALSE;
             }
             // Valida numeracao repetida
             if ($sNumeroNota) {
                 $lNotaEmitida = Contribuinte_Model_DmsNota::checarNotaEmitida($this->oContribuinte, $iTipoDocumento, $sNumeroNota, $iIdDmsNota);
                 if ($lNotaEmitida) {
                     $sMensagemErro = $this->translate->_('Já existe um documento com o número %s.');
                     $aRetornoJson['status'] = FALSE;
                     $aRetornoJson['error'][] = sprintf($sMensagemErro, $sNumeroNota);
                     echo $this->getHelper('json')->sendJson($aRetornoJson);
                     return FALSE;
                 }
                 if (!$oAidof->verificarNumeracaoValidaParaEmissaoDocumento($this->oContribuinte->getInscricaoMunicipal(), $sNumeroNota, $iTipoDocumento)) {
                     $sMensagemErro = 'O número do documento está fora do intervalo permitido nas requisições.';
                     $aRetornoJson['status'] = FALSE;
                     $aRetornoJson['error'][] = $this->translate->_($sMensagemErro);
                     echo $this->getHelper('json')->sendJson($aRetornoJson);
                     return FALSE;
                 }
             }
         }
         return TRUE;
     } catch (Exception $e) {
         $aRetorno['erro'] = TRUE;
         $aRetorno['mensagem'] = $e->getMessage();
         echo $this->getHelper('json')->sendJson($aRetorno);
         return FALSE;
     }
 }