[Koha-patches] [PATCH] [SIGNED-OFF] debug calculation when fines are reversed then re-payed

Katrin Fischer Katrin.Fischer.83 at web.de
Sat May 21 21:28:36 CEST 2011


From: Brice Sanchez <brice.sanchez at sys-tech.net>

Signed-off-by: Katrin Fischer <Katrin.Fischer.83 at web.de>

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



More information about the Koha-patches mailing list