3 changed files with 131 additions and 2 deletions
@ -0,0 +1,108 @@ |
|||||
|
# -*- coding: utf-8 -*- |
||||
|
|
||||
|
import logging |
||||
|
from datetime import datetime |
||||
|
from pytrustnfe.nfe import consulta_cadastro |
||||
|
#import pytrustnfe.nfe |
||||
|
from pytrustnfe.certificado import Certificado |
||||
|
from pytrustnfe.nfse.paulistana import cancelamento_nfe |
||||
|
from pytrustnfe.nfse.paulistana import envio_lote_rps |
||||
|
from pytrustnfe.nfse.carioca import gerar_nfse |
||||
|
|
||||
|
|
||||
|
logger = logging.getLogger(__name__) |
||||
|
dbg = 0 |
||||
|
|
||||
|
|
||||
|
#certificado_path = open(b'/data/certs/23834691000124.pfx', 'rb').read() |
||||
|
certificado_path = open(b'/data/certs/expirado.pfx', 'rb').read() |
||||
|
certificado = Certificado(certificado_path, 'audaz$321') |
||||
|
|
||||
|
if dbg>1 :print('type(certificado)') |
||||
|
if dbg>1 :print(type(certificado)) |
||||
|
if dbg>9 :print(certificado.pfx) |
||||
|
if dbg>1 :print(certificado.password) |
||||
|
# Necessário criar um dicionário com os dados, validação dos dados deve |
||||
|
# ser feita pela aplicação que está utilizando a lib |
||||
|
|
||||
|
#retorno = envio_lote_rps(certificado, nfse=nfse) |
||||
|
#retorno = gerar_nfse(certificado, nfse=rps) |
||||
|
|
||||
|
#xml = { "rps" : {"rps" : { "numero" : "1" }}} |
||||
|
#retorno = gerar_nfse(certificado, nfse=xml) |
||||
|
|
||||
|
rps = { |
||||
|
'ambiente': '2', |
||||
|
'rps': { |
||||
|
'ambiente': '2', |
||||
|
'numero': '1', |
||||
|
'serie': 'ABC', |
||||
|
'tipo_rps': '1', |
||||
|
'data_emissao': '2010-01-01T21:00:00', |
||||
|
'natureza_operacao': '1', |
||||
|
'optante_simples': '1', |
||||
|
'incentivador_cultural': '2', |
||||
|
'status': '1', |
||||
|
#'regime_tributacao': '', |
||||
|
#'numero_substituido': '', |
||||
|
'#serie_substituido': '', |
||||
|
'#tipo_substituido': '', |
||||
|
'valor_servico': '9.99', |
||||
|
'valor_deducao': '0', |
||||
|
'valor_pis': '0', |
||||
|
'valor_cofins': '0', |
||||
|
'valor_inss': '0', |
||||
|
'valor_ir': '0', |
||||
|
'valor_csll': '0', |
||||
|
'iss_retido': '0', |
||||
|
'valor_iss': '0', |
||||
|
'valor_iss_retido': '0', |
||||
|
'outras_retencoes': '0', |
||||
|
'base_calculo': '9.99', |
||||
|
'aliquota_issqn': '0.05', |
||||
|
'valor_liquido_nfse': '9.99', |
||||
|
'desconto_incondicionado': '', |
||||
|
'desconto_condicionado': '', |
||||
|
'codigo_servico': '0107', |
||||
|
'cnae_servico': '', |
||||
|
'codigo_tributacao_municipio': '010701', |
||||
|
'codigo_municipio': '3304557', |
||||
|
'descricao': 'Venda de servico', |
||||
|
'prestador': { |
||||
|
'cnpj': '123456789011213', |
||||
|
'inscricao_municipal': '123456', |
||||
|
}, |
||||
|
'tomador': { |
||||
|
'tipo_cpfcnpj': '1', |
||||
|
'cpf_cnpj': '12345678923256', |
||||
|
'inscricao_municipal': '123456', |
||||
|
'razao_social': 'Trustcode', |
||||
|
'tipo_logradouro': '1', |
||||
|
'logradouro': 'Vinicius de Moraes, 42', |
||||
|
'numero': '42', |
||||
|
'complemento': '', |
||||
|
'bairro': 'Corrego', |
||||
|
'cidade': '4205407', # Código da cidade, de acordo com o IBGE |
||||
|
'uf': 'SC', |
||||
|
'cep': '88037240', |
||||
|
'tomador.telefone': '', |
||||
|
'tomador.email': '' |
||||
|
}, |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
|
||||
|
retorno = gerar_nfse(certificado, **rps) |
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
# retorno é um dicionário { 'received_xml':'', 'sent_xml':'', 'object': object() } |
||||
|
if dbg>=9 :print(retorno['sent_xml']) |
||||
|
if dbg>=1 :print(retorno['received_xml']) |
||||
|
|
||||
|
# retorno['object'] é um objeto python criado apartir do xml de resposta |
||||
|
if dbg>=9 :print(retorno['object']) |
||||
|
#print retorno['object'].Cabecalho.Sucesso |
||||
|
#print retorno['object'].ChaveNFeRPS.ChaveNFe.NumeroNFe |
||||
|
#print retorno['object'].ChaveNFeRPS.ChaveRPS.NumeroRPS |
||||
Write
Preview
Loading…
Cancel
Save
Reference in new issue