X-Git-Url: http://koha-dev.rot13.org:8081/gitweb/?a=blobdiff_plain;f=C4%2FAccounts.pm;h=b7aef01ec8b49962a909f082fa8eb6d736d2ce87;hb=d5542514d22ca5b9fc6bfb4fb8b6db61e3a512b5;hp=c3d121d8822bb83ab87fa6e5298ae24428d3ee3c;hpb=6f6bfb8aff59ae10b4bf7e8d4bdcb31c5b269458;p=koha_gimpoz diff --git a/C4/Accounts.pm b/C4/Accounts.pm index c3d121d882..b7aef01ec8 100644 --- a/C4/Accounts.pm +++ b/C4/Accounts.pm @@ -33,12 +33,20 @@ BEGIN { require Exporter; @ISA = qw(Exporter); @EXPORT = qw( - &recordpayment &makepayment &manualinvoice - &getnextacctno &reconcileaccount &getcharges &ModNote &getcredits - &getrefunds &chargelostitem + &recordpayment + &makepayment + &manualinvoice + &getnextacctno + &reconcileaccount + &getcharges + &ModNote + &getcredits + &getrefunds + &chargelostitem &ReversePayment - makepartialpayment - recordpayment_selectaccts + &makepartialpayment + &recordpayment_selectaccts + &WriteOffFee ); } @@ -756,7 +764,51 @@ sub makepartialpayment { return; } +=head2 WriteOff + WriteOff( $borrowernumber, $accountnum, $itemnum, $accounttype, $amount, $branch ); + +Write off a fine for a patron. +C<$borrowernumber> is the patron's borrower number. +C<$accountnum> is the accountnumber of the fee to write off. +C<$itemnum> is the itemnumber of of item whose fine is being written off. +C<$accounttype> is the account type of the fine being written off. +C<$amount> is a floating-point number, giving the amount that is being written off. +C<$branch> is the branchcode of the library where the writeoff occurred. + +=cut + +sub WriteOffFee { + my ( $borrowernumber, $accountnum, $itemnum, $accounttype, $amount, $branch ) = @_; + $branch ||= C4::Context->userenv->{branch}; + my $manager_id = 0; + $manager_id = C4::Context->userenv->{'number'} if C4::Context->userenv; + + # if no item is attached to fine, make sure to store it as a NULL + $itemnum ||= undef; + + my ( $sth, $query ); + my $dbh = C4::Context->dbh(); + + $query = " + UPDATE accountlines SET amountoutstanding = 0 + WHERE accountno = ? AND borrowernumber = ? + "; + $sth = $dbh->prepare( $query ); + $sth->execute( $accountnum, $borrowernumber ); + + $query =" + INSERT INTO accountlines + ( borrowernumber, accountno, itemnumber, date, amount, description, accounttype, manager_id ) + VALUES ( ?, ?, ?, NOW(), ?, 'Writeoff', 'W', ? ) + "; + $sth = $dbh->prepare( $query ); + my $acct = getnextacctno($borrowernumber); + $sth->execute( $borrowernumber, $acct, $itemnum, $amount, $manager_id ); + + UpdateStats( $branch, 'writeoff', $amount, q{}, q{}, q{}, $borrowernumber ); + +} END { } # module clean-up code here (global destructor)