Browse Source

Envio de notas para a prefeitura de Rio das Pedras

pull/37/merge
Danimar Ribeiro 9 years ago
parent
commit
ba1aa35a27
  1. 6
      README.md
  2. 4
      cidades/ariss.md
  3. 18
      cidades/simpliss.md
  4. 42
      pytrustnfe/nfse/ariss/__init__.py
  5. 32
      pytrustnfe/nfse/ariss/templates/EnviarNota.xml
  6. 14
      pytrustnfe/nfse/ariss/templates/EnviarNotaRetornaurlNota.xml
  7. 32
      pytrustnfe/nfse/ariss/templates/Nota.xml
  8. 26
      pytrustnfe/test/test_ariss.py

6
README.md

@ -15,6 +15,12 @@ Dependências:
* reportlab
* Jinja2
NFSe - Cidades atendidas
--------------
* [Ariss](cidades/ariss.md) - 4 cidades atendidas
* [Simpliss](cidades/simpliss.md) - 18 cidade atendidas
Roadmap
--------------
Teste unitários

4
cidades/ariss.md

@ -0,0 +1,4 @@
* Prefeitura de Rio das Pedras/SP
* Prefeitura de Piracaia/SP
* Prefeitura de Ipeúna/SP
* Prefeitura de Santa Maria da Serra/SP

18
cidades/simpliss.md

@ -0,0 +1,18 @@
* Araras / SP
* Balneario Camboriu / SC
* Bambuí / MG
* Bandeirantes / PR
* Carapicuíba / SP
* Casa Branca / SP
* Cerquilho / SP
* Dois Corregos / SP
* Jales / SP
* Lagoa Da Prata / MG
* Osvaldo Cruz / SP
* Patrocinio / MG
* Piracicaba / SP
* Presidente Prudente / SP
* São João da Boa Vista / SP
* São José do Rio Pardo / SP
* Tupa / SP
* Vargem Grande do Sul / SP

42
pytrustnfe/nfse/ariss/__init__.py

@ -0,0 +1,42 @@
# -*- coding: utf-8 -*-
# © 2016 Danimar Ribeiro, Trustcode
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
import os
import suds
import unicodedata
from pytrustnfe.xml import render_xml
from pytrustnfe.client import get_client
def _send(method, **kwargs):
path = os.path.join(os.path.dirname(__file__), 'templates')
xml_send = render_xml(path, '%s.xml' % method, False, **kwargs)
if kwargs['ambiente'] == 'producao':
base_url = 'http://www.susesu.com.br/wsnfd/serviconfd.asmx?WSDL'
else:
base_url = 'http://pira.comunix.net:5002/gestaopublica/wsnfd/ServicoNfd.asmx?WSDL' # noqa
client = get_client(base_url)
try:
result = getattr(client.service, method)(__inject={'msg': xml_send})
except Exception as e:
return {
'sent_xml': xml_send,
'received_xml': e.fault.faultstring,
}
result = unicode(result)
result = unicodedata.normalize('NFKD', result).encode('ascii', 'ignore')
return {
'sent_xml': xml_send,
'received_xml': result,
}
def enviar_nota(**kwargs):
return _send('EnviarNota', **kwargs)
def enviar_nota_retorna_url(**kwargs):
return _send('EnviarNotaRetornaurlNota', **kwargs)

32
pytrustnfe/nfse/ariss/templates/EnviarNota.xml

@ -0,0 +1,32 @@
<NOTA>
<NUMERO_NOTA>6053</NUMERO_NOTA>
<DATA_EMISSAO>21/05/2016</DATA_EMISSAO>
<CODIGO_GERAL_ATIVIDADE>09.00</CODIGO_GERAL_ATIVIDADE>
<CODIGO_ATIVIDADE/>
<OUTRAS_INFORMACOES>NOTA FISCAL DE PRESTAÇÃO DE SERVIÇOS</OUTRAS_INFORMACOES>
<DESCRICAO_SERVICOS>DESCRIÇÃO DO SERVIÇO</DESCRICAO_SERVICOS>
<VALOR_TOTAL_NOTA>440,00</VALOR_TOTAL_NOTA>
<STATUS_ISS_NOTA>1</STATUS_ISS_NOTA>
<IRRF>0,00</IRRF>
<INSS>0,00</INSS>
<PIS>0,00</PIS>
<COFINS>0,00</COFINS>
<CONTRIBUICAO_SOCIAL>0,00</CONTRIBUICAO_SOCIAL>
<VALOR_LIQUIDO>440,00</VALOR_LIQUIDO>
<VALOR_DEDUCAO_MATERIAIS>0,00</VALOR_DEDUCAO_MATERIAIS>
<COD_MUNICIPIO_EXECUCAO_SERVICO>3550407</COD_MUNICIPIO_EXECUCAO_SERVICO>
<LOCAL_EXECUCAO_SERVICO>LOCAL EXECUÇÃO</LOCAL_EXECUCAO_SERVICO>
<TOMADOR_ESTRANGEIRO>N</TOMADOR_ESTRANGEIRO>
<TOMADOR_DOCUMENTO>00000000000</TOMADOR_DOCUMENTO>
<TOMADOR_RAZAO>TOMADOR RAZAO/NOME</TOMADOR_RAZAO>
<TOMADOR_LOGRADOURO>LOGRADOURO</TOMADOR_LOGRADOURO>
<TOMADOR_BAIRRO>BAIRRO</TOMADOR_BAIRRO>
<TOMADOR_CEP>13400000</TOMADOR_CEP>
<TOMADOR_INSCRICAO_ESTADUAL>ISENTO</TOMADOR_INSCRICAO_ESTADUAL>
<TOMADOR_INSCRICAO_MUNICIPAL>ISENTO</TOMADOR_INSCRICAO_MUNICIPAL>
<TOMADOR_EMAIL>email@email.com</TOMADOR_EMAIL>
<TOMADOR_TELEFONE>1912345678</TOMADOR_TELEFONE>
<TOMADOR_MUNICIPIO>3506003</TOMADOR_MUNICIPIO>
<ALIQUOTA>3,00</ALIQUOTA>
<PORCENTAGEM_REGIME_ESPECIAL>0</PORCENTAGEM_REGIME_ESPECIAL>
</NOTA>

