Browse Source

DONE - Finalizado implementação da Nota Imperial - Petropolis

pull/68/head
Danimar Ribeiro 8 years ago
parent
commit
5868c96fa4
  1. 1
      pytrustnfe/nfse/ginfes/__init__.py
  2. 2
      pytrustnfe/nfse/ginfes/templates/Rps.xml
  3. 2
      pytrustnfe/nfse/imperial/__init__.py
  4. 111
      pytrustnfe/nfse/imperial/templates/PROCESSARPS.xml
  5. 1
      pytrustnfe/xml/__init__.py
  6. 6
      pytrustnfe/xml/filters.py
  7. 2
      setup.py

1
pytrustnfe/nfse/ginfes/__init__.py

@ -4,7 +4,6 @@
import os
import suds
from lxml import etree
from pytrustnfe.xml import render_xml, sanitize_response
from pytrustnfe.client import get_authenticated_client
from pytrustnfe.certificado import extract_cert_and_key_from_pfx, save_cert_key

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

@ -27,11 +27,11 @@
<ValorCsll>{{ rps.valor_csll }}</ValorCsll>
<IssRetido>{{ rps.iss_retido }}</IssRetido>
<ValorIss>{{ rps.valor_iss }}</ValorIss>
<ValorIssRetido>{{ rps.valor_iss_retido }}</ValorIssRetido>
<OutrasRetencoes>{{ rps.outras_retencoes }}</OutrasRetencoes>
<BaseCalculo>{{ rps.base_calculo }}</BaseCalculo>
<Aliquota>{{ rps.aliquota_issqn }}</Aliquota>
<ValorLiquidoNfse>{{ rps.valor_liquido_nfse }}</ValorLiquidoNfse>
<ValorIssRetido>{{ rps.valor_iss_retido }}</ValorIssRetido>
<DescontoIncondicionado>{{ rps.desconto_incondicionado }}</DescontoIncondicionado>
<DescontoCondicionado>{{ rps.desconto_condicionado }}</DescontoCondicionado>
</Valores>

2
pytrustnfe/nfse/imperial/__init__.py

@ -17,7 +17,7 @@ def _render(certificado, method, **kwargs):
def _send(certificado, method, **kwargs):
base_url = ''
if kwargs['ambiente'] == 'producao':
base_url = 'https://nfe.etransparencia.com.br/rj.petropolis/nfe/principal.aspx' # noqa
base_url = 'https://nfe.etransparencia.com.br/rj.petropolis/webservice/aws_nfe.aspx' # noqa
else:
base_url = 'https://nfehomologacao.etransparencia.com.br/rj.petropolis/webservice/aws_nfe.aspx' # noqa

111
pytrustnfe/nfse/imperial/templates/PROCESSARPS.xml

