From def0ca19eb67d6c326fb9de5820f250a940771d6 Mon Sep 17 00:00:00 2001 From: "jesus.lomas" <jesus.lomas@openpyme.mx> Date: Tue, 10 Sep 2024 18:00:59 -0600 Subject: [PATCH] feat(account.move): genera el XML en una factura con varios impuestos MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit En una factura con varios impuestos no se estaba generando correctamente el XML porque todos los impuestos se sumaban en una sóla lÃnea. Con este cambio se corrige ese comportamiento --- l10n_mx_facturae/models/account_move.py | 4 +++- l10n_mx_facturae/templates/account_move.xml | 5 +++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/l10n_mx_facturae/models/account_move.py b/l10n_mx_facturae/models/account_move.py index e4265bd6c7..4faaff9983 100644 --- a/l10n_mx_facturae/models/account_move.py +++ b/l10n_mx_facturae/models/account_move.py @@ -68,12 +68,14 @@ class AccountMove(models.Model): "total_locales": 0.0, } + tax_repartion_lines = self.line_ids.filtered('tax_repartition_line_id') for line in self.invoice_line_ids: for tax in line.export_invoice_line_for_xml().taxes: # Mimic logic from compute function in account.invoice.tax # object to group taxes from invoice lines and be able to get # the same result for display on CFDI - grouping_dict = self._get_tax_grouping_key_from_tax_line(line) + tax_line = tax_repartion_lines.filtered(lambda l: l.tax_line_id.id == tax.id) + grouping_dict = self._get_tax_grouping_key_from_tax_line(tax_line) grouping_key = "-".join(str(v) for v in grouping_dict.values()) if grouping_key not in tax_grouped: tax_grouped[grouping_key] = tax diff --git a/l10n_mx_facturae/templates/account_move.xml b/l10n_mx_facturae/templates/account_move.xml index cc81104eb4..a0322166ac 100644 --- a/l10n_mx_facturae/templates/account_move.xml +++ b/l10n_mx_facturae/templates/account_move.xml @@ -99,8 +99,9 @@ t-attf-Impuesto="{{ tax.xml_name }}" t-attf-Importe="{{ tax.xml_amount }}" /> </cfdi:Retenciones> - <cfdi:Traslados t-if="taxes['traslados']"> - <cfdi:Traslado t-foreach="taxes['traslados']" t-as="tax" + <cfdi:Traslados t-if="line.impuestos['traslados']"> + <t t-set="impuestos" t-value="line.impuestos"/> + <cfdi:Traslado t-foreach="impuestos['traslados']" t-as="tax" t-att-Base="format_float(tax.base, o.currency_id.decimal_places)" t-attf-Impuesto="{{ tax.xml_name }}" t-attf-TipoFactor="{{ tax.type }}" -- GitLab