From 2e377144d5e02e09d4bd10434fd27246faaab70a Mon Sep 17 00:00:00 2001 From: Junior Tada Date: Tue, 5 Jun 2018 14:33:19 -0300 Subject: [PATCH] =?UTF-8?q?[REF]=20Corrigido=20heran=C3=A7a=20de=20classes?= =?UTF-8?q?=20(classe=20Comunica=C3=A7=C3=A3o=20j=C3=A1=20era=20a=20classe?= =?UTF-8?q?=20pai,=20com=20a=20divis=C3=A3o=20entre=20arquivos=20e=20class?= =?UTF-8?q?e,=20a=20classe=20ComunicacaoSefaz=20deixou=20de=20existir)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pynfe/processamento/comunicacao.py | 41 ++++++-------------------------------- pynfe/processamento/mdfe.py | 28 ++++++++++++++++++++++++-- pynfe/processamento/nfe.py | 4 ++-- pynfe/processamento/nfse.py | 2 +- 4 files changed, 35 insertions(+), 40 deletions(-) diff --git a/pynfe/processamento/comunicacao.py b/pynfe/processamento/comunicacao.py index 73f8d41..9044879 100644 --- a/pynfe/processamento/comunicacao.py +++ b/pynfe/processamento/comunicacao.py @@ -18,7 +18,7 @@ from .assinatura import AssinaturaA1 class Comunicacao(object): """ Classe abstrata responsavel por definir os metodos e logica das classes - de comunicação com os webservices da NF-e. + de comunicação com os webservices. """ _ambiente = 1 # 1 = Produção, 2 = Homologação @@ -26,17 +26,6 @@ class Comunicacao(object): certificado = None certificado_senha = None url = None - - def __init__(self, uf, certificado, certificado_senha, homologacao=False): - self.uf = uf - self.certificado = certificado - self.certificado_senha = certificado_senha - self._ambiente = 2 if homologacao else 1 - - -class ComunicacaoSefaz(Comunicacao): - """Classe de comunicação que segue o padrão definido para as SEFAZ dos Estados.""" - _versao = False _assinatura = AssinaturaA1 _namespace = False @@ -51,29 +40,11 @@ class ComunicacaoSefaz(Comunicacao): _namespace_xsd = NAMESPACE_XSD _soap_version = 'soap' - def _cabecalho_soap(self, metodo): - """Monta o XML do cabeçalho da requisição SOAP""" - - raiz = etree.Element( - self._header, - xmlns=self._namespace_metodo + metodo - ) - etree.SubElement(raiz, 'versaoDados').text = '3.00' - # MDFE_WS_METODO[metodo]['versao'] - - etree.SubElement(raiz, 'cUF').text = CODIGOS_ESTADOS[self.uf.upper()] - return raiz - - def _get_url_webservice_metodo(self, ws_metodo): - url = ( - 'https://' + - self._ws_url[self._ambiente]['servidor'] + - '/' + - self._ws_url[self._ambiente][ws_metodo] - ) - webservice = self._ws_metodo[ws_metodo]['webservice'] - metodo = self._ws_metodo[ws_metodo]['metodo'] - return url, webservice, metodo + def __init__(self, uf, certificado, certificado_senha, homologacao=False): + self.uf = uf + self.certificado = certificado + self.certificado_senha = certificado_senha + self._ambiente = 2 if homologacao else 1 def _construir_xml_soap(self, metodo, dados): """Mota o XML para o envio via SOAP""" diff --git a/pynfe/processamento/mdfe.py b/pynfe/processamento/mdfe.py index 3b02396..ab158fd 100644 --- a/pynfe/processamento/mdfe.py +++ b/pynfe/processamento/mdfe.py @@ -25,7 +25,7 @@ from pynfe.utils.webservices import ( WS_MDFE_RECEPCAO_EVENTO, ) from pynfe.utils import etree, extrai_id_srtxml -from .comunicacao import ComunicacaoSefaz +from .comunicacao import Comunicacao from .resposta import analisar_retorno from mdfelib.v3_00 import consStatServMDFe @@ -37,7 +37,7 @@ from mdfelib.v3_00 import consReciMDFe MDFE_SITUACAO_JA_ENVIADO = ('100', '101', '132') -class ComunicacaoMDFE(ComunicacaoSefaz): +class ComunicacaoMDFe(Comunicacao): _modelo = MODELO_MDFE _namespace = NAMESPACE_MDFE @@ -63,6 +63,30 @@ class ComunicacaoMDFE(ComunicacaoSefaz): consulta_servico_ao_enviar = True maximo_tentativas_consulta_recibo = 5 + def _cabecalho_soap(self, metodo): + """Monta o XML do cabeçalho da requisição SOAP""" + + raiz = etree.Element( + self._header, + xmlns=self._namespace_metodo + metodo + ) + etree.SubElement(raiz, 'versaoDados').text = '3.00' + # MDFE_WS_METODO[metodo]['versao'] + + etree.SubElement(raiz, 'cUF').text = CODIGOS_ESTADOS[self.uf.upper()] + return raiz + + def _get_url_webservice_metodo(self, ws_metodo): + url = ( + 'https://' + + self._ws_url[self._ambiente]['servidor'] + + '/' + + self._ws_url[self._ambiente][ws_metodo] + ) + webservice = self._ws_metodo[ws_metodo]['webservice'] + metodo = self._ws_metodo[ws_metodo]['metodo'] + return url, webservice, metodo + def _post_soap(self, classe, ws_metodo, raiz_xml, str_xml=False): url, webservice, metodo = self._get_url_webservice_metodo( ws_metodo diff --git a/pynfe/processamento/nfe.py b/pynfe/processamento/nfe.py index d3f6e76..1d6a472 100644 --- a/pynfe/processamento/nfe.py +++ b/pynfe/processamento/nfe.py @@ -17,10 +17,10 @@ from pynfe.utils.flags import ( from pynfe.utils.webservices import NFE, NFCE from .assinatura import AssinaturaA1 -from .comunicacao import ComunicacaoSefaz +from .comunicacao import Comunicacao -class ComunicacaoNFe(ComunicacaoSefaz): +class ComunicacaoNFe(Comunicacao): """Classe de comunicação que segue o padrão definido para as SEFAZ dos Estados.""" _versao = VERSAO_PADRAO diff --git a/pynfe/processamento/nfse.py b/pynfe/processamento/nfse.py index c5e5fbe..7cc2b42 100644 --- a/pynfe/processamento/nfse.py +++ b/pynfe/processamento/nfse.py @@ -12,7 +12,7 @@ from pynfe.entidades.certificado import CertificadoA1 from .comunicacao import Comunicacao -class ComunicacaoNfse(Comunicacao): +class ComunicacaoNFSe(Comunicacao): """ Classe de comunicação que segue o padrão definido para as SEFAZ dos Municípios. """ _versao = ''