Browse Source

Todas as consultas da NFSe de SP implementadas corretamente.

Ainda por validar EnvioRPS e EnvioLoteRPS em produção mesmo
tags/0.1.5
Danimar Ribeiro 9 years ago
parent
commit
2035f97c79
  1. 29
      pytrustnfe/nfse/paulistana/__init__.py
  2. 33
      pytrustnfe/nfse/paulistana/templates/CancelamentoNFe.xml
  3. 15
      pytrustnfe/nfse/paulistana/templates/ConsultaCNPJ.xml
  4. 8
      pytrustnfe/nfse/paulistana/templates/ConsultaInformacoesLote.xml
  5. 17
      pytrustnfe/nfse/paulistana/templates/ConsultaLote.xml
  6. 38
      pytrustnfe/nfse/paulistana/templates/ConsultaNFe.xml
  7. 21
      pytrustnfe/nfse/paulistana/templates/ConsultaNFeEmitidas.xml
  8. 21
      pytrustnfe/nfse/paulistana/templates/ConsultaNFeRecebidas.xml
  9. 12
      pytrustnfe/nfse/paulistana/templates/soap_header.xml

29
pytrustnfe/nfse/paulistana/__init__.py

@ -14,7 +14,6 @@ from pytrustnfe.certificado import extract_cert_and_key_from_pfx, save_cert_key
from pytrustnfe.nfe.assinatura import Assinatura
def sign_tag(certificado, **kwargs):
pkcs12 = crypto.load_pkcs12(certificado.pfx, certificado.password)
key = pkcs12.get_privatekey()
@ -65,10 +64,12 @@ def envio_rps(certificado, **kwargs):
return _send(certificado, 'EnvioRPS', **kwargs)
# Testado pois usa o mesmo xml que o teste_envio_lote_rps
def envio_lote_rps(certificado, **kwargs):
return _send(certificado, 'EnvioLoteRPS', **kwargs)
# Testado
def teste_envio_lote_rps(certificado, **kwargs):
return _send(certificado, 'TesteEnvioLoteRPS', **kwargs)
@ -77,25 +78,31 @@ def cancelamento_nfe(certificado, **kwargs):
return _send(certificado, 'CancelamentoNFe', **kwargs)
# Testado
def consulta_nfe(certificado, **kwargs):
return _send('ConsultaNFe', **kwargs)
return _send(certificado, 'ConsultaNFe', **kwargs)
# Testado
def consulta_nfe_recebidas(certificado, **kwargs):
return _send('ConsultaNFeRecebidas', **kwargs)
return _send(certificado, 'ConsultaNFeRecebidas', **kwargs)
def consulta_nfe_emitidas(data=None):
return _send('ConsultaNFeEmitidas', data)
# Testado
def consulta_nfe_emitidas(certificado, **kwargs):
return _send(certificado, 'ConsultaNFeEmitidas', **kwargs)
def consulta_lote(data=None):
return _send('ConsultaLote', data)
# Testado
def consulta_lote(certificado, **kwargs):
return _send(certificado, 'ConsultaLote', **kwargs)
def consulta_informacoes_lote(data=None):
return _send('ConsultaInformacoesLote', data)
# Testado
def consulta_informacoes_lote(certificado, **kwargs):
return _send(certificado, 'ConsultaInformacoesLote', **kwargs)
def consulta_cnpj(data=None):
return _send('ConsultaCNPJ', data)
# Testado
def consulta_cnpj(certificado, **kwargs):
return _send(certificado, 'ConsultaCNPJ', **kwargs)

33
pytrustnfe/nfse/paulistana/templates/CancelamentoNFe.xml

@ -1,18 +1,15 @@
<ns1:ReqCancelamentoNFSe xmlns:ns1="http://localhost:8080/WsNFe2/lote"
xmlns:tipos="http://localhost:8080/WsNFe2/tp" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://localhost:8080/WsNFe2/lote http://localhost:8080/WsNFe2/xsd/ReqCancelamentoNFSe.xsd">
<Cabecalho>
<CodCidade>{{ cancelamento.cidade }}</CodCidade>
<CPFCNPJRemetente>{{ cancelamento.cpf_cnpj }}</CPFCNPJRemetente>
<transacao>{{ cancelamento.transacao }}</transacao>
<Versao>1</Versao>
</Cabecalho>
<Lote Id="lote:{{ cancelamento.lote }}">
<Nota Id="nota:{{ cancelamento.nota_id }}">
<InscricaoMunicipalPrestador>{{ cancelamento.inscricao_municipal }}</InscricaoMunicipalPrestador>
<NumeroNota>{{ cancelamento.nota_id }}</NumeroNota>
<CodigoVerificacao>{{ cancelamento.assinatura }}</CodigoVerificacao>
<MotivoCancelamento>{{ cancelamento.motivo }}</MotivoCancelamento>
</Nota>
</Lote>
</ns1:ReqCancelamentoNFSe>
<PedidoCancelamentoNFe
xmlns="http://www.prefeitura.sp.gov.br/nfe">
<Cabecalho Versao="1" xmlns="">
<CPFCNPJRemetente><CNPJ>{{ cancelamento.cpf_cnpj }}</CNPJ></CPFCNPJRemetente>
<transacao>1</transacao>
</Cabecalho>
<Detalhe xmlns="">
<ChaveNFe>
<InscricaoPrestador>{{ cancelamento.inscricao_municipal }}</InscricaoPrestador>
<NumeroNFe>{{ cancelamento.numero_nfse }}</NumeroNFe>
<CodigoVerificacao>{{ cancelamento.codigo_verificacao }}</CodigoVerificacao>
</ChaveNFe>
<AssinaturaCancelamento>{{ cancelamento.assinatura }}</AssinaturaCancelamento>
</Detalhe>
</PedidoCancelamentoNFe>

