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
When having a statement line in a foreign currency, each resulting
journal item computes the debit/credit amount from the foreign currency
rate, and then rounding the result to company currency digits.
There's a chance in this process that the journal entry final balance
is not 0 summing the rounded balances in company currency.
For fixing this, there can be several strategies, like creating an
extra journal item for the difference, but I have opted for removing
the difference in the latest counterpart aml, so no extra noise and
no need of account decision algorithm for this extra move.
As currency amounts are correct and are the ones used in reconciliation,
there won't be any problem adjusting this amount.
TT45568
When coming from previous versions of Odoo, you may have payments
directly done against the bank account. On the reconciliation widget,
they are represented as blue lines.
One possibility is to replace in all these pending entries the bank
account by the outstanding payment/receipt account, but this means to
modify past accounting that may be locked.
So this commit is restoring the ability to reconcile against these blue
lines, although this is a deprecated thing.
Things done:
- Repair the JS widget for informing correctly about the blue lines
to reconcile.
- When having such lines to reconcile, the temporary statement line is
removed, and the payment one is linked.
- When reverting reconciliation of the statement lines linked to
payments, the entry is not removed, just removed the link, and a new
entry is created for the statement line.
TT43713