Browse Source

Melhorias GINFES (#293) - Registrar nota assincronamente, Cancelar nota

* Fix ginfes cities link

* Fix Cnpj in xml CancelarNfseV3 template

* Update CancelarNfseV3.xml

* Update CancelarNfseV3.xml

* Update CancelarNfseV3.xml

* Update CancelarNfseV3.xml

* Update CancelarNfseV3.xml

* Update CancelarNfseV3.xml

* Update CancelarNfseV3.xml

* Update CancelarNfseV3.xml

* Update CancelarNfseV3.xml

* Update CancelarNfseV3.xml

* Update CancelarNfseV3.xml

* Update CancelarNfseV3.xml

* Update CancelarNfseV3.xml

* Update CancelarNfseV3.xml

* Update CancelarNfseV3.xml

* Update CancelarNfseV3.xml

* Update __init__.py

* Update CancelarNfseV3.xml

* Update CancelarNfseV3.xml

* Update CancelarNfseV3.xml

* Update CancelarNfseV3.xml

* Update __init__.py

* Create RecepcionarLoteRpsV3

* Update __init__.py

* Update __init__.py

* Implement xml_consultar_nfse_por_rps

* Fix layout ConsultarNfseRpsEnvio

* Add namespace to xml properties

* Fix name of service in servico_consultar_nfse_rps_envio_v03

* Fix ConsultarNfseV3

* Fix xmlns ConsultarNfseEnvio

* Fix property ConsultarNfseEnvio

* Add PeriodoEmissao to  ConsultarNfseEnvio

* Change number to numero_nfse instead on ConsultarNfseEnvio

* Remove periodo on ConsultarNfse
pull/296/head
ninobaldo 5 years ago
committed by GitHub
parent
commit
922b26b7f4
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 2
      README.md
  2. 26
      pytrustnfe/nfse/ginfes/__init__.py
  3. 25
      pytrustnfe/nfse/ginfes/templates/CancelarNfseV3.xml
  4. 15
      pytrustnfe/nfse/ginfes/templates/ConsultarNfsePorRpsV3.xml
  5. 12
      pytrustnfe/nfse/ginfes/templates/ConsultarNfseV3.xml

2
README.md

@ -23,7 +23,7 @@ NFSe - Cidades atendidas
* **Imperial** - Petrópolis/RH * **Imperial** - Petrópolis/RH
* [Susesu](cidades/susesu.md) - 3 cidades atendidas * [Susesu](cidades/susesu.md) - 3 cidades atendidas
* [Simpliss](cidades/simpliss.md) - 18 cidade atendidas * [Simpliss](cidades/simpliss.md) - 18 cidade atendidas
* [GINFES](cidaes/ginfes.md) - 79 cidades atendidas
* [GINFES](cidades/ginfes.md) - 79 cidades atendidas
* [DSF](cidades/dsf.md) - 7 cidades atendidas * [DSF](cidades/dsf.md) - 7 cidades atendidas
Roadmap Roadmap

26
pytrustnfe/nfse/ginfes/__init__.py

@ -18,8 +18,10 @@ def _render(certificado, method, **kwargs):
xml_send = render_xml(path, "%s.xml" % method, True, **kwargs) xml_send = render_xml(path, "%s.xml" % method, True, **kwargs)
reference = "" reference = ""
if method == "RecepcionarLoteRpsV3":
if method in ("RecepcionarLoteRpsV3", "RecepcionarLoteRpsSincronoV3"):
reference = "rps%s" % kwargs["nfse"]["lista_rps"][0]["numero"] reference = "rps%s" % kwargs["nfse"]["lista_rps"][0]["numero"]
elif method == "CancelarNfseV3":
reference = "C%s" % kwargs["cancelamento"]["numero_nfse"]
signer = Assinatura(certificado.pfx, certificado.password) signer = Assinatura(certificado.pfx, certificado.password)
xml_send = signer.assina_xml(xml_send, reference) xml_send = signer.assina_xml(xml_send, reference)
@ -63,6 +65,16 @@ def recepcionar_lote_rps(certificado, **kwargs):
return _send(certificado, "RecepcionarLoteRpsV3", **kwargs) return _send(certificado, "RecepcionarLoteRpsV3", **kwargs)
def xml_recepcionar_lote_rps_sync(certificado, **kwargs):
return _render(certificado, "RecepcionarLoteRpsSincronoV3", **kwargs)
def recepcionar_lote_rps_sync(certificado, **kwargs):
if "xml" not in kwargs:
kwargs["xml"] = xml_recepcionar_lote_rps(certificado, **kwargs)
return _send(certificado, "RecepcionarLoteRpsSincronoV3", **kwargs)
def xml_consultar_situacao_lote(certificado, **kwargs): def xml_consultar_situacao_lote(certificado, **kwargs):
return _render(certificado, "ConsultarSituacaoLoteRpsV3", **kwargs) return _render(certificado, "ConsultarSituacaoLoteRpsV3", **kwargs)
@ -73,9 +85,14 @@ def consultar_situacao_lote(certificado, **kwargs):
return _send(certificado, "ConsultarSituacaoLoteRpsV3", **kwargs) return _send(certificado, "ConsultarSituacaoLoteRpsV3", **kwargs)
def xml_consultar_nfse_por_rps(certificado, **kwargs):
return _render(certificado, "ConsultarNfsePorRpsV3", **kwargs)
def consultar_nfse_por_rps(certificado, **kwargs): def consultar_nfse_por_rps(certificado, **kwargs):
return _send(certificado, "ConsultarNfsePorRpsV3", **kwargs)
if "xml" not in kwargs:
kwargs["xml"] = xml_consultar_nfse_por_rps(certificado, **kwargs)
return _send(certificado, "ConsultarNfsePorRpsV3", **kwargs)
def xml_consultar_lote_rps(certificado, **kwargs): def xml_consultar_lote_rps(certificado, **kwargs):
return _render(certificado, "ConsultarLoteRpsV3", **kwargs) return _render(certificado, "ConsultarLoteRpsV3", **kwargs)
@ -86,8 +103,13 @@ def consultar_lote_rps(certificado, **kwargs):
kwargs["xml"] = xml_consultar_lote_rps(certificado, **kwargs) kwargs["xml"] = xml_consultar_lote_rps(certificado, **kwargs)
return _send(certificado, "ConsultarLoteRpsV3", **kwargs) return _send(certificado, "ConsultarLoteRpsV3", **kwargs)
def xml_consultar_nfse(certificado, **kwargs):
return _render(certificado, "ConsultarNfseV3", **kwargs)
def consultar_nfse(certificado, **kwargs): def consultar_nfse(certificado, **kwargs):
if "xml" not in kwargs:
kwargs["xml"] = xml_consultar_nfse(certificado, **kwargs)
return _send(certificado, "ConsultarNfseV3", **kwargs) return _send(certificado, "ConsultarNfseV3", **kwargs)

25
pytrustnfe/nfse/ginfes/templates/CancelarNfseV3.xml

@ -1,15 +1,14 @@
<CancelarNfseEnvio xmlns="http://www.betha.com.br/e-nota-contribuinte-ws">
<Pedido>
<InfPedidoCancelamento Id="1">
<IdentificacaoNfse>
<Numero>{{ cancelamento.numero_nfse }}</Numero>
<CpfCnpj>
<Cnpj>{{ cancelamento.cnpj_prestador }}</Cnpj>
</CpfCnpj>
<InscricaoMunicipal>{{ cancelamento.inscricao_municipal }}</InscricaoMunicipal>
<CodigoMunicipio>{{ cancelamento.cidade }}</CodigoMunicipio>
</IdentificacaoNfse>
<CodigoCancelamento>{{ cancelamento.codigo_cancelamento }}</CodigoCancelamento>
</InfPedidoCancelamento>
<CancelarNfseEnvio xmlns="http://www.ginfes.com.br/servico_cancelar_nfse_envio_v03.xsd"
xmlns:tipos="http://www.ginfes.com.br/tipos_v03.xsd">
<Pedido xmlns="">
<tipos:InfPedidoCancelamento Id="C{{ cancelamento.numero_nfse }}">
<tipos:IdentificacaoNfse>
<tipos:Numero>{{ cancelamento.numero_nfse }}</tipos:Numero>
<tipos:Cnpj>{{ cancelamento.cnpj_prestador }}</tipos:Cnpj>
<tipos:InscricaoMunicipal>{{ cancelamento.inscricao_municipal }}</tipos:InscricaoMunicipal>
<tipos:CodigoMunicipio>{{ cancelamento.cidade }}</tipos:CodigoMunicipio>
</tipos:IdentificacaoNfse>
<tipos:CodigoCancelamento>{{ cancelamento.codigo_cancelamento }}</tipos:CodigoCancelamento>
</tipos:InfPedidoCancelamento>
</Pedido> </Pedido>
</CancelarNfseEnvio> </CancelarNfseEnvio>

15
pytrustnfe/nfse/ginfes/templates/ConsultarNfsePorRpsV3.xml

@ -1,13 +1,12 @@
<ConsultarNfseRpsEnvio xmlns="http://www.betha.com.br/e-nota-contribuinte-ws">
<ConsultarNfseRpsEnvio xmlns="http://www.ginfes.com.br/servico_consultar_nfse_rps_envio_v03.xsd"
xmlns:tipos="http://www.ginfes.com.br/tipos_v03.xsd">
<IdentificacaoRps> <IdentificacaoRps>
<Numero>24</Numero>
<Serie>A1</Serie>
<Tipo>1</Tipo>
<tipos:Numero>{{ consulta.numero }}</tipos:Numero>
<tipos:Serie>{{ consulta.serie }}</tipos:Serie>
<tipos:Tipo>{{ consulta.tipo }}</tipos:Tipo>
</IdentificacaoRps> </IdentificacaoRps>
<Prestador> <Prestador>
<CpfCnpj>
<Cnpj>45111111111100</Cnpj>
</CpfCnpj>
<InscricaoMunicipal>123498</InscricaoMunicipal>
<tipos:Cnpj>{{ consulta.cnpj_prestador }}</tipos:Cnpj>
<tipos:InscricaoMunicipal>{{ consulta.inscricao_municipal }}</tipos:InscricaoMunicipal>
</Prestador> </Prestador>
</ConsultarNfseRpsEnvio> </ConsultarNfseRpsEnvio>

12
pytrustnfe/nfse/ginfes/templates/ConsultarNfseV3.xml

@ -1,8 +1,8 @@
<ConsultarLoteRpsEnvio xmlns="http://www.betha.com.br/e-nota-contribuinte-ws">
<ConsultarNfseEnvio xmlns="http://www.ginfes.com.br/servico_consultar_nfse_envio_v03.xsd"
xmlns:tipos="http://www.ginfes.com.br/tipos_v03.xsd">
<Prestador> <Prestador>
<CpfCnpj>
<Cnpj>45111111111100</Cnpj>
</CpfCnpj>
<tipos:Cnpj>{{ consulta.cnpj_prestador }}</tipos:Cnpj>
<tipos:InscricaoMunicipal>{{ consulta.inscricao_municipal }}</tipos:InscricaoMunicipal>
</Prestador> </Prestador>
<Protocolo>141542179222170</Protocolo>
</ConsultarLoteRpsEnvio>
<NumeroNfse>{{ consulta.numero_nfse }}</NumeroNfse>
</ConsultarNfseEnvio>
Loading…
Cancel
Save