Advertisement
Guest User

Untitled

a guest
Jun 17th, 2019
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.36 KB | None | 0 0
  1. #!/usr/bin/env python
  2. # *-* encoding: utf8 *-*
  3.  
  4. from pynfe.processamento.comunicacao import ComunicacaoSefaz
  5. from pynfe.entidades.cliente import Cliente
  6. from pynfe.entidades.emitente import Emitente
  7. from pynfe.entidades.notafiscal import NotaFiscal
  8. from pynfe.entidades.fonte_dados import _fonte_dados
  9. from pynfe.processamento.serializacao import SerializacaoXML
  10. from pynfe.processamento.assinatura import AssinaturaA1
  11. from pynfe.utils.flags import CODIGO_BRASIL
  12. from decimal import Decimal
  13. import datetime
  14.  
  15. certificado = ""
  16. senha = ""
  17. uf = 'mt'
  18. homologacao = True
  19.  
  20. # emitente
  21. emitente = Emitente(
  22. razao_social='NF-E EMITIDA EM AMBIENTE DE HOMOLOGACAO - SEM VALOR FISCAL',
  23. nome_fantasia='Nome Fantasia da Empresa',
  24. cnpj='', # cnpj apenas números
  25. codigo_de_regime_tributario='1', # 1 para simples nacional ou 3 para normal
  26. inscricao_estadual='', # numero de IE da empresa
  27. inscricao_municipal='',
  28. cnae_fiscal='9999999', # cnae apenas números
  29. endereco_logradouro='',
  30. endereco_numero='2254',
  31. endereco_bairro='Bosque da Saúde',
  32. endereco_municipio='CUIABA',
  33. endereco_uf='MT',
  34. endereco_cep='78098970',
  35. endereco_pais=CODIGO_BRASIL
  36. )
  37.  
  38. # cliente
  39. cliente = Cliente(
  40. razao_social='MARIANA CARVALHO SILVA',
  41. tipo_documento='CPF', #CPF ou CNPJ
  42. email='email@email.com',
  43. numero_documento='12345678900', # numero do cpf ou cnpj
  44. indicador_ie=9, # 9=Não contribuinte
  45. endereco_logradouro='Rua dos Bobos',
  46. endereco_numero='Zero',
  47. endereco_complemento='Ao lado de lugar nenhum',
  48. endereco_bairro='Aquele Mesmo',
  49. endereco_municipio='Brasilia',
  50. endereco_uf='DF',
  51. endereco_cep='73015132',
  52. endereco_pais=CODIGO_BRASIL,
  53. endereco_telefone='11912341234',
  54. )
  55.  
  56. # Nota Fiscal
  57. nota_fiscal = NotaFiscal(
  58. emitente=emitente,
  59. cliente=cliente,
  60. uf='MT',
  61. natureza_operacao='VENDA', # venda, compra, transferência, devolução, etc
  62. forma_pagamento=0, # 0=Pagamento à vista; 1=Pagamento a prazo; 2=Outros.
  63. tipo_pagamento=1,
  64. modelo=55, # 55=NF-e; 65=NFC-e
  65. serie='1',
  66. numero_nf='111', # Número do Documento Fiscal.
  67. data_emissao=datetime.datetime.now(),
  68. data_saida_entrada=datetime.datetime.now(),
  69. tipo_documento=1, # 0=entrada; 1=saida
  70. municipio='4118402', # Código IBGE do Município
  71. tipo_impressao_danfe=1, # 0=Sem geração de DANFE;1=DANFE normal, Retrato;2=DANFE normal Paisagem;3=DANFE Simplificado;4=DANFE NFC-e;
  72. forma_emissao='1', # 1=Emissão normal (não em contingência);
  73. cliente_final=1, # 0=Normal;1=Consumidor final;
  74. indicador_destino=1,
  75. indicador_presencial=1,
  76. finalidade_emissao='1', # 1=NF-e normal;2=NF-e complementar;3=NF-e de ajuste;4=Devolução de mercadoria.
  77. processo_emissao='0', #0=Emissão de NF-e com aplicativo do contribuinte;
  78. transporte_modalidade_frete=1,
  79. informacoes_adicionais_interesse_fisco='Mensagem complementar',
  80. totais_tributos_aproximado=Decimal('21.06'),
  81. )
  82.  
  83. # Produto
  84. nota_fiscal.adicionar_produto_servico(
  85. codigo='000328', # id do produto
  86. descricao='Produto teste',
  87. ncm='99999999',
  88. #cest='0100100', # NT2015/003
  89. cfop='5102',
  90. unidade_comercial='UN',
  91. quantidade_comercial=Decimal('12'), # 12 unidades
  92. valor_unitario_comercial=Decimal('9.75'), # preço unitário
  93. valor_total_bruto=Decimal('117.00'), # preço total
  94. unidade_tributavel='UN',
  95. quantidade_tributavel=Decimal('12'),
  96. valor_unitario_tributavel=Decimal('9.75'),
  97. ind_total=1,
  98. icms_modalidade='102',
  99. icms_origem=0,
  100. icms_csosn='400',
  101. pis_modalidade='07',
  102. cofins_modalidade='07',
  103. valor_tributos_aprox='21.06'
  104. )
  105.  
  106. # serialização
  107. serializador = SerializacaoXML(_fonte_dados, homologacao=homologacao)
  108. nfe = serializador.exportar()
  109.  
  110. # assinatura
  111. a1 = AssinaturaA1(certificado, senha)
  112. xml = a1.assinar(nfe)
  113.  
  114. # envio
  115. con = ComunicacaoSefaz(uf, certificado, senha, homologacao)
  116. envio = con.autorizacao(modelo='nfe', nota_fiscal=xml)
  117.  
  118. # em caso de sucesso o retorno será o xml autorizado
  119. if envio[0] == 0:
  120. print("Autorizado")
  121. print (envio[1].text)
  122. # em caso de erro o retorno será o xml de resposta da SEFAZ
  123. else:
  124. print (envio[1].text)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement