Browse Source

[REF] Corrigido herança de classes (classe Comunicação já era a classe pai, com a divisão entre arquivos e classe, a classe ComunicacaoSefaz deixou de existir)

mdfe
Junior Tada 8 years ago
parent
commit
2e377144d5
  1. 41
      pynfe/processamento/comunicacao.py
  2. 28
      pynfe/processamento/mdfe.py
  3. 4
      pynfe/processamento/nfe.py
  4. 2
      pynfe/processamento/nfse.py

41
pynfe/processamento/comunicacao.py

@ -18,7 +18,7 @@ from .assinatura import AssinaturaA1
class Comunicacao(object): class Comunicacao(object):
""" """
Classe abstrata responsavel por definir os metodos e logica das classes 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 _ambiente = 1 # 1 = Produção, 2 = Homologação
@ -26,17 +26,6 @@ class Comunicacao(object):
certificado = None certificado = None
certificado_senha = None certificado_senha = None
url = 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 _versao = False
_assinatura = AssinaturaA1 _assinatura = AssinaturaA1
_namespace = False _namespace = False
@ -51,29 +40,11 @@ class ComunicacaoSefaz(Comunicacao):
_namespace_xsd = NAMESPACE_XSD _namespace_xsd = NAMESPACE_XSD
_soap_version = 'soap' _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): def _construir_xml_soap(self, metodo, dados):
"""Mota o XML para o envio via SOAP""" """Mota o XML para o envio via SOAP"""

28
pynfe/processamento/mdfe.py

@ -25,7 +25,7 @@ from pynfe.utils.webservices import (
WS_MDFE_RECEPCAO_EVENTO, WS_MDFE_RECEPCAO_EVENTO,
) )
from pynfe.utils import etree, extrai_id_srtxml from pynfe.utils import etree, extrai_id_srtxml
from .comunicacao import ComunicacaoSefaz
from .comunicacao import Comunicacao
from .resposta import analisar_retorno from .resposta import analisar_retorno
from mdfelib.v3_00 import consStatServMDFe from mdfelib.v3_00 import consStatServMDFe
@ -37,7 +37,7 @@ from mdfelib.v3_00 import consReciMDFe
MDFE_SITUACAO_JA_ENVIADO = ('100', '101', '132') MDFE_SITUACAO_JA_ENVIADO = ('100', '101', '132')
class ComunicacaoMDFE(ComunicacaoSefaz):
class ComunicacaoMDFe(Comunicacao):
_modelo = MODELO_MDFE _modelo = MODELO_MDFE
_namespace = NAMESPACE_MDFE _namespace = NAMESPACE_MDFE
@ -63,6 +63,30 @@ class ComunicacaoMDFE(ComunicacaoSefaz):
consulta_servico_ao_enviar = True consulta_servico_ao_enviar = True
maximo_tentativas_consulta_recibo = 5 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): def _post_soap(self, classe, ws_metodo, raiz_xml, str_xml=False):
url, webservice, metodo = self._get_url_webservice_metodo( url, webservice, metodo = self._get_url_webservice_metodo(
ws_metodo ws_metodo

4
pynfe/processamento/nfe.py

@ -17,10 +17,10 @@ from pynfe.utils.flags import (
from pynfe.utils.webservices import NFE, NFCE from pynfe.utils.webservices import NFE, NFCE
from .assinatura import AssinaturaA1 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.""" """Classe de comunicação que segue o padrão definido para as SEFAZ dos Estados."""
_versao = VERSAO_PADRAO _versao = VERSAO_PADRAO

2
pynfe/processamento/nfse.py

@ -12,7 +12,7 @@ from pynfe.entidades.certificado import CertificadoA1
from .comunicacao import Comunicacao 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. """ """ Classe de comunicação que segue o padrão definido para as SEFAZ dos Municípios. """
_versao = '' _versao = ''

Loading…
Cancel
Save