Josef Moravec <> changed:

           What    |Removed                     |Added
  Attachment #73516|0                           |1
        is obsolete|                            |

--- Comment #6 from Josef Moravec <> ---
Created attachment 73599
Bug 20325: C4::Accounts::purge_zero_balance_fees does not check account_offsets

purge_zero_balance_fees is used in to determine which fees
can be cleaned up.

It uses a simple SQL query to determine which rows in accountlines need to be

463     my $sth = $dbh->prepare(
464         q{
465             DELETE FROM accountlines
466             WHERE date < date_sub(curdate(), INTERVAL ? DAY)
467               AND ( amountoutstanding = 0 or amountoutstanding IS NULL );
468         }

The function comes with the following warning:

451 B<Warning:> Because fines and payments are not linked in accountlines, it
452 possible for a fine to be deleted without the accompanying payment,
453 or vise versa. This won't affect the account balance, but might be
454 confusing to staff.

This was a reasonable solution prior to the addition of account_offsets in
17.11. The problem now is that rows in accountlines which are linked as credits
in accountlines will *always* have amountoutstanding marked as 0. These are
linked to debits via account_offsets. purge_zero_balance_fees will delete
credits and leave rows in account_offsets which link to deleted credits.

Sites using the --fees option which upgrade to 17.11 may
have all of their credits removed without warning.

Test Plan:
1) Apply this patch
2) prove t/db_dependent/Accounts.t

Signed-off-by: Katrin Fischer <>

Signed-off-by: Josef Moravec <>

You are receiving this mail because:
You are watching all bug changes.
Koha-bugs mailing list
website :
git :
bugs :

Reply via email to