[FIX] account_reconcile_oca: Don't apply max_amount on intermediate counterparts

Steps to reproduce:

- Have 3 or more items to reconcile. Example: 200, -350, 150.
- One of the intermediate items should be higher than the current
  running balance.
- Select all the items, and click on Action > Reconcile.

Current behavior:

The second item appears with its amount strike-throughed (and putting
the current runnning balance as the amount to reconcile).

Expected behavior:

Only strike-through the amount if the last balance is not matching
the amount.

The solution to this is to only put a maximum amount when checking
the reconciliability of the last line of the counterparts.

TT50888
This commit is contained in:
Pedro M. Baeza
2024-09-20 21:55:24 +02:00
parent 9dc6f3669a
commit 687f4ffa56

View File

@@ -162,8 +162,9 @@ class AccountAccountReconcile(models.Model):
counterparts = data["counterparts"]
amount = 0.0
for line_id in counterparts:
max_amount = amount if line_id == counterparts[-1] else 0
lines = self._get_reconcile_line(
self.env["account.move.line"].browse(line_id), "other", True, amount
self.env["account.move.line"].browse(line_id), "other", True, max_amount
)
new_data["data"] += lines
amount += sum(line["amount"] for line in lines)