/** * Método que retorna a quantidade de Notas Emitidas * * @param integer $iInscricaoMunicipal * @param integer $iTipoNota * @param string $sGrupoNota * @throws Exception * @return integer */ public function getQuantidadesNotasEmissao($iInscricaoMunicipal, $iTipoNota = NULL, $sGrupoNota = NULL) { if (!$iInscricaoMunicipal) { throw new Zend_Exception('Informe uma Inscrição Municipal.'); } if (!$iTipoNota && !$sGrupoNota) { throw new Zend_Exception('Informe o Tipo de Nota ou Grupo de Nota.'); } if ($iTipoNota) { $oWebService = new WebService_Model_Ecidade(); $aFiltro = array('inscricao_municipal' => $iInscricaoMunicipal, 'tipo_nota' => $iTipoNota); $aCampos = array('quantidade_notas_liberadas'); $aRetorno = $oWebService::consultar('getQuantidadeNotasLiberadas', array($aFiltro, $aCampos)); } else { $oWebService = new WebService_Model_Ecidade(); $aFiltro = array('inscricao_municipal' => $iInscricaoMunicipal, 'grupo_nota' => $sGrupoNota); $aCampos = array('quantidade_notas_liberadas'); $aRetorno = $oWebService::consultar('getQuantidadeAidofsLiberadasPorGrupoDocumento', array($aFiltro, $aCampos)); } if (is_array($aRetorno)) { $iQuantidadeNotasEmitidas = Contribuinte_Model_DmsNota::getQuantidadeNotasEmitidas($iInscricaoMunicipal, $iTipoNota); return $aRetorno[0]->quantidade_notas_liberadas - $iQuantidadeNotasEmitidas; } DBSeller_Plugin_Notificacao::addAviso('Aidof01', "Não houve retorno do WebService do E-Cidade!"); return 0; }
/** * Exclui Nota da DMS [Json] */ public function emissaoManualListaNotasExcluirAction() { $aRetornoJson['status'] = FALSE; $iIdDmsNota = $this->getRequest()->getParam('id_dms_nota', NULL); if (!$iIdDmsNota) { $aRetornoJson['error'] = $this->translate->_('Identificador inválido!'); } else { try { $oDmsNota = Contribuinte_Model_DmsNota::getById($iIdDmsNota); $oDmsNota->destroy(); $aRetornoJson['status'] = TRUE; $aRetornoJson['success'] = $this->translate->_('Documento excluído com sucesso!'); } catch (Exception $oErro) { $aRetornoJson['error'] = sprintf($this->translate->_('Erro ao excluir o documento: %s'), $oErro->getMessage()); } } echo $this->getHelper('json')->sendJson($aRetornoJson); }
/** * Metodo responsavel por criar as guias dms do prestador * * @param Contribuinte_Model_Dms $oDms * @param $sDataPagamento * @return StdClass */ public static function gerarGuiaDmsPrestador(Contribuinte_Model_Dms $oDms, $sDataPagamento) { try { $oDoctrine = Zend_Registry::get('em'); $oDoctrine->getConnection()->beginTransaction(); $aNotas = array(); foreach ($oDms->getDmsNotas() as $oDadosNota) { $oNota = new Contribuinte_Model_DmsNota($oDadosNota); // Ignora notas prestadas e retidas pelo tomador if ($oDms->getOperacao() == 's' && $oNota->getServicoImpostoRetido() == TRUE) { continue; } // Ignora notas tomadas e retidas pelo tomador if ($oDms->getOperacao() == 'e' && $oNota->getServicoImpostoRetido() == FALSE) { continue; } // Ignora notas anuladas, extraviadas ou canceladas if ($oNota->getStatus() == 5 || in_array($oNota->getSituacaoDocumento(), array('E', 'C'))) { continue; } // Ignora notas isentas if ($oNota->getEmiteGuia() == FALSE) { continue; } // Ignora notas com aliquota ou servico zerados if (floatval($oNota->getServicoAliquota()) <= 0) { continue; } else { if (floatval($oNota->getServicoValorImposto()) <= 0) { continue; } } $aNotas[$oNota->getId()] = $oNota; } $iMesCompetencia = $oDms->getMesCompetencia(); $iAnoCompetencia = $oDms->getAnoCompetencia(); $oUsuarioContribuinte = Administrativo_Model_UsuarioContribuinte::getById($oDms->getIdContribuinte()); $oContribuinte = Administrativo_Model_UsuarioContribuinte::getContribuinte($oDms->getIdContribuinte()); // Salva guia antes de ser gerada no e-cidade $oGuia = new Contribuinte_Model_Guia(); $sDataPagamentoGuia = DBSeller_Helper_Date_Date::invertDate($sDataPagamento); $oGuia->gerarGuiaDmsPrestador($oContribuinte, new DateTime($sDataPagamentoGuia), $iMesCompetencia, $iAnoCompetencia); // Envia Guia para o e-cidade $oGuiaGerar = self::montaDadosGuia($oUsuarioContribuinte, $iAnoCompetencia, $iMesCompetencia, $aNotas, $sDataPagamento, $oGuia->getId()); $oGuiaGerada = self::gerarGuia($oGuiaGerar, $sDataPagamento, self::TIPO_DEBITO_RETIDO); $oDms->setCodigoPlanilha($oGuiaGerada->codigo_planilha); $oDms->setStatus('emitida'); $aDadosNotas = $oGuiaGerar->notas; $aDadosNotas += $oGuiaGerada->notas; foreach ($aDadosNotas as $oNotaProcessada) { $oNota = $aNotas[$oNotaProcessada->codigo_documento]; $oNota->setCodigoNotaPlanilha($oNotaProcessada->codigo_nota_planilha); $oNota->setNumpre($oGuiaGerada->debito_planilha); } $oDms->persist(); $oGuia->complementaGuiaDmsPrestador($oGuiaGerada->debito, $oDms); $oGuiaGerada->arquivo_guia = self::salvarPdf($oGuiaGerada->debito->dados_boleto->arquivo_guia, 'guia_substituto'); $oDoctrine->getConnection()->commit(); return $oGuiaGerada; } catch (Exception $oError) { $oDoctrine->getConnection()->rollback(); return $oError->getMessage(); } }