Browse Source

Bug 9122: fix the problem when writing-off a fine

The problem was introduced by the addition of accountlines_id in bug 7671

The WriteOffFee sub was called with accountlines_id as second parameter
but still dealing with the accountno column.

As a result, the UPDATE was failing (updating nothing), and the fine
note written off even if the writeoff itself was saved. In other words:
the writeoff was not "attached" to the fine.

This patch fixes the problem.

Test plan: do what katrin says in initial description of the problem:
- add some fines manually, I did 'new card' and sundry
- try writing off all of them or one of them
- the fine is correctly written off

Signed-off-by: Jared Camins-Esakov <jcamins@cpbibliography.com>
Passed-QA-by: Jonathan Druart <jonathan.druart@biblibre.com>
Signed-off-by: Jared Camins-Esakov <jcamins@cpbibliography.com>
3.12.x
Paul Poulain 12 years ago
committed by Jared Camins-Esakov
parent
commit
ab159bd8a2
  1. 12
      C4/Accounts.pm

12
C4/Accounts.pm

@ -768,13 +768,13 @@ sub makepartialpayment {
return;
}
=head2 WriteOff
=head2 WriteOffFee
WriteOff( $borrowernumber, $accountnum, $itemnum, $accounttype, $amount, $branch );
WriteOff( $borrowernumber, $accountline_id, $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<$accountline_id> is the accountline_id 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.
@ -783,7 +783,7 @@ C<$branch> is the branchcode of the library where the writeoff occurred.
=cut
sub WriteOffFee {
my ( $borrowernumber, $accountnum, $itemnum, $accounttype, $amount, $branch ) = @_;
my ( $borrowernumber, $accountline_id, $itemnum, $accounttype, $amount, $branch ) = @_;
$branch ||= C4::Context->userenv->{branch};
my $manager_id = 0;
$manager_id = C4::Context->userenv->{'number'} if C4::Context->userenv;
@ -796,10 +796,10 @@ sub WriteOffFee {
$query = "
UPDATE accountlines SET amountoutstanding = 0
WHERE accountno = ? AND borrowernumber = ?
WHERE accountlines_id = ? AND borrowernumber = ?
";
$sth = $dbh->prepare( $query );
$sth->execute( $accountnum, $borrowernumber );
$sth->execute( $accountline_id, $borrowernumber );
$query ="
INSERT INTO accountlines

Loading…
Cancel
Save