13 changed files with 275 additions and 47 deletions
-
15pytrustnfe/certificado.py
-
31pytrustnfe/client.py
-
49pytrustnfe/nfse/paulistana/__init__.py
-
18pytrustnfe/nfse/paulistana/templates/cancelamento.xml
-
12pytrustnfe/nfse/paulistana/templates/consulta_cnpj.xml
-
10pytrustnfe/nfse/paulistana/templates/consulta_lote.xml
-
19pytrustnfe/nfse/paulistana/templates/consulta_nfse_por_rps.xml
-
54pytrustnfe/nfse/paulistana/templates/envio_lote_rps.xml
-
51pytrustnfe/nfse/paulistana/templates/envio_rps.xml
-
12pytrustnfe/nfse/paulistana/templates/soap_header.xml
-
6pytrustnfe/xml/__init__.py
-
3setup.py
@ -0,0 +1,31 @@ |
|||
|
|||
import requests |
|||
import suds.client |
|||
import suds_requests |
|||
|
|||
|
|||
def get_authenticated_client(base_url, key_p, cert): |
|||
cache_location = '/tmp/suds' |
|||
cache = suds.cache.DocumentCache(location=cache_location) |
|||
|
|||
session = requests.Session() |
|||
session.cert = (cert, key) |
|||
|
|||
return suds.client.Client( |
|||
base_url, |
|||
cache=cache, |
|||
transport=suds_requests.RequestsTransport(session) |
|||
) |
|||
|
|||
|
|||
def get_client(base_url): |
|||
cache_location = '/tmp/suds' |
|||
cache = suds.cache.DocumentCache(location=cache_location) |
|||
|
|||
session = requests.Session() |
|||
|
|||
return suds.client.Client( |
|||
base_url, |
|||
cache=cache, |
|||
transport=suds_requests.RequestsTransport(session) |
|||
) |
|||
@ -0,0 +1,18 @@ |
|||
<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> |
|||
@ -0,0 +1,12 @@ |
|||
<p1:PedidoConsultaCNPJ |
|||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |
|||
xmlns:p1="http://www.prefeitura.sp.gov.br/nfe"> |
|||
<Cabecalho Versao="1"> |
|||
<CPFCNPJRemetente> |
|||
<CNPJ>{{ nfse.cpf_cnpj }}</CNPJ> |
|||
</CPFCNPJRemetente> |
|||
</Cabecalho> |
|||
<CNPJContribuinte> |
|||
<CNPJ>08944335000170</CNPJ> |
|||
</CNPJContribuinte> |
|||
</p1:PedidoConsultaCNPJ> |
|||
@ -0,0 +1,10 @@ |
|||
<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> |
|||
@ -0,0 +1,19 @@ |
|||
<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> |
|||
</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> |
|||
@ -0,0 +1,54 @@ |
|||
<PedidoEnvioLoteRPS |
|||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |
|||
xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.prefeitura.sp.gov.br/nfe"> |
|||
<Cabecalho Versao="1" xmlns=""> |
|||
<CPFCNPJRemetente> |
|||
<CNPJ>{{ nfse.cpf_cnpj }}</CNPJ> |
|||
</CPFCNPJRemetente> |
|||
<transacao>false</transacao> |
|||
<dtInicio>2016-02-08</dtInicio> |
|||
<dtFim>2016-02-08</dtFim> |
|||
<QtdRPS>1</QtdRPS> |
|||
<ValorTotalServicos>{{ nfse.total_servicos }}</ValorTotalServicos> |
|||
<ValorTotalDeducoes>{{ nfse.total_deducoes }}</ValorTotalDeducoes> |
|||
</Cabecalho> |
|||
{% for rps in nfse.lista_rps -%} |
|||
<RPS xmlns=""> |
|||
<Assinatura>{{ rps.assinatura }}</Assinatura> |
|||
<ChaveRPS> |
|||
<InscricaoPrestador>{{ rps.prestador.inscricao_municipal }}</InscricaoPrestador> |
|||
<SerieRPS>{{ rps.serie }}</SerieRPS> |
|||
<NumeroRPS>{{ rps.numero }}</NumeroRPS> |
|||
</ChaveRPS> |
|||
<TipoRPS>RPS</TipoRPS> |
|||
<DataEmissao>{{ rps.data_emissao }}</DataEmissao> |
|||
<StatusRPS>N</StatusRPS> |
|||
<TributacaoRPS>T</TributacaoRPS> |
|||
<ValorServicos>1000</ValorServicos> |
|||
<ValorDeducoes>100</ValorDeducoes> |
|||
<CodigoServico>{{ rps.codigo_atividade }}</CodigoServico> |
|||
<AliquotaServicos>{{ rps.aliquota_atividade }}</AliquotaServicos> |
|||
<ISSRetido>false</ISSRetido> |
|||
<CPFCNPJTomador> |
|||
{% if rps.tomador.tipo_cpfcnpj == 1 -%} |
|||
<CPF>{{ rps.tomador.cpf_cnpj }}</CPF> |
|||
{% endif %} |
|||
{% if rps.tomador.tipo_cpfcnpj == 2 -%} |
|||
<CNPJ>{{ rps.tomador.cpf_cnpj }}</CNPJ> |
|||
{% endif %} |
|||
</CPFCNPJTomador> |
|||
<RazaoSocialTomador>{{ rps.tomador.razao_social }}</RazaoSocialTomador> |
|||
<EnderecoTomador> |
|||
<TipoLogradouro>{{ rps.tomador.tipo_logradouro }}</TipoLogradouro> |
|||
<Logradouro>{{ rps.tomador.logradouro }}</Logradouro> |
|||
<NumeroEndereco>{{ rps.tomador.numero }}</NumeroEndereco> |
|||
<ComplementoEndereco>{{ rps.tomador.complemento }}</ComplementoEndereco> |
|||
<Bairro>{{ rps.tomador.bairro }}</Bairro> |
|||
<Cidade>{{ rps.tomador.cidade }}</Cidade> |
|||
<UF>{{ rps.tomador.uf }}</UF> |
|||
<CEP>{{ rps.tomador.cep }}</CEP> |
|||
</EnderecoTomador> |
|||
<Discriminacao>{{ rps.descricao }}</Discriminacao> |
|||
{% endfor %} |
|||
</RPS> |
|||
</PedidoEnvioLoteRPS> |
|||
@ -0,0 +1,51 @@ |
|||
<PedidoEnvioRPS xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.prefeitura.sp.gov.br/nfe"> |
|||
<Cabecalho Versao="1" xmlns=""> |
|||
<CPFCNPJRemetente> |
|||
<CNPJ>{{ nfse.cpf_cnpj }}</CNPJ> |
|||
</CPFCNPJRemetente> |
|||
</Cabecalho> |
|||
{% for rps in nfse.lista_rps -%} |
|||
<RPS xmlns=""> |
|||
<Assinatura>{{ rps.assinatura }}</Assinatura> |
|||
<ChaveRPS> |
|||
<InscricaoPrestador>{{ rps.prestador.inscricao_municipal }}</InscricaoPrestador> |
|||
<SerieRPS>{{ rps.serie }}</SerieRPS> |
|||
<NumeroRPS>{{ rps.numero }}</NumeroRPS> |
|||
</ChaveRPS> |
|||
<TipoRPS>RPS-M</TipoRPS> |
|||
<DataEmissao>{{ rps.data_emissao }}</DataEmissao> |
|||
<StatusRPS>N</StatusRPS> |
|||
<TributacaoRPS>T</TributacaoRPS> |
|||
<ValorServicos>{{ nfse.total_servicos }}</ValorServicos> |
|||
<ValorDeducoes>{{ nfse.total_deducoes }}</ValorDeducoes> |
|||
<ValorPIS>{{ rps.valor_pis }}</ValorPIS> |
|||
<ValorCOFINS>{{ rps.valor_cofins }}</ValorCOFINS> |
|||
<ValorINSS>{{ rps.valor_inss }}</ValorINSS> |
|||
<ValorIR>{{ rps.valor_pis }}</ValorIR> |
|||
<ValorCSLL>{{ rps.valor_csll }}</ValorCSLL> |
|||
<CodigoServico>{{ rps.codigo_atividade }}</CodigoServico> |
|||
<AliquotaServicos>{{ rps.aliquota_atividade }}</AliquotaServicos> |
|||
<ISSRetido>false</ISSRetido> |
|||
<CPFCNPJTomador> |
|||
{% if rps.tomador.tipo_cpfcnpj == 1 -%} |
|||
<CPF>{{ rps.tomador.cpf_cnpj }}</CPF> |
|||
{% endif %} |
|||
{% if rps.tomador.tipo_cpfcnpj == 2 -%} |
|||
<CNPJ>{{ rps.tomador.cpf_cnpj }}</CNPJ> |
|||
{% endif %} |
|||
</CPFCNPJTomador> |
|||
<RazaoSocialTomador>{{ rps.tomador.razao_social }}</RazaoSocialTomador> |
|||
<EnderecoTomador> |
|||
<TipoLogradouro>{{ rps.tomador.tipo_logradouro }}</TipoLogradouro> |
|||
<Logradouro>{{ rps.tomador.logradouro }}</Logradouro> |
|||
<NumeroEndereco>{{ rps.tomador.numero }}</NumeroEndereco> |
|||
<ComplementoEndereco>{{ rps.tomador.complemento }}</ComplementoEndereco> |
|||
<Bairro>{{ rps.tomador.bairro }}</Bairro> |
|||
<Cidade>{{ rps.tomador.cidade }}</Cidade> |
|||
<UF>{{ rps.tomador.uf }}</UF> |
|||
<CEP>{{ rps.tomador.cep }}</CEP> |
|||
</EnderecoTomador> |
|||
<Discriminacao>{{ rps.descricao }}</Discriminacao> |
|||
{% endfor %} |
|||
</RPS> |
|||
</PedidoEnvioRPS> |
|||
@ -0,0 +1,12 @@ |
|||
<?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> |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue