From 8dbf0788687f5f09d16f12b0a9447f2add7eaddd Mon Sep 17 00:00:00 2001 From: Junior Tada Date: Fri, 19 May 2017 16:23:04 -0300 Subject: [PATCH] =?UTF-8?q?Inclu=C3=ADdo=20evento=20manifesta=C3=A7=C3=A3o?= =?UTF-8?q?=20de=20destinat=C3=A1rio?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pynfe/entidades/evento.py | 39 +++++++++++++++++++++++++++++++++++++ pynfe/processamento/serializacao.py | 4 ++-- 2 files changed, 41 insertions(+), 2 deletions(-) diff --git a/pynfe/entidades/evento.py b/pynfe/entidades/evento.py index f52c75d..ffe7410 100644 --- a/pynfe/entidades/evento.py +++ b/pynfe/entidades/evento.py @@ -76,3 +76,42 @@ class EventoCartaCorrecao(Evento): cond_uso = 'A Carta de Correcao e disciplinada pelo paragrafo 1o-A do art. 7o do Convenio S/N, de 15 de dezembro de 1970 e pode ser utilizada para regularizacao de erro ocorrido na emissao de documento fiscal, desde que o erro nao esteja relacionado com: I - as variaveis que determinam o valor do imposto tais como: base de calculo, aliquota, diferenca de preco, quantidade, valor da operacao ou da prestacao; II - a correcao de dados cadastrais que implique mudanca do remetente ou do destinatario; III - a data de emissao ou de saida.' # - xCorrecao - Correção a ser considerada, texto livre. A correção mais recente substitui as anteriores. min 15 max 1000 correcao = str() + + +class EventoManifestacaoDest(Evento): + """ Este serviço permite que o destinatário da Nota Fiscal eletrônica confirme a sua participação + na operação acobertada pela Nota Fiscal eletrônica emitida para o seu CNPJ """ + def __init__(self, *args, **kwargs): + super(EventoManifestacaoDest, self).__init__(*args, **kwargs) + # - numero da operacao + # 1=Confirmação da Operação + # 2=Ciência da Emissão + # 3=Desconhecimento da Operação + # 4=Operação não Realizada + dict_tp_evento = {1:'210200', 2:'210210', 3:'210220', 4:'210240'} + """ Código do evento + 210200 – Confirmação da Operação + 210210 – Ciência da Emissão + 210220 – Desconhecimento da Operação + 210240 – Operação não Realizada """ + self.tp_evento = dict_tp_evento[self.operacao] + # - numero da operacao + # 1=Confirmação da Operação + # 2=Ciência da Emissão + # 3=Desconhecimento da Operação + # 4=Operação não Realizada + dict_descricao = { + 1:'Confirmacao da Operacao', + 2:'Ciencia da Operacao', + 3:'Desconhecimento da Operacao', + 4:'Operacao nao Realizada'} + """ Informar a descrição do evento: + Confirmacao da Operacao + Ciencia da Operacao + Desconhecimento da Operacao + Operacao nao Realizada """ + self.descricao = dict_descricao[self.operacao] + + # - Informar a justificativa porque a operação não foi realizada, este campo deve ser informado somente no evento de Operação não Realizada. (min 15 max 255 caracteres) + justificativa = str() + \ No newline at end of file diff --git a/pynfe/processamento/serializacao.py b/pynfe/processamento/serializacao.py index 40c0347..dd49c5a 100644 --- a/pynfe/processamento/serializacao.py +++ b/pynfe/processamento/serializacao.py @@ -587,8 +587,6 @@ class SerializacaoXML(Serializacao): # timezone Brasília -03:00 tz = time.strftime("%z") tz = "{}:{}".format(tz[:-2], tz[-2:]) - #import ipdb - #ipdb.set_trace() raiz = etree.Element(tag_raiz, versao='1.00', xmlns=NAMESPACE_NFE) e = etree.SubElement(raiz, 'infEvento', Id=evento.identificador) etree.SubElement(e, 'cOrgao').text = CODIGOS_ESTADOS[evento.uf.upper()] @@ -608,6 +606,8 @@ class SerializacaoXML(Serializacao): elif evento.descricao == 'Carta de Correcao': etree.SubElement(det, 'xCorrecao').text = evento.correcao etree.SubElement(det, 'xCondUso').text = evento.cond_uso + elif evento.descricao == 'Operacao nao Realizada': + etree.SubElement(det, 'xJust').text = evento.justificativa if retorna_string: return etree.tostring(raiz, encoding="unicode", pretty_print=True)