From 424ecdaba42a6f124207c7ebb72ff85ca624fc49 Mon Sep 17 00:00:00 2001 From: Brice Sanchez Date: Tue, 8 Feb 2011 13:01:46 -0500 Subject: [PATCH] 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 --- C4/Accounts.pm | 56 +++++++++++++++++++++++++++++++++++--------------------- 1 files changed, 35 insertions(+), 21 deletions(-) diff --git a/C4/Accounts.pm b/C4/Accounts.pm index 3275099..334ac70 100644 --- a/C4/Accounts.pm +++ b/C4/Accounts.pm @@ -169,27 +169,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); - - # print $updquery; -# $dbh->do( " -# INSERT INTO accountoffsets -# (borrowernumber, accountno, offsetaccount, -# offsetamount) -# VALUES ($borrowernumber, $accountno, $nextaccntno, $newamtos) -# " ); - - # create new line - my $payment = 0 - $amount; - $sth = $dbh->prepare("INSERT INTO accountlines - (borrowernumber, accountno, date, amount, - description, accounttype, amountoutstanding) - VALUES (?,?,now(),?,?,'Pay',0)"); - $sth->execute($borrowernumber, $nextaccntno, $payment, "Payment,thanks - $user"); + 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. -- 1.7.4.1