From aba730cbac907f5e139ffaf6b0d6eb5d2bcf69a3 Mon Sep 17 00:00:00 2001 From: Martin Renvoize Date: Thu, 1 Nov 2018 14:55:15 +0000 Subject: [PATCH] Bug 21747: Use Koha::Account:: routines in UpdateFine Set to use Koha::Account->add_debit and Koha::Account::Line->adjust Known Side Effect: Prior to this patch fines did not set an 'action' in the FineLog when FinsLog is enabled. After this patch, if the FinesLog is enabled then the 'action' will be recorded as `create_fine`. Signed-off-by: Josef Moravec --- C4/Overdues.pm | 64 ++++++++++---------------------------------------- 1 file changed, 12 insertions(+), 52 deletions(-) diff --git a/C4/Overdues.pm b/C4/Overdues.pm index 98e7bbffd4..7f0394f720 100644 --- a/C4/Overdues.pm +++ b/C4/Overdues.pm @@ -578,28 +578,7 @@ sub UpdateFine { # (i.e. , of accounttype 'FU'). Doing so will break accrual. if ( $data->{'amount'} != $amount ) { my $accountline = Koha::Account::Lines->find( $data->{accountlines_id} ); - my $diff = $amount - $data->{'amount'}; - - #3341: diff could be positive or negative! - my $out = $data->{'amountoutstanding'} + $diff; - - $accountline->set( - { - date => dt_from_string(), - amount => $amount, - amountoutstanding => $out, - lastincrement => $diff, - accounttype => 'FU', - } - )->store(); - - Koha::Account::Offset->new( - { - debit_id => $accountline->id, - type => 'Fine Update', - amount => $diff, - } - )->store(); + $accountline->adjust({ amount => $amount, type => 'fine_increment' }); } } else { if ( $amount ) { # Don't add new fines with an amount of 0 @@ -608,42 +587,23 @@ sub UpdateFine { ); $sth4->execute($itemnum); my $title = $sth4->fetchrow; - - my $nextaccntno = C4::Accounts::getnextacctno($borrowernumber); - my $desc = "$title $due"; - my $accountline = Koha::Account::Line->new( - { - borrowernumber => $borrowernumber, - itemnumber => $itemnum, - date => dt_from_string(), - amount => $amount, - description => $desc, - accounttype => 'FU', - amountoutstanding => $amount, - lastincrement => $amount, - accountno => $nextaccntno, - issue_id => $issue_id, - } - )->store(); - - Koha::Account::Offset->new( + my $account = Koha::Account->new({ patron_id => $borrowernumber }); + my $accountline = $account->add_debit( { - debit_id => $accountline->id, - type => 'Fine', - amount => $amount, + amount => $amount, + description => $desc, + note => undef, + user_id => undef, + library_id => undef, + type => 'fine', + item_id => $itemnum, + issue_id => $issue_id, } - )->store(); + ); } } - # logging action - &logaction( - "FINES", - undef, - $borrowernumber, - "due=".$due." amount=".$amount." itemnumber=".$itemnum - ) if C4::Context->preference("FinesLog"); } =head2 BorType -- 2.19.2