15
pytrustnfe/nfse/paulistana/templates/ConsultaCNPJ.xml

@ -1,12 +1,11 @@
<p1:PedidoConsultaCNPJ
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p1="http://www.prefeitura.sp.gov.br/nfe">
<Cabecalho Versao="1">
<PedidoConsultaCNPJ
xmlns="http://www.prefeitura.sp.gov.br/nfe">
<Cabecalho Versao="1" xmlns="">
<CPFCNPJRemetente>
<CNPJ>{{ nfse.cpf_cnpj }}</CNPJ>
<CNPJ>{{ consulta.cnpj_remetente }}</CNPJ>
</CPFCNPJRemetente>
</Cabecalho>
<CNPJContribuinte>
<CNPJ>08944335000170</CNPJ>
<CNPJContribuinte xmlns="">
<CNPJ>{{ consulta.cnpj_contribuinte }}</CNPJ>
</CNPJContribuinte>
</p1:PedidoConsultaCNPJ>
</PedidoConsultaCNPJ>

8
pytrustnfe/nfse/paulistana/templates/ConsultaInformacoesLote.xml

@ -0,0 +1,8 @@
<PedidoInformacoesLote
xmlns="http://www.prefeitura.sp.gov.br/nfe">
<Cabecalho Versao="1" xmlns="">
<CPFCNPJRemetente><CNPJ>{{ consulta.cnpj_remetente }}</CNPJ></CPFCNPJRemetente>
<NumeroLote>{{ consulta.lote }}</NumeroLote>
<InscricaoPrestador>{{ consulta.inscricao_municipal }}</InscricaoPrestador>
</Cabecalho>
</PedidoInformacoesLote>

17
pytrustnfe/nfse/paulistana/templates/ConsultaLote.xml

@ -1,10 +1,7 @@
<ns1:ReqConsultaLote xmlns:ns1="http://localhost:8080/WsNFe2/lote"
xmlns:tipos="http://localhost:8080/WsNFe2/tp" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://localhost:8080/WsNFe2/lote http://localhost:8080/WsNFe2/xsd/ReqConsultaLote.xsd">
<Cabecalho>
<CodCidade>{{ consulta.cidade }}</CodCidade>
<CPFCNPJRemetente>{{ consulta.cpf_cnpj }}</CPFCNPJRemetente>
<Versao>1</Versao>
<NumeroLote>{{ consulta.lote }}</NumeroLote>
</Cabecalho>
</ns1:ReqConsultaLote>
<PedidoConsultaLote
xmlns="http://www.prefeitura.sp.gov.br/nfe">
<Cabecalho Versao="1" xmlns="">
<CPFCNPJRemetente><CNPJ>{{ consulta.cnpj_remetente }}</CNPJ></CPFCNPJRemetente>
<NumeroLote>{{ consulta.lote }}</NumeroLote>
</Cabecalho>
</PedidoConsultaLote>

38
pytrustnfe/nfse/paulistana/templates/ConsultaNFe.xml

