From 1621ddffac74493224344f04557aa500546862dc Mon Sep 17 00:00:00 2001 From: Martin Renvoize Date: Thu, 18 Apr 2019 09:44:01 +0100 Subject: [PATCH] Bug 22200: Add credit when forgiving overdue Prior to this patch the exemptfine option for_FixOverduesOnReturn would directly set the overdue amount to 0 rather than creating an appropriate credit of the type forgiven and offseting it against the debt. --- C4/Circulation.pm | 28 +++++++++++++++++----------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/C4/Circulation.pm b/C4/Circulation.pm index c93ee3d302..12e8382f50 100644 --- a/C4/Circulation.pm +++ b/C4/Circulation.pm @@ -2329,29 +2329,35 @@ sub _FixOverduesOnReturn { } # check for overdue fine - my $accountline = Koha::Account::Lines->search( + my $accountlines = Koha::Account::Lines->search( { borrowernumber => $borrowernumber, itemnumber => $item, accounttype => 'OVERDUE', status => 'UNRETURNED' } - )->next(); - return 0 unless $accountline; # no warning, there's just nothing to fix + ); + return 0 unless $accountlines->count; # no warning, there's just nothing to fix + my $accountline = $accountlines->next; if ($exemptfine) { my $amountoutstanding = $accountline->amountoutstanding; - $accountline->status('FORGIVEN'); - $accountline->amountoutstanding(0); - - Koha::Account::Offset->new( + my $account = Koha::Account->new({patron_id => $borrowernumber}); + my $credit = $account->add_credit( { - debit_id => $accountline->id, - type => 'Forgiven', - amount => $amountoutstanding * -1, + amount => $amountoutstanding, + user_id => C4::Context->userenv ? C4::Context->userenv->{'number'} : undef, + library_id => C4::Context->userenv ? C4::Context->userenv->{'branch'} : undef, + interface => C4::Context->interface, + type => 'forgiven', + item_id => $item } - )->store(); + ); + + $credit->apply({ debits => $accountlines, offset_type => 'Forgiven' }); + + $accountline->status('FORGIVEN'); if (C4::Context->preference("FinesLog")) { &logaction("FINES", 'MODIFY',$borrowernumber,"Overdue forgiven: item $item"); -- 2.20.1