From 493909378b988d6591024a9e7b9c7fe7bde9a3fe Mon Sep 17 00:00:00 2001 From: Leonardo Tada Date: Tue, 29 Dec 2015 15:38:04 -0200 Subject: [PATCH] =?UTF-8?q?refatora=C3=A7=C3=A3o=20em=20comunica=C3=A7?= =?UTF-8?q?=C3=A3o=20nfse?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pynfe/processamento/autorizador_nfse.py | 4 +-- pynfe/processamento/comunicacao.py | 63 +++++++++++++++++---------------- 2 files changed, 34 insertions(+), 33 deletions(-) diff --git a/pynfe/processamento/autorizador_nfse.py b/pynfe/processamento/autorizador_nfse.py index 2ac365a..6fbe97c 100644 --- a/pynfe/processamento/autorizador_nfse.py +++ b/pynfe/processamento/autorizador_nfse.py @@ -303,7 +303,7 @@ class SerializacaoGinfes(InterfaceAutorizador): consulta = servico_consultar_lote_rps_envio_v03.ConsultarLoteRpsEnvio() consulta.Prestador = id_prestador - consulta.Protocolo = numero + consulta.Protocolo = str(numero) return consulta.toxml(element_name='ns1:ConsultarLoteRps') @@ -315,7 +315,7 @@ class SerializacaoGinfes(InterfaceAutorizador): consulta = servico_consultar_situacao_lote_rps_envio_v03.ConsultarSituacaoLoteRpsEnvio() consulta.Prestador = id_prestador - consulta.Protocolo = numero + consulta.Protocolo = str(numero) return consulta.toxml(element_name='ns1:ConsultarSituacaoLoteRps') diff --git a/pynfe/processamento/comunicacao.py b/pynfe/processamento/comunicacao.py index 19780d8..9549360 100644 --- a/pynfe/processamento/comunicacao.py +++ b/pynfe/processamento/comunicacao.py @@ -382,26 +382,27 @@ class ComunicacaoNfse(Comunicacao): _versao = '' _namespace = '' - def __init__(self, certificado, certificado_senha, homologacao=False): + def __init__(self, certificado, certificado_senha, autorizador, homologacao=False): self.certificado = certificado self.certificado_senha = certificado_senha self._ambiente = 2 if homologacao else 1 + self.autorizador = autorizador.upper() - def autorizacao(self, autorizador, nota): - if autorizador.upper() == 'BETHA': + def autorizacao(self, nota): + if self.autorizador == 'BETHA': self._namespace = NAMESPACE_BETHA self._versao = '2.02' # url do serviço - url = self._get_url(autorizador) + url = self._get_url() # xml xml = etree.tostring(nota, encoding='unicode', pretty_print=False) # comunica via wsdl return self._post2(url, xml, 'gerar') - def enviar_lote(self, autorizador, xml): + def enviar_lote(self, xml): # url do serviço - url = self._get_url(autorizador) - if autorizador.upper() == 'GINFES': + url = self._get_url() + if self.autorizador == 'GINFES': self._namespace = 'http://www.ginfes.com.br/cabecalho_v03.xsd' self._versao = '3' # comunica via wsdl @@ -409,10 +410,10 @@ class ComunicacaoNfse(Comunicacao): else: raise Exception('Este método só esta implementado no autorizador ginfes.') - def consulta(self, autorizador, xml): + def consultar(self, xml): # url do serviço - url = self._get_url(autorizador) - if autorizador.upper() == 'GINFES': + url = self._get_url() + if self.autorizador == 'GINFES': self._namespace = 'http://www.ginfes.com.br/cabecalho_v03.xsd' self._versao = '3' # xml @@ -422,28 +423,28 @@ class ComunicacaoNfse(Comunicacao): else: raise Exception('Este método só esta implementado no autorizador ginfes.') - def consulta_rps(self, autorizador, xml): - if autorizador.upper() == 'BETHA': + def consultar_rps(self, xml): + if self.autorizador == 'BETHA': self._namespace = NAMESPACE_BETHA self._versao = '2.02' # url do serviço - url = self._get_url(autorizador) + url = self._get_url() # comunica via wsdl return self._post2(url, xml, 'consultaRps') - def consulta_faixa(self, autorizador, xml): - if autorizador.upper() == 'BETHA': + def consultar_faixa(self, xml): + if self.autorizador == 'BETHA': self._namespace = NAMESPACE_BETHA self._versao = '2.02' # url do serviço - url = self._get_url(autorizador) + url = self._get_url() # comunica via wsdl return self._post2(url, xml, 'consultaFaixa') - def consulta_lote(self, autorizador, xml): + def consultar_lote(self, xml): # url do serviço - url = self._get_url(autorizador) - if autorizador.upper() == 'GINFES': + url = self._get_url() + if self.autorizador == 'GINFES': self._namespace = 'http://www.ginfes.com.br/cabecalho_v03.xsd' self._versao = '3' # comunica via wsdl @@ -451,10 +452,10 @@ class ComunicacaoNfse(Comunicacao): else: raise Exception('Este método só esta implementado no autorizador ginfes.') - def consulta_situacao_lote(self, autorizador, xml): + def consultar_situacao_lote(self, xml): # url do serviço - url = self._get_url(autorizador) - if autorizador.upper() == 'GINFES': + url = self._get_url() + if self.autorizador == 'GINFES': self._namespace = 'http://www.ginfes.com.br/cabecalho_v03.xsd' self._versao = '3' # comunica via wsdl @@ -462,24 +463,24 @@ class ComunicacaoNfse(Comunicacao): else: raise Exception('Este método só esta implementado no autorizador ginfes.') - def cancelar(self, autorizador, xml): + def cancelar(self, xml): # url do serviço - url = self._get_url(autorizador) + url = self._get_url() # Betha - if autorizador.upper() == 'BETHA': + if self.autorizador == 'BETHA': self._namespace = NAMESPACE_BETHA self._versao = '2.02' # comunica via wsdl return self._post(url, xml, 'cancelar') # Ginfes - elif autorizador.upper() == 'GINFES': + elif self.autorizador == 'GINFES': self._namespace = 'http://www.ginfes.com.br/cabecalho_v03.xsd' self._versao = '3' return self._post_https(url, xml, 'cancelar') # TODO outros autorizadres else: raise Exception('Autorizador não encontrado!') - + def _cabecalho(self, retorna_string=True): u"""Monta o XML do cabeçalho da requisição wsdl""" @@ -501,14 +502,14 @@ class ComunicacaoNfse(Comunicacao): from pynfe.processamento.autorizador_nfse import SerializacaoGinfes return SerializacaoGinfes().cabecalho() - def _get_url(self, autorizador): + def _get_url(self): """ Retorna a url para comunicação com o webservice """ if self._ambiente == 1: ambiente = 'HTTPS' else: ambiente = 'HOMOLOGACAO' - if autorizador.upper() in NFSE: - self.url = NFSE[autorizador.upper()][ambiente] + if self.autorizador in NFSE: + self.url = NFSE[self.autorizador][ambiente] else: raise Exception('Autorizador nao encontrado!') return self.url @@ -571,6 +572,6 @@ class ComunicacaoNfse(Comunicacao): return cliente.service.CancelarNfse(xml) # TODO outros metodos else: - pass + raise Exception('Método não implementado no autorizador.') except Exception as e: raise e