Browse Source

Implantação de consultaNfsePorRps

pull/7/head
Junior Tada 10 years ago
parent
commit
447d0e619a
  1. 22
      pynfe/processamento/comunicacao.py
  2. 22
      pynfe/processamento/serializacao.py

22
pynfe/processamento/comunicacao.py

@ -374,23 +374,16 @@ class ComunicacaoNfse(Comunicacao):
# comunica via wsdl
return self._post2(url, xml, 'gerar')
def consulta_nota(self, autorizador, nota):
def consulta_rps(self, autorizador, xml):
if autorizador.upper() == 'BETHA':
self._namespace = NAMESPACE_BETHA
self._versao = '2.02'
# url do serviço
url = self._get_url(autorizador) + NFSE[autorizador.upper()]['CONSULTA_RPS']
# consulta
raiz = etree.Element('ConsultarNfsePorRps')
# cabecalho
raiz.append(self._cabecalho_soap())
dados = etree.SubElement(raiz, 'nfseDadosMsg')
dados.append(nota)
# xml soap
xml = self._construir_xml(raiz)
retorno = self._post(url, xml)
return retorno
url = self._get_url(autorizador)
# xml
xml = xml.replace('ns1:','').replace(':ns1','').replace('<?xml version="1.0" ?>','')
# comunica via wsdl
return self._post2(url, xml, 'consultaRps')
def cancelar(self, autorizador):
pass
@ -475,8 +468,11 @@ class ComunicacaoNfse(Comunicacao):
# gerar nfse
if metodo == 'gerar':
return cliente.service.GerarNfse(cabecalho, xml)
elif metodo == 'consultaRps':
return cliente.service.ConsultarNfsePorRps(cabecalho, xml)
elif metodo == 'cancelar':
pass
# TODO outros metodos
else:
pass
except Exception as e:

22
pynfe/processamento/serializacao.py

@ -675,8 +675,26 @@ class SerializacaoNfse(Serializacao):
return gnfse.toxml(element_name='GerarNfseEnvio')
def consultar(self, numero):
pass
def consultar(self, nfse):
"""Retorna string de um XML gerado a partir do
XML Schema (XSD). Binding gerado pelo modulo PyXB."""
# Rps
id_rps = nfse_schema.tcIdentificacaoRps()
id_rps.Numero = nfse.identificador
id_rps.Serie = nfse.serie
id_rps.Tipo = nfse.tipo
# Prestador
id_prestador = nfse_schema.tcIdentificacaoPrestador()
id_prestador.CpfCnpj = nfse.emitente.cnpj
id_prestador.InscricaoMunicipal = nfse.emitente.inscricao_municipal
consulta = nfse_schema.ConsultarNfseRpsEnvio()
consulta.IdentificacaoRps = id_rps
consulta.Prestador = id_prestador
return consulta.toxml(element_name='ConsultarNfseRpsEnvio')
def cancelar(self, dados):
pass

Loading…
Cancel
Save