@ -1,19 +1,21 @@
<ns1:ReqConsultaNFSeRPS xmlns:ns1="http://localhost:8080/WsNFe2/lote"
xmlns:tipos="http://localhost:8080/WsNFe2/tp" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://localhost:8080/WsNFe2/lote http://localhost:8080/WsNFe2/xsd/ReqConsultaNFSeRPS.xsd">
<Cabecalho>
<CodCidade>{{ consulta.cidade }}</CodCidade>
<CPFCNPJRemetente>{{ consulta.cpf_cnpj }}</CPFCNPJRemetente>
<transacao>{{ consulta.transacao }}</transacao>
<Versao>1</Versao>
<PedidoConsultaNFe xmlns="http://www.prefeitura.sp.gov.br/nfe">
<Cabecalho Versao="1" xmlns="">
<CPFCNPJRemetente><CNPJ>{{ consulta.cnpj_remetente }}</CNPJ></CPFCNPJRemetente>
</Cabecalho>
<Lote Id="lote:{{ consulta.lote }}">
<RPSConsulta>
<RPS Id="rps:{{ consulta.rps_id }}">
<InscricaoMunicipalPrestador>{{ consulta.inscricao_municipal }}</InscricaoMunicipalPrestador>
<NumeroRPS>{{ consulta.rps_id }}</NumeroRPS>
<SeriePrestacao>{{ consulta.serie_prestacao }}</SeriePrestacao>
</RPS>
</RPSConsulta>
</Lote>
</ns1:ReqConsultaNFSeRPS>
<Detalhe xmlns="">
{% if consulta.numero_rps -%}
<ChaveRPS>
<InscricaoPrestador>{{ consulta.inscricao_municipal }}</InscricaoPrestador>
<SerieRPS>{{ consulta.serie_rps }}</SerieRPS>
<NumeroRPS>{{ consulta.numero_rps }}</NumeroRPS>
</ChaveRPS>
{% endif %}
{% if consulta.numero_nfse -%}
<ChaveNFe>
<InscricaoPrestador>{{ consulta.inscricao_municipal }}</InscricaoPrestador>
<NumeroNFe>{{ consulta.numero_nfse }}</NumeroNFe>
<CodigoVerificacao>{{ consulta.codigo_verificacao }}</CodigoVerificacao>
</ChaveNFe>
{% endif %}
</Detalhe>
</PedidoConsultaNFe>

21
pytrustnfe/nfse/paulistana/templates/ConsultaNFeEmitidas.xml

@ -0,0 +1,21 @@
<PedidoConsultaNFePeriodo xmlns="http://www.prefeitura.sp.gov.br/nfe">
<Cabecalho Versao="1" xmlns="">
<CPFCNPJRemetente><CNPJ>{{ consulta.cnpj_remetente }}</CNPJ></CPFCNPJRemetente>
{% if consulta.cnpj_cpf -%}
<CPFCNPJ>
{% if consulta.cnpj_cpf|length == 14 -%}
<CNPJ>{{ consulta.cnpj_cpf }}</CNPJ>
{% endif %}
{% if consulta.cnpj_cpf|length == 11 -%}
<CPF>{{ consulta.cnpj_cpf }}</CPF>
{% endif %}
</CPFCNPJ>
{% endif %}
{% if consulta.inscricao_municipal -%}
<Inscricao>{{ consulta.inscricao_municipal }}</Inscricao>
{% endif %}
<dtInicio>{{ consulta.data_inicio }}</dtInicio>
<dtFim>{{ consulta.data_fim }}</dtFim>
<NumeroPagina>{{ consulta.numero_pagina }}</NumeroPagina>
</Cabecalho>
</PedidoConsultaNFePeriodo>

21
pytrustnfe/nfse/paulistana/templates/ConsultaNFeRecebidas.xml

@ -0,0 +1,21 @@
<PedidoConsultaNFePeriodo xmlns="http://www.prefeitura.sp.gov.br/nfe">
<Cabecalho Versao="1" xmlns="">
<CPFCNPJRemetente><CNPJ>{{ consulta.cnpj_remetente }}</CNPJ></CPFCNPJRemetente>
{% if consulta.cnpj_cpf -%}
<CPFCNPJ>
{% if consulta.cnpj_cpf|length == 14 -%}
<CNPJ>{{ consulta.cnpj_cpf }}</CNPJ>
{% endif %}
{% if consulta.cnpj_cpf|length == 11 -%}
<CPF>{{ consulta.cnpj_cpf }}</CPF>
{% endif %}
</CPFCNPJ>
{% endif %}
{% if consulta.inscricao_municipal -%}
<Inscricao>{{ consulta.inscricao_municipal }}</Inscricao>
{% endif %}
<dtInicio>{{ consulta.data_inicio }}</dtInicio>
<dtFim>{{ consulta.data_fim }}</dtFim>
<NumeroPagina>{{ consulta.numero_pagina }}</NumeroPagina>
</Cabecalho>
</PedidoConsultaNFePeriodo>

12
pytrustnfe/nfse/paulistana/templates/soap_header.xml

@ -1,12 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:dsf="http://dsfnet.com.br">
<soapenv:Body>
<dsf:enviar soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<mensagemXml xsi:type="xsd:string"><![CDATA[
{% block content %}{% endblock %}
]]></mensagemXml>
</dsf:enviar>
</soapenv:Body>
</soapenv:Envelope>
Loading…
Cancel
Save