/** * Método que retorna as quantidades de notas pendentes do contribuinte * * @params integer $iInscricaoMunicipal * @params integer $iTipoNota * @params string $sGrupoNota * @return integer $iQuantidadeNotasEmissao */ public static function getQuantidadeNotasPendentes($iInscricaoMunicipal, $iTipoNota = NULL, $sGrupoNota = NULL) { $iQuantidadeNotas = Contribuinte_Model_Nota::getNotasEmitidas($iInscricaoMunicipal, 7); $iQuantidadeNotasLiberadas = Administrativo_Model_Aidof::getQuantidadesNotasEmissao($iInscricaoMunicipal, $iTipoNota, $sGrupoNota); $iQuantidadeNotasEmissao = $iQuantidadeNotasLiberadas - $iQuantidadeNotas; $iQuantidadeNotasEmissao = $iQuantidadeNotasEmissao > 0 ? $iQuantidadeNotasEmissao : 0; return $iQuantidadeNotasEmissao; }
/** * Popula o combo tipo_documento com dados do e-Cidade * * @param integer|null $iTipoDocumento * @return $this */ public function setTipoDocumento($iTipoDocumento = NULL) { $iInscricaoMunicipal = $this->oContribuinte->getInscricaoMunicipal(); $aTiposDocumentos = array(); $aTiposDocumentosLiberados = Administrativo_Model_RequisicaoAidof::getRequisicoesAidof($iInscricaoMunicipal); // Lista tipos de documentos liberados if (count($aTiposDocumentosLiberados) > 0) { foreach ($aTiposDocumentosLiberados as $oTiposDocumentos) { $iCodigoNota = $oTiposDocumentos->codigo_nota; $oAidof = new Administrativo_Model_Aidof(); $iNotasEmissao = $oAidof->getQuantidadesNotasEmissao($iInscricaoMunicipal, $iCodigoNota); if (empty($iTipoDocumento) && $iNotasEmissao <= 0) { continue; } $sDescricaoNota = DBSeller_Helper_String_Format::wordsCap($oTiposDocumentos->descricao_nota); $aTiposDocumentos[$oTiposDocumentos->codigo_nota] = $sDescricaoNota; } } $this->getElement('tipo_documento')->addMultiOptions($aTiposDocumentos)->setValue($iTipoDocumento); return $this; }
/** * 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; } }