From 46712364e3d40d4ed2126310c04e0750bd25e11e Mon Sep 17 00:00:00 2001 From: Brice Sanchez Date: Tue, 8 Feb 2011 13:01:46 -0500 Subject: [PATCH] [SIGNED-OFF] debug calculation when fines are reversed then re-payed Content-Type: text/plain; charset="utf-8" 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. --- C4/Accounts.pm | 60 ++++++++++++++++++++++++++++++++----------------------- 1 files changed, 35 insertions(+), 25 deletions(-) diff --git a/C4/Accounts.pm b/C4/Accounts.pm index 32054f4..b95ffd4 100644 --- a/C4/Accounts.pm +++ b/C4/Accounts.pm @@ -169,31 +169,41 @@ sub makepayment { my $data = $sth->fetchrow_hashref; $sth->finish; - $dbh->do( - "UPDATE accountlines - SET amountoutstanding = 0 - WHERE borrowernumber = $borrowernumber - AND accountno = $accountno - " - ); - - # print $updquery; -# $dbh->do( " -# INSERT INTO accountoffsets -# (borrowernumber, accountno, offsetaccount, -# offsetamount) -# VALUES ($borrowernumber, $accountno, $nextaccntno, $newamtos) -# " ); - - # create new line - my $payment = 0 - $amount; - $dbh->do( " - INSERT INTO accountlines - (borrowernumber, accountno, date, amount, - description, accounttype, amountoutstanding) - VALUES ($borrowernumber, $nextaccntno, now(), $payment, - 'Payment,thanks - $user', 'Pay', 0) - " ); + 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