From 5eef753a7e909278db309545488397ee35012c37 Mon Sep 17 00:00:00 2001 From: El Mau Date: Thu, 23 Mar 2023 21:19:56 -0600 Subject: [PATCH 1/2] Fix in Reg ID --- source/helper/util.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/source/helper/util.py b/source/helper/util.py index 9e15f21..f91b15c 100644 --- a/source/helper/util.py +++ b/source/helper/util.py @@ -358,7 +358,7 @@ class DictToCfdi(): node_name = f"{{{self._COMERCIO['xmlns']}}}Receptor" attr = {} if 'NumRegIdTrib' in receptor: - attr = {'NumRegIdTrib': emisor.pop('NumRegIdTrib')} + attr = {'NumRegIdTrib': receptor.pop('NumRegIdTrib')} node_receptor = ET.SubElement(node_comercio, node_name, attr) node_name = f"{{{self._COMERCIO['xmlns']}}}Domicilio" @@ -607,6 +607,7 @@ class DataToDict(): taxes = {} traslados = [] retenciones = [] + for i in range(0, len(data), 6): type_tax = data[i] tax = { @@ -615,9 +616,9 @@ class DataToDict(): 'TipoFactor': data[i + 3], } if data[i + 4]: - tax['TasaOCuota'] : data[i + 4] + tax['TasaOCuota'] = data[i + 4] if data[i + 5]: - tax['Importe'] : data[i + 5] + tax['Importe'] = data[i + 5] if type_tax == self.TRASLADO: traslados.append(tax) @@ -627,6 +628,7 @@ class DataToDict(): taxes['traslados'] = traslados if retenciones: taxes['retenciones'] = retenciones + return taxes def _conceptos(self, data): From 3774bd144722c956974fee2b0d7b477a518cc868 Mon Sep 17 00:00:00 2001 From: El Mau Date: Mon, 27 Mar 2023 10:32:03 -0600 Subject: [PATCH 2/2] Fix in taxes for related documents --- source/helper/util.py | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/source/helper/util.py b/source/helper/util.py index f91b15c..04365d2 100644 --- a/source/helper/util.py +++ b/source/helper/util.py @@ -294,19 +294,20 @@ class DictToCfdi(): for i, doc in enumerate(docs): node_name = f"{{{self._PAGOS['xmlns']}}}DoctoRelacionado" node_doc = ET.SubElement(node_pago, node_name, doc) - if taxesd: + if taxesd[i]: + doc_taxes = taxesd[i] node_name = f"{{{self._PAGOS['xmlns']}}}ImpuestosDR" node_taxes_doc = ET.SubElement(node_doc, node_name) - if 'retenciones' in taxesd: + if 'retenciones' in doc_taxes: node_name = f"{{{self._PAGOS['xmlns']}}}RetencionesDR" node_taxes_dr = ET.SubElement(node_taxes_doc, node_name) - for r in taxesd['retenciones']: + for r in doc_taxes['retenciones']: node_name = f"{{{self._PAGOS['xmlns']}}}RetencionDR" ET.SubElement(node_taxes_dr, node_name, r) - if 'traslados' in taxesd: + if 'traslados' in doc_taxes: node_name = f"{{{self._PAGOS['xmlns']}}}TrasladosDR" node_taxes_dt = ET.SubElement(node_taxes_doc, node_name) - for t in taxesd['traslados']: + for t in doc_taxes['traslados']: node_name = f"{{{self._PAGOS['xmlns']}}}TrasladoDR" ET.SubElement(node_taxes_dt, node_name, t) @@ -742,7 +743,7 @@ class DataToDict(): self._cfdi['complementos']['pagos'] = version self._cfdi['complementos']['pagos']['docs'] = [] self._cfdi['complementos']['pagos']['taxes'] = {} - self._cfdi['complementos']['pagos']['taxesd'] = {} + self._cfdi['complementos']['pagos']['taxesd'] = [] elif self._complement == '2': self._cfdi['complementos']['comercio'] = version @@ -960,7 +961,7 @@ class DataToDict(): if self._complement == '1': attr = self._get_taxes_by_doc(data) - self._cfdi['complementos']['pagos']['taxesd'] = attr + self._cfdi['complementos']['pagos']['taxesd'].append(attr) elif self._complement == '2': fields = ( 'NoIdentificacion',