From 5b945d8c415aa610e4ded830825f43bd8592d109 Mon Sep 17 00:00:00 2001 From: Brice Sanchez Date: Tue, 8 Feb 2011 13:01:46 -0500 Subject: [PATCH] Bug 5713 :debug calculation when fines are reversed then re-payed Signed-off-by: Katrin Fischer I could not reproduce the calculation bug, but after applying this patch multiple pay/reverse cycles only are still only 2 lines in accountlines, which makes the display a lot less confusing. Signed-off-by: Paul Poulain Signed-off-by: Chris Cormack --- C4/Accounts.pm | 48 +++++++++++++++++++++++++++++++++++------------- 1 file changed, 35 insertions(+), 13 deletions(-) diff --git a/C4/Accounts.pm b/C4/Accounts.pm index 5ae695fe53..eea142c1df 100644 --- a/C4/Accounts.pm +++ b/C4/Accounts.pm @@ -171,19 +171,41 @@ sub makepayment { my $data = $sth->fetchrow_hashref; $sth->finish; - $sth = $dbh->prepare("UPDATE accountlines - SET amountoutstanding = 0 - WHERE borrowernumber = ? - AND accountno = ?"); - $sth->execute($borrowernumber, $accountno); - - # create new line - my $payment = 0 - $amount; - $sth = $dbh->prepare("INSERT INTO accountlines - (borrowernumber, accountno, date, amount,itemnumber, - description, accounttype, amountoutstanding, manager_id) - VALUES (?,?,now(),?,?,?,'Pay',0,?)"); - $sth->execute($borrowernumber, $nextaccntno, $payment, $data->{'itemnumber'},"Payment,thanks - $user", $manager_id); + if($data->{'accounttype'} eq "Pay"){ + my $udp = + $dbh->prepare( + "UPDATE accountlines + SET amountoutstanding = 0, description = 'Payment,thanks' + WHERE borrowernumber = ? + AND accountno = ? + " + ); + $udp->execute($borrowernumber, $accountno ); + $udp->finish; + }else{ + my $udp = + $dbh->prepare( + "UPDATE accountlines + SET amountoutstanding = 0 + WHERE borrowernumber = ? + AND accountno = ? + " + ); + $udp->execute($borrowernumber, $accountno ); + $udp->finish; + + # create new line + my $payment = 0 - $amount; + + my $ins = + $dbh->prepare( + "INSERT + INTO accountlines (borrowernumber, accountno, date, amount, description, accounttype, amountoutstanding) + VALUES ( ?, ?, now(), ?, 'Payment,thanks', 'Pay', 0)" + ); + $ins->execute($borrowernumber, $nextaccntno, $payment); + $ins->finish; + } # FIXME - The second argument to &UpdateStats is supposed to be the # branch code. -- 2.39.5