8 changed files with 128 additions and 58 deletions
-
18pytrustnfe/Servidores.py
-
4pytrustnfe/nfse/ginfes/templates/Rps.xml
-
17pytrustnfe/nfse/simpliss/__init__.py
-
97pytrustnfe/nfse/simpliss/templates/GerarNfse.xml
-
2pytrustnfe/nfse/simpliss/templates/Rps.xml
-
23pytrustnfe/test/test_simpliss.py
-
23pytrustnfe/test/test_susesu.py
-
2setup.py
@ -0,0 +1,97 @@ |
|||||
|
<GerarNfse xmlns="http://www.sistema.com.br/Sistema.Ws.Nfse"> |
||||
|
<GerarNovaNfseEnvio> |
||||
|
<Prestador xmlns="http://www.sistema.com.br/Nfse/arquivos/nfse_3.xsd"> |
||||
|
<Cnpj>{{ nfse.cnpj_prestador }}</Cnpj> |
||||
|
<InscricaoMunicipal>{{ nfse.inscricao_municipal }}</InscricaoMunicipal> |
||||
|
</Prestador> |
||||
|
{% for rps in nfse.lista_rps -%} |
||||
|
<InformacaoNfse xmlns="http://www.sistema.com.br/Nfse/arquivos/nfse_3.xsd"> |
||||
|
<NaturezaOperacao>{{ rps.natureza_operacao }}</NaturezaOperacao> |
||||
|
<RegimeEspecialTributacao>{{ rps.regime_tributacao }}</RegimeEspecialTributacao> |
||||
|
<OptanteSimplesNacional>{{ rps.optante_simples }}</OptanteSimplesNacional> |
||||
|
<IncentivadorCultural>{{ rps.incentivador_cultural }}</IncentivadorCultural> |
||||
|
<Status>{{ rps.status }}</Status> |
||||
|
<Competencia>{{ rps.data_emissao }}</Competencia> |
||||
|
<OutrasInformacoes>{{ rps.outras_informacoes }}</OutrasInformacoes> |
||||
|
<Servico> |
||||
|
<Valores> |
||||
|
<ValorServicos>{{ rps.valor_servico }}</ValorServicos> |
||||
|
<ValorDeducoes>{{ rps.valor_deducao }}</ValorDeducoes> |
||||
|
<ValorPis>{{ rps.valor_pis }}</ValorPis> |
||||
|
<ValorCofins>{{ rps.valor_cofins }}</ValorCofins> |
||||
|
<ValorInss>{{ rps.valor_inss }}</ValorInss> |
||||
|
<ValorIr>{{ rps.valor_ir }}</ValorIr> |
||||
|
<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> |
||||
|
<DescontoIncondicionado>{{ rps.desconto_incondicionado }}</DescontoIncondicionado> |
||||
|
<DescontoCondicionado>{{ rps.desconto_condicionado }}</DescontoCondicionado> |
||||
|
</Valores> |
||||
|
<ItemListaServico>{{ rps.codigo_servico }}</ItemListaServico> |
||||
|
<CodigoCnae>{{ rps.cnae }}</CodigoCnae> |
||||
|
<CodigoTributacaoMunicipio>{{ rps.codigo_tributacao }}</CodigoTributacaoMunicipio> |
||||
|
<Discriminacao>{{ rps.descricao }}</Discriminacao> |
||||
|
<CodigoMunicipio>{{ rps.codigo_municipio }}</CodigoMunicipio> |
||||
|
{% for item in rps.itens_servico -%} |
||||
|
<ItensServico> |
||||
|
<Descricao>{{ item.descricao }}</Descricao> |
||||
|
<Quantidade>{{ item.quantidade }}</Quantidade> |
||||
|
<ValorUnitario>{{ item.valor_unitario }}</ValorUnitario> |
||||
|
</ItensServico> |
||||
|
{% endfor %} |
||||
|
</Servico> |
||||
|
<Tomador> |
||||
|
<IdentificacaoTomador> |
||||
|
<CpfCnpj> |
||||
|
{% if rps.tomador.cnpj_cpf|length == 14 %} |
||||
|
<Cnpj>{{ rps.tomador.cnpj_cpf }}</Cnpj> |
||||
|
{% endif %} |
||||
|
{% if rps.tomador.cnpj_cpf|length == 11 %} |
||||
|
<Cpf>{{ rps.tomador.cnpj_cpf }}</Cpf> |
||||
|
{% endif %} |
||||
|
</CpfCnpj> |
||||
|
<InscricaoMunicipal>{{ rps.tomador.inscricao_municipal }}</InscricaoMunicipal> |
||||
|
</IdentificacaoTomador> |
||||
|
<RazaoSocial>{{ rps.tomador.razao_social }}</RazaoSocial> |
||||
|
<Endereco> |
||||
|
<Endereco>{{ rps.tomador.logradouro }}</Endereco> |
||||
|
<Numero>{{ rps.tomador.numero }}</Numero> |
||||
|
<Complemento>{{ rps.tomador.complemento }}</Complemento> |
||||
|
<Bairro>{{ rps.tomador.bairro }}</Bairro> |
||||
|
<CodigoMunicipio>{{ rps.tomador.cidade }}</CodigoMunicipio> |
||||
|
<Uf>{{ rps.tomador.uf }}</Uf> |
||||
|
<Cep>{{ rps.tomador.cep }}</Cep> |
||||
|
</Endereco> |
||||
|
<Contato> |
||||
|
<Telefone>{{ rps.tomador.telefone }}</Telefone> |
||||
|
<Email>{{ rps.tomador.email }}</Email> |
||||
|
</Contato> |
||||
|
</Tomador> |
||||
|
{% if rps.intermediario is defined -%} |
||||
|
<IntermediarioServico> |
||||
|
<RazaoSocial>{{ rps.intermediario.razao_social }}</RazaoSocial> |
||||
|
<CpfCnpj> |
||||
|
<Cnpj>{{ rps.intermediario.cnpj }}</Cnpj> |
||||
|
</CpfCnpj> |
||||
|
<InscricaoMunicipal>{{ rps.intermediario.inscricao_municipal }}</InscricaoMunicipal> |
||||
|
</IntermediarioServico> |
||||
|
{% endif %} |
||||
|
{% if rps.construcao_civil is defined -%} |
||||
|
<ContrucaoCivil> |
||||
|
<CodigoObra>{{ rps.construcao_civil.codigo_obra }}</CodigoObra> |
||||
|
<Art>{{ rps.construcao_civil.art }}</Art> |
||||
|
</ContrucaoCivil> |
||||
|
{% endif %} |
||||
|
</InformacaoNfse> |
||||
|
{% endfor %} |
||||
|
</GerarNovaNfseEnvio> |
||||
|
<pParam> |
||||
|
<P1 xmlns="http://www.sistema.com.br/Sistema.Ws.Nfse.Cn">{{ nfse.cnpj_prestador }}</P1> |
||||
|
<P2 xmlns="http://www.sistema.com.br/Sistema.Ws.Nfse.Cn">{{ nfse.senha }}</P2> |
||||
|
</pParam> |
||||
|
</GerarNfse> |
||||
@ -1,23 +0,0 @@ |
|||||
# -*- 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.certificado import Certificado |
|
||||
from pytrustnfe.nfse.simpliss import recepcionar_lote_rps |
|
||||
|
|
||||
|
|
||||
class test_nfse_simpliss(unittest.TestCase): |
|
||||
|
|
||||
caminho = os.path.dirname(__file__) |
|
||||
|
|
||||
def test_recepcionar_lote(self): |
|
||||
pfx_source = open('/home/danimar/Downloads/machado.pfx', 'r').read() |
|
||||
pfx = Certificado(pfx_source, '123456789') |
|
||||
|
|
||||
dados = {'cnpj_prestador': '12345678910234', |
|
||||
'inscricao_prestador': '123', |
|
||||
'protocolo': '123'} |
|
||||
response = recepcionar_lote_rps( |
|
||||
pfx, nfse=dados, ambiente='homologacao') |
|
||||
print response |
|
||||
@ -1,23 +0,0 @@ |
|||||
# -*- 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.susesu import enviar_nota_retorna_url |
|
||||
|
|
||||
|
|
||||
class test_nfse_susesu(unittest.TestCase): |
|
||||
|
|
||||
caminho = os.path.dirname(__file__) |
|
||||
|
|
||||
def test_enviar_nota_url_nota(self): |
|
||||
dados = { |
|
||||
'cnpj_prestador': '21118045000135', |
|
||||
'codigo_prefeitura': 3150, |
|
||||
'senha_nfd': 'fiscalb', |
|
||||
'prestador': {}, |
|
||||
'tomador': {} |
|
||||
} |
|
||||
response = enviar_nota_retorna_url(ambiente='homologacao', nfse=dados) |
|
||||
self.assertEqual(response['received_xml'], |
|
||||
'0-Numero da nota fiscal invalido.') |
|
||||
Write
Preview
Loading…
Cancel
Save
Reference in new issue