From 3076479f7a905fd9f67ad813cbdcb4a9eda37f92 Mon Sep 17 00:00:00 2001 From: Martin Renvoize Date: Thu, 1 Nov 2018 12:26:35 +0000 Subject: [PATCH] Bug 21722: Use Koha::Account->add_debit in chargelostitem --- C4/Accounts.pm | 92 ++++++++++++-------------------------------------- 1 file changed, 21 insertions(+), 71 deletions(-) diff --git a/C4/Accounts.pm b/C4/Accounts.pm index f03752c543..0973eb2c76 100644 --- a/C4/Accounts.pm +++ b/C4/Accounts.pm @@ -108,12 +108,13 @@ sub chargelostitem{ if ($usedefaultreplacementcost && $amount == 0 && $defaultreplacecost){ $replacementprice = $defaultreplacecost; } + + my $account = Koha::Account->new({ patron_d => $borrowernumber } ); # first make sure the borrower hasn't already been charged for this item # FIXME this should be more exact # there is no reason a user can't lose an item, find and return it, and lost it again - my $existing_charges = Koha::Account::Lines->search( + my $existing_charges = $account->lines->search( { - borrowernumber => $borrowernumber, itemnumber => $itemnumber, accounttype => 'L', } @@ -123,82 +124,31 @@ sub chargelostitem{ unless ($existing_charges) { #add processing fee if ($processfee && $processfee > 0){ - my $accountline = Koha::Account::Line->new( - { - borrowernumber => $borrowernumber, - accountno => getnextacctno($borrowernumber), - date => \'NOW()', - amount => $processfee, - description => $description, - accounttype => 'PF', - amountoutstanding => $processfee, - itemnumber => $itemnumber, - note => $processingfeenote, - manager_id => C4::Context->userenv ? C4::Context->userenv->{'number'} : 0, - } - )->store(); - - my $account_offset = Koha::Account::Offset->new( + my $accountline = $account->add_debit( { - debit_id => $accountline->id, - type => 'Processing Fee', - amount => $accountline->amount, + amount => $processfee, + description => $description, + note => $processingfeenote, + user_id => C4::Context->userenv ? C4::Context->userenv->{'number'} : 0, + library_id => C4::Context->userenv ? C4::Context->userenv->{'branch'} : undef, + type => 'processing', + item_id => $itemnumber, } - )->store(); - - if ( C4::Context->preference("FinesLog") ) { - logaction("FINES", 'CREATE',$borrowernumber,Dumper({ - action => 'create_fee', - borrowernumber => $accountline->borrowernumber,, - accountno => $accountline->accountno, - amount => $accountline->amount, - description => $accountline->description, - accounttype => $accountline->accounttype, - amountoutstanding => $accountline->amountoutstanding, - note => $accountline->note, - itemnumber => $accountline->itemnumber, - manager_id => $accountline->manager_id, - })); - } + ); } #add replace cost if ($replacementprice > 0){ - my $accountline = Koha::Account::Line->new( - { - borrowernumber => $borrowernumber, - accountno => getnextacctno($borrowernumber), - date => \'NOW()', - amount => $replacementprice, - description => $description, - accounttype => 'L', - amountoutstanding => $replacementprice, - itemnumber => $itemnumber, - manager_id => C4::Context->userenv ? C4::Context->userenv->{'number'} : 0, - } - )->store(); - - my $account_offset = Koha::Account::Offset->new( + my $accountline = $account->add_debit( { - debit_id => $accountline->id, - type => 'Lost Item', - amount => $accountline->amount, + amount => $replacementprice, + description => $description, + note => undef, + user_id => C4::Context->userenv ? C4::Context->userenv->{'number'} : 0, + library_id => C4::Context->userenv ? C4::Context->userenv->{'branch'} : undef, + type => 'lost_item', + item_id => $itemnumber, } - )->store(); - - if ( C4::Context->preference("FinesLog") ) { - logaction("FINES", 'CREATE',$borrowernumber,Dumper({ - action => 'create_fee', - borrowernumber => $accountline->borrowernumber,, - accountno => $accountline->accountno, - amount => $accountline->amount, - description => $accountline->description, - accounttype => $accountline->accounttype, - amountoutstanding => $accountline->amountoutstanding, - note => $accountline->note, - itemnumber => $accountline->itemnumber, - manager_id => $accountline->manager_id, - })); - } + ); } } } -- 2.19.1