-
Notifications
You must be signed in to change notification settings - Fork 180
Eventos MDF e
Leonardo Gregianin edited this page Jan 30, 2022
·
2 revisions
Exemplo de como enviar eventos do MDF-e.
from pynfe.processamento import ComunicacaoMDFe
from pynfe.processamento.serializacao import SerializacaoXML
from pynfe.processamento.assinatura import AssinaturaA1
from pynfe.entidades.evento import (
EventoCancelarNota,
EventoEncerramento,
EventoInclusaoCondutor,
EventoInclusaoDFe,
EventoInclusaoPagamento
)
from pynfe.entidades.fonte_dados import _fonte_dados
import datetime
from decimal import Decimal
# configurações gerais
certificado = ""
senha = ""
uf = 'PR'
homologacao = True
CPFCNPJ = ""
chave = ""
protocolo = ""
# instancia da classe
mdfe = ComunicacaoMDFe(uf, certificado, senha, homologacao)
cancelar = EventoCancelarNota(
cnpj=CPFCNPJ, # cpf/cnpj do emissor
chave=chave, # chave de acesso do MDFe
data_emissao=datetime.datetime.now(),
uf=uf,
protocolo=protocolo, # número do protocolo do envio do MDFe
justificativa='Erro na inclusao das informacoes do manifesto'
)
# serialização
serializador = SerializacaoXML(_fonte_dados, homologacao=homologacao)
mdfe_cancelamento = serializador.serializar_evento_mdfe(cancelar)
# assinatura
a1 = AssinaturaA1(certificado, senha)
xml = a1.assinar(mdfe_cancelamento)
envio = mdfe.evento(evento=xml)
print(envio.text)
encerrar = EventoEncerramento(
cnpj=CPFCNPJ, # cpf/cnpj do emissor
chave=chave, # chave de acesso do MDFe
data_emissao=datetime.datetime.now(),
uf=uf,
protocolo=protocolo, # número do protocolo do envio do MDFe
dtenc=datetime.datetime.now(),
cuf='51',
cmun='5103403'
)
# serialização
serializador = SerializacaoXML(_fonte_dados, homologacao=homologacao)
mdfe_encerramento = serializador.serializar_evento_mdfe(encerrar)
# assinatura
a1 = AssinaturaA1(certificado, senha)
xml = a1.assinar(mdfe_encerramento)
# transmissão
envio = mdfe.evento(evento=xml)
print(envio.text)
inclusao_condutor = EventoInclusaoCondutor(
cnpj=CPFCNPJ, # cpf/cnpj do emissor
chave=chave, # chave de acesso do MDFe
data_emissao=datetime.datetime.now(),
uf=uf,
nome_motorista='Teste',
cpf_motorista='00087355150'
)
# serialização
serializador = SerializacaoXML(_fonte_dados, homologacao=homologacao)
mdfe_inclusao_condutor = serializador.serializar_evento_mdfe(inclusao_condutor)
# assinatura
a1 = AssinaturaA1(certificado, senha)
xml = a1.assinar(mdfe_inclusao_condutor)
# transmissão
envio = mdfe.evento(evento=xml)
print(envio.text)
inclusao_dfe = EventoInclusaoDFe(
cnpj=CPFCNPJ, # cpf/cnpj do emissor
chave=chave, # chave de acesso do MDFe
data_emissao=datetime.datetime.now(),
uf=uf,
protocolo='',
cmun_carrega='5105101',
xmun_carrega='JUARA',
cmun_descarga='5105101',
xmun_descarga='JUARA',
chave_nfe=''
)
# serialização
serializador = SerializacaoXML(_fonte_dados, homologacao=homologacao)
mdfe_inclusao_dfe = serializador.serializar_evento_mdfe(inclusao_dfe)
# assinatura
a1 = AssinaturaA1(certificado, senha)
xml = a1.assinar(mdfe_inclusao_dfe)
# transmissão
envio = mdfe.evento(evento=xml)
print(envio.text)
pagamento_dfe = EventoInclusaoPagamento(
cnpj=CPFCNPJ, # cpf/cnpj do emissor
chave=chave, # chave de acesso do MDFe
data_emissao=datetime.datetime.now(),
uf=uf,
protocolo='',
qtd_viagens='1',
nro_viagens='1',
nome_contratante='Teste',
cpfcnpj_contratante='',
tpComp='01',
vComp=Decimal('100.00'),
vContrato=Decimal('100.00'),
indPag='1',
nParcela='1',
dVenc=datetime.datetime.now(),
vParcela=Decimal('100.00'),
CNPJIPEF='',
codBanco='001',
codAgencia='00214'
)
# serialização
serializador = SerializacaoXML(_fonte_dados, homologacao=homologacao)
mdfe_pagamento_dfe = serializador.serializar_evento_mdfe(pagamento_dfe)
# assinatura
a1 = AssinaturaA1(certificado, senha)
xml = a1.assinar(mdfe_pagamento_dfe)
# transmissão
envio = mdfe.evento(evento=xml)
print(envio.text)