Skip to content

Commit 145c2ba

Browse files
fw-bot-adhocpablohmontenegro
authored andcommitted
Cherry pick of fe859d2 failed
stdout: Auto-merging l10n_ar_sale/models/sale_order.py CONFLICT (content): Merge conflict in l10n_ar_sale/models/sale_order.py stderr:
1 parent 5a87371 commit 145c2ba

2 files changed

Lines changed: 13 additions & 10 deletions

File tree

l10n_ar_sale/__manifest__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "Argentinian Sale Total Fields",
3-
"version": "19.0.1.2.0",
3+
"version": "19.0.1.3.0",
44
"category": "Localization/Argentina",
55
"sequence": 14,
66
"author": "ADHOC SA",

l10n_ar_sale/models/sale_order.py

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -94,15 +94,20 @@ def is_module_installed(self, module):
9494
)
9595
return True if module_installed else False
9696

97-
@api.onchange("date_order")
97+
@api.onchange("date_order", "commercial_partner_id")
9898
def _l10n_ar_recompute_fiscal_position_taxes(self):
99-
"""Recalculamos las percepciones si cambiamos la fecha de la orden de venta. Para ello nos basamos en los
100-
impuestos de la posicion fiscal, buscamos si hay impuestos existentes para los tax groups involucrados y los
101-
reemplazamos por los nuevos impuestos.
99+
"""Recalculamos las percepciones si cambiamos la fecha de la orden de venta o el commercial partner.
100+
Para ello nos basamos en los impuestos de la posicion fiscal, buscamos si hay impuestos existentes para los tax groups involucrados y los
101+
reemplazamos por los nuevos impuestos.
102+
NO lo hacemos para el cambio de fiscal_position_id porque el onchange de fiscal_position_id implementado en sale_ux ya recomputa todos los taxes
103+
NOTA: en facturas no tenemos approach exactamente igual ya que en facturas es opcional el auto update a través del módulo
104+
account_invoice_fiscal_position_update
102105
"""
103106
for rec in self.filtered(
104-
lambda x: x.fiscal_position_id.l10n_ar_tax_ids.filtered(lambda x: x.tax_type == "perception")
105-
and x.state not in ["cancel", "sale"]
107+
lambda x: (
108+
x.fiscal_position_id.l10n_ar_tax_ids.filtered(lambda x: x.tax_type == "perception")
109+
and x.state not in ["cancel", "sale"]
110+
)
106111
):
107112
fp_tax_groups = rec.fiscal_position_id.l10n_ar_tax_ids.filtered(
108113
lambda x: x.tax_type == "perception"
@@ -112,9 +117,7 @@ def _l10n_ar_recompute_fiscal_position_taxes(self):
112117
for line in rec.order_line:
113118
to_unlink = line.tax_ids.filtered(lambda x: x.tax_group_id in fp_tax_groups)
114119
if to_unlink._origin != new_taxes:
115-
line.tax_ids = [(3, tax.id) for tax in to_unlink] + [
116-
(4, tax.id) for tax in new_taxes if tax not in line.tax_ids
117-
]
120+
line.tax_id = (line.tax_id - to_unlink) | new_taxes
118121

119122
def copy(self, default=None):
120123
"""Re computamos las percepciones al duplicar una venta porque puede ser que la orden venga de otro periodo

0 commit comments

Comments
 (0)