From 6b909e0e85767f62c0c93bacdd579a8264161111 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Roc=C3=ADo=20Vega?= Date: Fri, 27 Mar 2026 11:21:47 -0300 Subject: [PATCH] [FIX] account_payment_pro: include to_pay_move_line_ids in _compute_to_pay_amount dependency --- account_payment_pro/models/account_payment.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/account_payment_pro/models/account_payment.py b/account_payment_pro/models/account_payment.py index 86d83a658..14361ad7f 100644 --- a/account_payment_pro/models/account_payment.py +++ b/account_payment_pro/models/account_payment.py @@ -565,6 +565,13 @@ def _inverse_to_pay_amount(self): ): rec.unreconciled_amount = rec.to_pay_amount - rec.selected_debt + @api.onchange("to_pay_move_line_ids") + def _onchange_to_pay_move_line_ids(self): + """Evitar que se recompute automáticamente cuando el usuario edita manualmente + el campo many2many desde la UI""" + for rec in self.filtered(lambda x: x.partner_id and x.state == "draft"): + rec.to_pay_move_line_ids = rec.to_pay_move_line_ids.filtered("partner_id") + # We dont set 'is_internal_transfer' as a dependencies as it could leed to recompute to_pay_move_line_ids @api.depends("partner_id", "partner_type", "company_id") def _compute_to_pay_move_lines(self): @@ -598,6 +605,7 @@ def _get_filter_payments(self, records, extra_fields): def _get_to_pay_move_lines_domain(self): self.ensure_one() + domain = [ ("partner_id", "=", self.partner_id.commercial_partner_id.id), ("company_id", "=", self.company_id.id), @@ -611,7 +619,7 @@ def _get_to_pay_move_lines_domain(self): "asset_receivable" if self.partner_type == "customer" else "liability_payable", ), ] - # TODO revisar bien estos, no debería ser necesario, ver el blame porque se agrego lo del active_ids + # Solo agregar active_ids si estamos en contexto de seleccionar líneas específicas if self.env.context.get("active_ids") and self.env.context.get("active_model") == "account.move.line": domain.append(("move_id.line_ids", "in", self.env.context.get("active_ids"))) return domain @@ -628,6 +636,7 @@ def action_add_all(self): def remove_all(self): self.to_pay_move_line_ids = False + self.to_pay_amount = 0.0 @api.constrains("partner_id", "to_pay_move_line_ids") def check_to_pay_lines(self):