Browse Source

- Adicionado consulta do RPS para a prefeitura de Goiânia/GO.

- Colocado como opcional a tag endereço na geração do rps conforme manual da prefeitura.
pull/292/head
Flavyo Henrique 5 years ago
parent
commit
486d2ad1d9
  1. 26
      pytrustnfe/nfse/goiania/__init__.py
  2. 19
      pytrustnfe/nfse/goiania/templates/ConsultarNfseRps.xml
  3. 2
      pytrustnfe/nfse/goiania/templates/Rps.xml

26
pytrustnfe/nfse/goiania/__init__.py

@ -10,6 +10,9 @@ from pytrustnfe.xml import render_xml, sanitize_response
from .assinatura import Assinatura
NAMESPACE = './/{http://nfse.goiania.go.gov.br/xsd/nfse_gyn_v02.xsd}'
def _render(certificado, method, **kwargs):
path = os.path.join(os.path.dirname(__file__), "templates")
xml_send = render_xml(path, f"{method}.xml", False, **kwargs)
@ -39,16 +42,22 @@ def _send(certificado, method, **kwargs):
return {"send_xml": str(xml_send), "received_xml": str(response), "object": obj}
def xml_gerar_nfse(certificado, **kwargs):
return _render(certificado, "GerarNfse", **kwargs)
def gerar_nfse(certificado, **kwargs):
"""" Gera uma NFSe de saída """
if "xml" not in kwargs:
kwargs["xml"] = xml_gerar_nfse(certificado, **kwargs)
kwargs["xml"] = _render(certificado, "GerarNfse", **kwargs)
return _send(certificado, "GerarNfse", **kwargs)
def consulta_nfse_por_rps(certificado, **kwargs):
""" Consulta os dados de um NFSe já emitida """
if "xml" not in kwargs:
kwargs["xml"] = _render(certificado, "ConsultarNfseRps", **kwargs)
return _send(certificado, "ConsultarNfseRps", **kwargs)
def split_result(xml_received: str):
""" Retorna o código e a mensagem de retorno vindo do webservice """
@ -57,10 +66,9 @@ def split_result(xml_received: str):
if xml is None:
return None, None
ns = './/{http://nfse.goiania.go.gov.br/xsd/nfse_gyn_v02.xsd}'
msg_return = xml.find(f'{ns}MensagemRetorno')
code = msg_return.find(f"{ns}Codigo").text
msg = msg_return.find(f"{ns}Mensagem").text
msg_return = xml.find(f'{NAMESPACE}MensagemRetorno')
code = msg_return.find(f"{NAMESPACE}Codigo").text
msg = msg_return.find(f"{NAMESPACE}Mensagem").text
return code, msg

19
pytrustnfe/nfse/goiania/templates/ConsultarNfseRps.xml

@ -0,0 +1,19 @@
<?xml version="1.0"?>
<ConsultarNfseRpsEnvio xmlns="http://nfse.goiania.go.gov.br/xsd/nfse_gyn_v02.xsd">
<IdentificacaoRps>
<Numero>{{ numero }}</Numero>
<Serie>{{ serie }}</Serie>
<Tipo>{{ tipo }}</Tipo>
</IdentificacaoRps>
<Prestador>
<CpfCnpj>
{% if cnpj_cpf|length == 14 %}
<Cnpj>{{ cnpj_cpf }}</Cnpj>
{% endif %}
{% if cnpj_cpf|length == 11 %}
<Cpf>{{ cnpj_cpf }}</Cpf>
{% endif %}
</CpfCnpj>
<InscricaoMunicipal>{{ inscricao_municipal }}</InscricaoMunicipal>
</Prestador>
</ConsultarNfseRpsEnvio>

2
pytrustnfe/nfse/goiania/templates/Rps.xml

@ -47,6 +47,7 @@
{% endif %}
</IdentificacaoTomador>
<RazaoSocial>{{ tomador.razao_social }}</RazaoSocial>
{% if tomador.endereco %}
<Endereco>
<Endereco>{{ tomador.endereco.rua }}</Endereco>
<Numero>{{ tomador.endereco.numero }}</Numero>
@ -55,6 +56,7 @@
<CodigoMunicipio>{{ tomador.endereco.codigo_municipio }}</CodigoMunicipio>
<Uf>{{ tomador.endereco.uf }}</Uf>
</Endereco>
{% endif %}
</Tomador>
</InfDeclaracaoPrestacaoServico>
</Rps>
Loading…
Cancel
Save