[FIX] account_reconcile_oca: Use counterparts properly

pull/640/head
Enric Tobella 2024-03-22 10:49:32 +01:00
parent 6ef32f8575
commit 8dc6135948
2 changed files with 12 additions and 10 deletions

View File

@ -130,7 +130,9 @@ class AccountBankStatementLine(models.Model):
for line in data:
if line["kind"] != "suspense":
pending_amount += line["amount"]
if line.get("counterpart_line_id") == self.add_account_move_line_id.id:
if self.add_account_move_line_id.id in line.get(
"counterpart_line_ids", []
):
is_new_line = False
else:
new_data.append(line)
@ -161,8 +163,8 @@ class AccountBankStatementLine(models.Model):
suspense_line = False
counterparts = []
for line in data:
if line.get("counterpart_line_id"):
counterparts.append(line["counterpart_line_id"])
if line.get("counterpart_line_ids"):
counterparts += line["counterpart_line_ids"]
if (
line["account_id"][0] == self.journal_id.suspense_account_id.id
or not line["account_id"][0]
@ -524,10 +526,10 @@ class AccountBankStatementLine(models.Model):
)
.create(self._reconcile_move_line_vals(line_vals))
)
if line_vals.get("counterpart_line_id"):
if line_vals.get("counterpart_line_ids"):
to_reconcile.append(
self.env["account.move.line"].browse(
line_vals.get("counterpart_line_id")
line_vals.get("counterpart_line_ids")
)
+ line
)
@ -590,10 +592,10 @@ class AccountBankStatementLine(models.Model):
.with_context(check_move_validity=False, skip_invoice_sync=True)
.create(self._reconcile_move_line_vals(line_vals, move.id))
)
if line_vals.get("counterpart_line_id") and line.account_id.reconcile:
if line_vals.get("counterpart_line_ids") and line.account_id.reconcile:
to_reconcile[line.account_id.id] |= (
self.env["account.move.line"].browse(
line_vals.get("counterpart_line_id")
line_vals.get("counterpart_line_ids")
)
| line
)

View File

@ -86,10 +86,10 @@ class AccountReconcileAbstract(models.AbstractModel):
vals.update(
{
"id": False,
"counterpart_line_id": (
"counterpart_line_ids": (
line.matched_debit_ids.mapped("debit_move_id")
| line.matched_credit_ids.mapped("credit_move_id")
).id,
).ids,
}
)
if not float_is_zero(
@ -98,5 +98,5 @@ class AccountReconcileAbstract(models.AbstractModel):
vals["original_amount"] = abs(original_amount)
vals["original_amount_unsigned"] = original_amount
if is_counterpart:
vals["counterpart_line_id"] = line.id
vals["counterpart_line_ids"] = line.ids
return vals