[FIX] account_reconciliation_widget: Don't link counterpart to the statement line

Steps to reproduce the problem:

- Issue an invoice.
- Add a bank statement for paying such invoice.
- Reconcile the statement with the invoice. It gets paid.
- Revert reconciliation from the statement.
- Go again to reconcile the statement line.

Expected behavior: The invoice is available to be reconciled again.

Current behavior: The invoice is not available.

That's because the move line of the AR/AP account was linked to the
statement line in the reconciliation process through the field
`statement_line_id`. That field is used for linking the generated
move lines to the generating statement line, not for other things.

This is probably a bad migration from v13 original code to v14, where
the reconciliation and the datamodel changed.

It includes a migration script that mitigates a bit the problem on
past reconciled invoices, removing such link. It doesn't cover other
AR/AP lines, but at least we keep data consistent for these ones.

TT46644
This commit is contained in:
Pedro M. Baeza
2023-12-27 11:26:08 +01:00
parent a7346b67b0
commit 427e66abec
5 changed files with 27 additions and 5 deletions

View File

@@ -227,8 +227,6 @@ class AccountBankStatementLine(models.Model):
# Create counterpart move lines and reconcile them
aml_to_reconcile = []
for aml_dict in counterpart_aml_dicts:
if not aml_dict["move_line"].statement_line_id:
aml_dict["move_line"].write({"statement_line_id": self.id})
if aml_dict["move_line"].partner_id.id:
aml_dict["partner_id"] = aml_dict["move_line"].partner_id.id
aml_dict["account_id"] = aml_dict["move_line"].account_id.id