Browse Source

alteração nfse campinas para dsf

pull/83/head
Felipe 8 years ago
parent
commit
8031ae480c
  1. 47
      pytrustnfe/nfse/dsf/__init__.py
  2. 22
      pytrustnfe/nfse/dsf/templates/consultarNFSeRps.xml
  3. 1
      pytrustnfe/xml/__init__.py

47
pytrustnfe/nfse/dsf/__init__.py

@ -27,28 +27,32 @@ def _render(certificado, method, **kwargs):
def _get_url(**kwargs):
try:
cod_cidade = kwargs['CodCidade']
cod_cidade = kwargs['nfse']['cidade']
except (KeyError, TypeError):
return ''
raise KeyError("Código de cidade inválido!")
urls = {
# Belém - PA
'2715': 'http://www.issdigitalbel.com.br/WsNFe2/LoteRps.jws',
# Sorocaba - SP
'5363': 'http://issdigital.sorocaba.sp.gov.br/WsNFe2/LoteRps.jws',
'7145': 'http://issdigital.sorocaba.sp.gov.br/WsNFe2/LoteRps.jws',
# Teresina - PI
'3182': 'http://www.issdigitalthe.com.br/WsNFe2/LoteRps.jws',
'1219': 'http://www.issdigitalthe.com.br/WsNFe2/LoteRps.jws',
# Campinas - SP
'4888': 'http://issdigital.campinas.sp.gov.br/WsNFe2/LoteRps.jws?wsdl',
'6291': 'http://issdigital.campinas.sp.gov.br/WsNFe2/LoteRps.jws?wsdl',
# Uberlandia - MG
'2170': 'http://udigital.uberlandia.mg.gov.br/WsNFe2/LoteRps.jws',
'5403': 'http://udigital.uberlandia.mg.gov.br/WsNFe2/LoteRps.jws',
# São Luis - MA
'1314': 'https://stm.semfaz.saoluis.ma.gov.br/WsNFe2/LoteRps?wsdl',
'0921': 'https://stm.semfaz.saoluis.ma.gov.br/WsNFe2/LoteRps?wsdl',
# Campo Grande - MS
'2218': 'http://issdigital.pmcg.ms.gov.br/WsNFe2/LoteRps.jws',
'2729': 'http://issdigital.pmcg.ms.gov.br/WsNFe2/LoteRps.jws',
}
return urls[str(cod_cidade)]
try:
return urls[str(cod_cidade)]
except KeyError:
raise KeyError("DSF não emite notas da cidade {}!".format(
cod_cidade))
def _send(certificado, method, **kwargs):
@ -75,6 +79,9 @@ def _send(certificado, method, **kwargs):
'received_xml': e.fault.faultstring,
'object': None
}
except Exception as e:
print (response)
print (e)
return {
'sent_xml': xml_send,
@ -83,11 +90,23 @@ def _send(certificado, method, **kwargs):
}
def xml_enviar(certificado, **kwargs):
return _render(certificado, 'enviar', **kwargs)
def enviar(certificado, **kwargs):
if "xml" not in kwargs:
kwargs['xml'] = xml_enviar(certificado, **kwargs)
return _send(certificado, 'enviar', **kwargs)
def xml_teste_enviar(certificado, **kwargs):
return _render(certificado, 'testeEnviar', **kwargs)
def teste_enviar(certificado, **kwargs):
if "xml" not in kwargs:
kwargs['xml'] = xml_teste_enviar(certificado, **kwargs)
return _send(certificado, 'testeEnviar', **kwargs)
@ -99,5 +118,11 @@ def consulta_lote(**kwargs):
return _send(False, 'consultarLote', **kwargs)
def consultar_lote_rps(certificado, **kwarg):
return _send(certificado, 'consultarNFSeRps', **kwarg)
def xml_consultar_nfse_rps(certificado, **kwargs):
return _render(certificado, 'consultarNFSeRps', **kwargs)
def consultar_nfse_rps(certificado, **kwargs):
if "xml" not in kwargs:
kwargs['xml'] = xml_consultar_nfse_rps(certificado, **kwargs)
return _send(certificado, 'consultarNFSeRps', **kwargs)

22
pytrustnfe/nfse/dsf/templates/consultarNFSeRps.xml

@ -0,0 +1,22 @@
<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>{{ nfse.cidade }}</CodCidade>
<CPFCNPJRemetente>{{ nfse.cpf_cnpj }}</CPFCNPJRemetente>
<transacao>true</transacao>
<Versao>1</Versao>
</Cabecalho>
<Lote Id="lote:{{ nfse.lote }}">
{% for rps in nfse.lista_rps -%}
<RPSConsulta>
<RPS Id="rps:{{ rps.numero }}">
<InscricaoMunicipalPrestador>{{ rps.prestador.inscricao_municipal }}</InscricaoMunicipalPrestador>
<NumeroRPS>{{ rps.numero }}</NumeroRPS>
<SeriePrestacao>{{ rps.serie_prestacao }}</SeriePrestacao>
</RPS>
</RPSConsulta>
{% endfor %}
</Lote>
</ns1:ReqConsultaNFSeRPS>

1
pytrustnfe/xml/__init__.py

@ -27,7 +27,6 @@ def render_xml(path, template_name, remove_empty, **nfe):
env.filters["format_date"] = filters.format_date
template = env.get_template(template_name)
xml = template.render(**nfe)
parser = etree.XMLParser(remove_blank_text=True, remove_comments=True,
strip_cdata=False)

Loading…
Cancel
Save