From 1f5645cf8ef54786b31d104281af27d1d6d50e69 Mon Sep 17 00:00:00 2001 From: carcaroff Date: Thu, 29 Mar 2018 18:24:59 -0300 Subject: [PATCH] [FEAT][10.0]Cancelado no DANFE # Conflicts: # setup.py --- pytrustnfe/nfe/danfe.py | 12 ++++++++++++ pytrustnfe/utils.py | 13 +++++++++++++ 2 files changed, 25 insertions(+) diff --git a/pytrustnfe/nfe/danfe.py b/pytrustnfe/nfe/danfe.py index 001810a..73a0355 100644 --- a/pytrustnfe/nfe/danfe.py +++ b/pytrustnfe/nfe/danfe.py @@ -191,6 +191,8 @@ class danfe(object): ".//{http://www.portalfiscal.inf.br/nfe}protNFe") elem_emit = oXML.find(".//{http://www.portalfiscal.inf.br/nfe}emit") elem_ide = oXML.find(".//{http://www.portalfiscal.inf.br/nfe}ide") + elem_evento = oXML.find( + ".//{http://www.portalfiscal.inf.br/nfe}infEvento") cChave = elem_infNFe.attrib.get('Id')[3:] barcode128 = code128.Code128( @@ -318,6 +320,16 @@ class danfe(object): self.string(self.nLeft + 65, 449, 'SEM VALOR FISCAL') self.canvas.restoreState() + # Cancelado + if tagtext(oNode=elem_evento, cTag='xEvento') == \ + 'Cancelamento registrado': + self.canvas.saveState() + self.canvas.rotate(45) + self.canvas.setFont('NimbusSanL-Bold', 60) + self.canvas.setFillColorRGB(1, 0.2, 0.2) + self.string(self.nLeft + 80, 275, 'CANCELADO') + self.canvas.restoreState() + self.nlin += 48 def destinatario(self, oXML=None): diff --git a/pytrustnfe/utils.py b/pytrustnfe/utils.py index 4eff0a0..17c1a45 100644 --- a/pytrustnfe/utils.py +++ b/pytrustnfe/utils.py @@ -96,3 +96,16 @@ def gerar_nfeproc(envio, recibo): root.append(nfe) root.append(protocolo) return ET.tostring(root) + + +def gerar_nfeproc_cancel(nfe_proc, cancelamento): + import ipdb + ipdb.set_trace() + docEnvio = ET.fromstring(nfe_proc) + docCancel = ET.fromstring(cancelamento) + + ev_cancelamento = _find_node(docCancel, "retEvento") + if ev_cancelamento is None: + return '' + docEnvio.append(ev_cancelamento) + return ET.tostring(docEnvio)