You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Two payments of the same invoice in one statement import make the whole import fail #9
Invoice for 100, then one import with two 100 lines quoting its VS. The second reconcile raises "already reconciled" and nothing from the import is saved. Since Fio pulls the same lines again, I think it would keep failing. Tracking what earlier lines in the batch already took fixes it.
Confirmed and fixed in 792f382 (l10n_cssk_payment_symbols_oca).
As you found: OCA's create() proposes a counterpart for every line of the batch and only then reconciles them, so both lines were given the invoice's full residual. The second reconcile_bank_line() raised already reconciled, and since that happens inside create(), the whole import was rolled back, on every re-pull.
The VS pass now tracks what earlier lines of the same import will reconcile, and a line proposes only what's left open:
100 + 100 against a 100 invoice: the first pays it, the second is left for a person (it isn't handed to OCA's own matcher either, which would propose the same item again);
60 + 40: both reconcile, the invoice is paid;
60 + 100: the first reconciles, the second is proposed for the remaining 40 and waits for a person.
Only a line that will actually be reconciled claims anything. An overpayment that is merely proposed takes nothing from an exact payment later in the same file. The import itself never fails on this any more.
This is the OCA bridge. The Enterprise bridge (l10n_cssk_payment_symbols_ee) reconciles line by line and re-searches open items each time, so it shouldn't have this problem, but I haven't run it.
Activity
sync: l10n_cssk@8949f588
Rad0van commentedon Oct 24, 2026
Confirmed and fixed in 792f382 (
l10n_cssk_payment_symbols_oca).As you found: OCA's
create()proposes a counterpart for every line of the batch and only then reconciles them, so both lines were given the invoice's full residual. The secondreconcile_bank_line()raised already reconciled, and since that happens insidecreate(), the whole import was rolled back, on every re-pull.The VS pass now tracks what earlier lines of the same import will reconcile, and a line proposes only what's left open:
Only a line that will actually be reconciled claims anything. An overpayment that is merely proposed takes nothing from an exact payment later in the same file. The import itself never fails on this any more.
This is the OCA bridge. The Enterprise bridge (
l10n_cssk_payment_symbols_ee) reconciles line by line and re-searches open items each time, so it shouldn't have this problem, but I haven't run it.sync: l10n_cssk@8949f588