mirror of
https://github.com/OCA/account-reconcile.git
synced 2025-01-20 12:27:39 +02:00
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
25 lines
840 B
Python
25 lines
840 B
Python
# Copyright 2023 Tecnativa - Pedro M. Baeza
|
|
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
|
|
|
|
from openupgradelib import openupgrade
|
|
|
|
|
|
@openupgrade.migrate()
|
|
def migrate(env, version):
|
|
"""Mitigate a bit the problem on past reconciled invoices, for being available
|
|
to be reconciled again if we press "Revert reconciliation" on the statement line.
|
|
|
|
This doesn't cover other AR/AP lines, but at least we keep data consistent for
|
|
these ones.
|
|
"""
|
|
openupgrade.logged_query(
|
|
env.cr,
|
|
"""
|
|
UPDATE account_move_line aml
|
|
SET statement_line_id = NULL, statement_id = NULL
|
|
FROM account_move am WHERE am.id = aml.move_id
|
|
AND aml.statement_line_id IS NOT NULL
|
|
AND am.move_type IN ('out_invoice', 'out_refund', 'in_invoice', 'in_refund')
|
|
""",
|
|
)
|