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

View File

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