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>
- 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.
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.
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.
- 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;
$branch ||= C4::Context->userenv->{branch};
my $manager_id = 0;
$manager_id = C4::Context->userenv->{'number'} if C4::Context->userenv;
$query = "
UPDATE accountlines SET amountoutstanding = 0
$query = "
UPDATE accountlines SET amountoutstanding = 0
- WHERE accountno = ? AND borrowernumber = ?
+ WHERE accountlines_id = ? AND borrowernumber = ?
";
$sth = $dbh->prepare( $query );
";
$sth = $dbh->prepare( $query );
- $sth->execute( $accountnum, $borrowernumber );
+ $sth->execute( $accountline_id, $borrowernumber );
$query ="
INSERT INTO accountlines
$query ="
INSERT INTO accountlines