@ -8,70 +8,73 @@
<Ano>{{ nfse.ano }}</Ano>
<Mes>{{ nfse.mes }}</Mes>
<CPFCNPJ>{{ nfse.cnpj_prestador }}</CPFCNPJ>
<DTIni>[string]</DTIni>
<DTFin>[string]</DTFin>
<TipoTrib>[string]</TipoTrib>
<DtAdeSN>[string]</DtAdeSN>
<AlqIssSN_IP>[string]</AlqIssSN_IP>
<Versao>[string]</Versao>
<DTIni>{{ nfse.data_emissao }}</DTIni>
<DTFin>{{ nfse.data_emissao }}</DTFin>
<TipoTrib>{{ nfse.tipo_tributacao }}</TipoTrib>
<DtAdeSN>{{ nfse.data_adesao_simples }}</DtAdeSN>
<AlqIssSN_IP>{{ nfse.aliquota_simples_isencao|comma }}</AlqIssSN_IP>
<Versao>2.00</Versao>
{% for rps in nfse.lista_rps -%}
<Reg20>
<!-- Optional -->
<Reg20Item>
<TipoNFS>[string]</TipoNFS>
<NumRps>[string]</NumRps>
<SerRps>[string]</SerRps>
<DtEmi>[string]</DtEmi>
<RetFonte>[string]</RetFonte>
<CodSrv>[string]</CodSrv>
<DiscrSrv>[string]</DiscrSrv>
<VlNFS>[string]</VlNFS>
<VlDed>[string]</VlDed>
<DiscrDed>[string]</DiscrDed>
<VlBasCalc>[string]</VlBasCalc>
<AlqIss>[string]</AlqIss>
<VlIss>[string]</VlIss>
<VlIssRet>[string]</VlIssRet>
<CpfCnpTom>[string]</CpfCnpTom>
<RazSocTom>[string]</RazSocTom>
<TipoLogtom>[string]</TipoLogtom>
<LogTom>[string]</LogTom>
<NumEndTom>[string]</NumEndTom>
<ComplEndTom>[string]</ComplEndTom>
<BairroTom>[string]</BairroTom>
<MunTom>[string]</MunTom>
<SiglaUFTom>[string]</SiglaUFTom>
<CepTom>[string]</CepTom>
<Telefone>[string]</Telefone>
<InscricaoMunicipal>[string]</InscricaoMunicipal>
<TipoLogLocPre>[string]</TipoLogLocPre>
<LogLocPre>[string]</LogLocPre>
<NumEndLocPre>[string]</NumEndLocPre>
<ComplEndLocPre>[string]</ComplEndLocPre>
<BairroLocPre>[string]</BairroLocPre>
<MunLocPre>[string]</MunLocPre>
<SiglaUFLocpre>[string]</SiglaUFLocpre>
<CepLocPre>[string]</CepLocPre>
<Email1>[string]</Email1>
<Email2>[string]</Email2>
<Email3>[string]</Email3>
<TipoNFS>{{ rps.tipo_nfse }}</TipoNFS>
<NumRps>{{ rps.numero }}</NumRps>
<SerRps>{{ rps.serie }}</SerRps>
<DtEmi>{{ rps.data_emissao }}</DtEmi>
<RetFonte>{{ rps.iss_retido }}</RetFonte>
<CodSrv>{{ rps.codigo_servico }}</CodSrv>
<DiscrSrv>{{ rps.descricao}}</DiscrSrv>
<VlNFS>{{ rps.valor_liquido_nfse|comma }}</VlNFS>
<VlDed>{{ rps.valor_deducao|comma }}</VlDed>
<DiscrDed>{{ rps.discriminacao_deducao }}</DiscrDed>
<VlBasCalc>{{ rps.base_calculo|comma }}</VlBasCalc>
<AlqIss>{{ rps.aliquota_issqn|comma }}</AlqIss>
<VlIss>{{ rps.valor_iss|comma }}</VlIss>
<VlIssRet>{{ rps.valor_iss_retido|comma }}</VlIssRet>
<CpfCnpTom>{{ rps.tomador.cnpj_cpf }}</CpfCnpTom>
<RazSocTom>{{ rps.tomador.razao_social }}</RazSocTom>
<TipoLogtom>{{ rps.tomador.tipo_logradouro }}</TipoLogtom>
<LogTom>{{ rps.tomador.logradouro }}</LogTom>
<NumEndTom>{{ rps.tomador.numero }}</NumEndTom>
<ComplEndTom>{{ rps.tomador.complemento }}</ComplEndTom>
<BairroTom>{{ rps.tomador.bairro }}</BairroTom>
<MunTom>{{ rps.tomador.municipio }}</MunTom>
<SiglaUFTom>{{ rps.tomador.uf }}</SiglaUFTom>
<CepTom>{{ rps.tomador.cep }}</CepTom>
<Telefone>{{ rps.tomador.telefone }}</Telefone>
<InscricaoMunicipal>{{ rps.tomador.inscricao_municipal }}</InscricaoMunicipal>
{% if rps.local_prestacao == 'prestador' %}
<TipoLogLocPre>{{ rps.prestador.tipo_logradouro }}</TipoLogLocPre>
<LogLocPre>{{ rps.prestador.logradouro }}</LogLocPre>
<NumEndLocPre>{{ rps.prestador.numero }}</NumEndLocPre>
<ComplEndLocPre>{{ rps.prestador.complemento }}</ComplEndLocPre>
<BairroLocPre>{{ rps.prestador.bairro }}</BairroLocPre>
<MunLocPre>{{ rps.prestador.municipio }}</MunLocPre>
<SiglaUFLocpre>{{ rps.prestador.uf }}</SiglaUFLocpre>
<CepLocPre>{{ rps.prestador.cep }}</CepLocPre>
{% endif %}
<Email1>{{ rps.tomador.email }}</Email1>
{% for imposto in rps.impostos -%}
<Reg30>
<!-- Optional -->
<Reg30Item>
<TributoSigla>[string]</TributoSigla>
<TributoAliquota>[string]</TributoAliquota>
<TributoValor>[string]</TributoValor>
<TributoSigla>{{ imposto.sigla }}</TributoSigla>
<TributoAliquota>{{ imposto.aliquota|comma }}</TributoAliquota>
<TributoValor>{{ imposto.valor|comma }}</TributoValor>
</Reg30Item>
</Reg30>
{% endfor %}
</Reg20Item>
</Reg20>
{% endfor %}
<Reg90>
<QtdRegNormal>[string]</QtdRegNormal>
<ValorNFS>[string]</ValorNFS>
<ValorISS>[string]</ValorISS>
<ValorDed>[string]</ValorDed>
<ValorIssRetTom>[string]</ValorIssRetTom>
<QtdReg30>[string]</QtdReg30>
<ValorTributos>[string]</ValorTributos>
<QtdRegNormal>{{ nfse.lista_rps|length }}</QtdRegNormal>
<ValorNFS>{{ nfse.lista_rps|sum(attribute='valor_liquido_nfse')|comma }}</ValorNFS>
<ValorISS>{{ nfse.lista_rps|sum(attribute='valor_iss')|comma }}</ValorISS>
<ValorDed>{{ nfse.lista_rps|sum(attribute='valor_deducao')|comma }}</ValorDed>
<ValorIssRetTom>{{ nfse.lista_rps|sum(attribute='valor_iss_retido')|comma }}</ValorIssRetTom>
<QtdReg30>{{ nfse.quantidade_impostos }}</QtdReg30>
<ValorTributos>{{ nfse.valor_tributos|comma }}</ValorTributos>
</Reg90>
</SDTRPS>
</Sdt_processarpsin>

1
pytrustnfe/xml/__init__.py

@ -25,6 +25,7 @@ def render_xml(path, template_name, remove_empty, **nfe):
env.filters["format_percent"] = filters.format_percent
env.filters["format_datetime"] = filters.format_datetime
env.filters["format_date"] = filters.format_date
env.filters["comma"] = filters.format_with_comma
template = env.get_template(template_name)

6
pytrustnfe/xml/filters.py

@ -59,3 +59,9 @@ def format_date(value):
if isinstance(value, date):
return value.strftime(dt_format)
return value
def format_with_comma(value):
if isinstance(value, float):
return ('%.2f' % value).replace('.', ',')
return value

2
setup.py

@ -1,7 +1,7 @@
# coding=utf-8
from setuptools import setup, find_packages
VERSION = "0.1.40"
VERSION = "0.1.41"
setup(
name="PyTrustNFe",

Loading…
Cancel
Save