14
pytrustnfe/nfse/ariss/templates/EnviarNotaRetornaurlNota.xml

@ -0,0 +1,14 @@
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<EnviarNotaRetornaurlNota xmlns="http://susesu.com.br/">
<codPrefeitura>{{ codigo_prefeitura }}</codPrefeitura>
<notaFiscal>
<![CDATA[
{% include 'Nota.xml' %}
]]>
</notaFiscal>
<cnpjPrestador>{{ cnpj_prestador }}</cnpjPrestador>
<senhaNFD>{{ senha_nfd }}</senhaNFD>
</EnviarNotaRetornaurlNota>
</soap:Body>
</soap:Envelope>

32
pytrustnfe/nfse/ariss/templates/Nota.xml

@ -0,0 +1,32 @@
<NOTA>
<NUMERO_NOTA>200</NUMERO_NOTA>
<DATA_EMISSAO>21/05/2016</DATA_EMISSAO>
<CODIGO_GERAL_ATIVIDADE>09.00</CODIGO_GERAL_ATIVIDADE>
<CODIGO_ATIVIDADE/>
<OUTRAS_INFORMACOES>NOTA FISCAL DE PRESTAÇÃO DE SERVIÇOS</OUTRAS_INFORMACOES>
<DESCRICAO_SERVICOS>DESCRIÇÃO DO SERVIÇO</DESCRICAO_SERVICOS>
<VALOR_TOTAL_NOTA>440,00</VALOR_TOTAL_NOTA>
<STATUS_ISS_NOTA>1</STATUS_ISS_NOTA>
<IRRF>0,00</IRRF>
<INSS>0,00</INSS>
<PIS>0,00</PIS>
<COFINS>0,00</COFINS>
<CONTRIBUICAO_SOCIAL>0,00</CONTRIBUICAO_SOCIAL>
<VALOR_LIQUIDO>440,00</VALOR_LIQUIDO>
<VALOR_DEDUCAO_MATERIAIS>0,00</VALOR_DEDUCAO_MATERIAIS>
<COD_MUNICIPIO_EXECUCAO_SERVICO>3550407</COD_MUNICIPIO_EXECUCAO_SERVICO>
<LOCAL_EXECUCAO_SERVICO>LOCAL EXECUÇÃO</LOCAL_EXECUCAO_SERVICO>
<TOMADOR_ESTRANGEIRO>N</TOMADOR_ESTRANGEIRO>
<TOMADOR_DOCUMENTO>00000000000</TOMADOR_DOCUMENTO>
<TOMADOR_RAZAO>TOMADOR RAZAO/NOME</TOMADOR_RAZAO>
<TOMADOR_LOGRADOURO>LOGRADOURO</TOMADOR_LOGRADOURO>
<TOMADOR_BAIRRO>BAIRRO</TOMADOR_BAIRRO>
<TOMADOR_CEP>13400000</TOMADOR_CEP>
<TOMADOR_INSCRICAO_ESTADUAL>ISENTO</TOMADOR_INSCRICAO_ESTADUAL>
<TOMADOR_INSCRICAO_MUNICIPAL>ISENTO</TOMADOR_INSCRICAO_MUNICIPAL>
<TOMADOR_EMAIL>email@email.com</TOMADOR_EMAIL>
<TOMADOR_TELEFONE>1912345678</TOMADOR_TELEFONE>
<TOMADOR_MUNICIPIO>3506003</TOMADOR_MUNICIPIO>
<ALIQUOTA>3,00</ALIQUOTA>
<PORCENTAGEM_REGIME_ESPECIAL>0</PORCENTAGEM_REGIME_ESPECIAL>
</NOTA>

26
pytrustnfe/test/test_ariss.py

@ -0,0 +1,26 @@
# -*- coding: utf-8 -*-
# © 2016 Danimar Ribeiro, Trustcode
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
import os.path
import unittest
from pytrustnfe.nfse.ariss import enviar_nota
from pytrustnfe.nfse.ariss import enviar_nota_retorna_url
class test_nfse_arisss(unittest.TestCase):
caminho = os.path.dirname(__file__)
def test_enviar_nota_url_nota(self):
nota = {
}
dados = {
'cnpj_prestador': '21118045000135',
'codigo_prefeitura': 3150,
'senha_nfd': 'fiscalb',
'nota': nota
}
response = enviar_nota_retorna_url(ambiente='homologacao', **dados)
self.assertEqual(response['received_xml'],
'0-Numero da nota fiscal invalido.')
Loading…
Cancel
Save