Skip to content

Commit 3d8d5a1

Browse files
committed
[FIX] account_payment_pro: sync amount when all to_pay lines are removed
- Extiende `_onchange_to_pay_lines_adjust_amount` para cubrir el caso en el que se remueven todas las líneas de deuda (sin retenciones), donde `amount` quedaba stale respecto de `to_pay_amount`. - Mantiene la lógica existente de ajuste por `payment_difference` cuando hay líneas y diferencia por tasa de hoy. - Evita un segundo onchange paralelo sobre `to_pay_move_line_ids` (alternativa al PR #1049, que introducía solapamiento de orden no determinístico con este onchange). **Change note:** Al quitar todas las líneas de deuda en una orden de pago, el importe del pago ahora se actualiza a 0 (o al monto pendiente sin reconciliar) en lugar de quedar con el valor anterior. Antes este caso solo se corregía manualmente por el usuario. Closes-Same-Issue-As: #1049 Related-Ticket: 115891
1 parent 6083a04 commit 3d8d5a1

1 file changed

Lines changed: 5 additions & 2 deletions

File tree

account_payment_pro/models/account_payment.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1004,11 +1004,14 @@ def _onchange_to_pay_lines_adjust_amount(self):
10041004
Aplica a todos los tipos de pago (clientes y proveedores).
10051005
"""
10061006
for rec in self:
1007-
if not rec.use_payment_pro or rec.state != "draft":
1007+
if not rec.use_payment_pro or rec.state != "draft" or not rec.currency_id:
10081008
continue
10091009
if not rec.to_pay_move_line_ids:
1010+
# Sin líneas: si amount quedó stale respecto de to_pay_amount, sincronizar.
1011+
if not rec.currency_id.is_zero(rec.amount - abs(rec.to_pay_amount)):
1012+
rec.amount = abs(rec.to_pay_amount)
10101013
continue
1011-
if not rec.payment_difference or not rec.currency_id:
1014+
if not rec.payment_difference:
10121015
continue
10131016
diff_in_a = rec._get_payment_difference_in_currency_a()
10141017
amount = rec.amount + diff_in_a

0 commit comments

Comments
 (0)