Browse Source

Ajuste no método contrutor da classe ComunicaçãoNfse

pull/7/head
Junior Tada 10 years ago
parent
commit
ad7074c4ed
  1. 48
      pynfe/processamento/comunicacao.py

48
pynfe/processamento/comunicacao.py

@ -387,24 +387,30 @@ class ComunicacaoNfse(Comunicacao):
self.certificado_senha = certificado_senha
self._ambiente = 2 if homologacao else 1
self.autorizador = autorizador.upper()
def autorizacao(self, nota):
if self.autorizador == 'BETHA':
if self.autorizador == 'GINFES':
self._namespace = 'http://www.ginfes.com.br/cabecalho_v03.xsd'
self._versao = '3'
elif self.autorizador == 'BETHA':
self._namespace = NAMESPACE_BETHA
self._versao = '2.02'
else:
raise Exception('Autorizador não encontrado!')
def autorizacao(self, nota):
# url do serviço
url = self._get_url()
if self.autorizador == 'BETHA':
# xml
xml = etree.tostring(nota, encoding='unicode', pretty_print=False)
# comunica via wsdl
return self._post2(url, xml, 'gerar')
else:
raise Exception('Este método só esta implementado no autorizador betha.')
def enviar_lote(self, xml):
# url do serviço
url = self._get_url()
if self.autorizador == 'GINFES':
self._namespace = 'http://www.ginfes.com.br/cabecalho_v03.xsd'
self._versao = '3'
# comunica via wsdl
return self._post_https(url, xml, 'enviar_lote')
else:
@ -414,8 +420,6 @@ class ComunicacaoNfse(Comunicacao):
# url do serviço
url = self._get_url()
if self.autorizador == 'GINFES':
self._namespace = 'http://www.ginfes.com.br/cabecalho_v03.xsd'
self._versao = '3'
# xml
xml = '<?xml version="1.0" encoding="UTF-8"?>' + xml
# comunica via wsdl
@ -424,29 +428,27 @@ class ComunicacaoNfse(Comunicacao):
raise Exception('Este método só esta implementado no autorizador ginfes.')
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()
if self.autorizador == 'BETHA':
# comunica via wsdl
return self._post2(url, xml, 'consultaRps')
else:
raise Exception('Este método só esta implementado no autorizador 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()
if self.autorizador == 'BETHA':
# comunica via wsdl
return self._post2(url, xml, 'consultaFaixa')
else:
raise Exception('Este método só esta implementado no autorizador betha.')
def consultar_lote(self, xml):
# url do serviço
url = self._get_url()
if self.autorizador == 'GINFES':
self._namespace = 'http://www.ginfes.com.br/cabecalho_v03.xsd'
self._versao = '3'
# comunica via wsdl
return self._post_https(url, xml, 'consulta_lote')
else:
@ -456,8 +458,6 @@ class ComunicacaoNfse(Comunicacao):
# url do serviço
url = self._get_url()
if self.autorizador == 'GINFES':
self._namespace = 'http://www.ginfes.com.br/cabecalho_v03.xsd'
self._versao = '3'
# comunica via wsdl
return self._post_https(url, xml, 'consulta_situacao_lote')
else:
@ -468,14 +468,11 @@ class ComunicacaoNfse(Comunicacao):
url = self._get_url()
# Betha
if self.autorizador == 'BETHA':
self._namespace = NAMESPACE_BETHA
self._versao = '2.02'
# comunica via wsdl
return self._post(url, xml, 'cancelar')
# Ginfes
elif self.autorizador == 'GINFES':
self._namespace = 'http://www.ginfes.com.br/cabecalho_v03.xsd'
self._versao = '3'
# comunica via wsdl com certificado
return self._post_https(url, xml, 'cancelar')
# TODO outros autorizadres
else:
@ -515,6 +512,7 @@ class ComunicacaoNfse(Comunicacao):
return self.url
def _post(self, url, xml, metodo):
""" Comunicação wsdl (http) sem certificado digital """
# cabecalho
cabecalho = self._cabecalho()
# comunicacao wsdl
@ -532,14 +530,14 @@ class ComunicacaoNfse(Comunicacao):
return cliente.service.CancelarNfse(cabecalho, xml)
# TODO outros metodos
else:
pass
raise Exception('Método não implementado no autorizador.')
except Exception as e:
raise e
def _post_https(self, url, xml, metodo):
""" Comunicação wsdl (https) utilizando certificado do usuário """
# cabecalho
cabecalho = self._cabecalho()
#cabecalho = self._cabecalho_ginfes()
# comunicacao wsdl
try:
from suds.client import Client
@ -566,10 +564,10 @@ class ComunicacaoNfse(Comunicacao):
elif metodo == 'consultaFaixa':
return cliente.service.ConsultarNfseFaixa(cabecalho, xml)
elif metodo == 'cancelar':
# versão 3
#return cliente.service.CancelarNfseV3(cabecalho, xml)
# versão 2
return cliente.service.CancelarNfse(xml)
# versão 3
#return cliente.service.CancelarNfseV3(cabecalho, xml)
# TODO outros metodos
else:
raise Exception('Método não implementado no autorizador.')

Loading…
Cancel
Save