Bug 6716 - Statistics Table Documentation
[koha_gimpoz] / C4 / Accounts.pm
index 32054f4..eea142c 100644 (file)
@@ -158,6 +158,8 @@ sub makepayment {
     # from their card, and put a note on the item record
     my ( $borrowernumber, $accountno, $amount, $user, $branch ) = @_;
     my $dbh = C4::Context->dbh;
+    my $manager_id = 0;
+    $manager_id = C4::Context->userenv->{'number'} if C4::Context->userenv; 
 
     # begin transaction
     my $nextaccntno = getnextacctno($borrowernumber);
@@ -169,38 +171,48 @@ 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.
     # UpdateStats is now being passed $accountno too. MTJ
     UpdateStats( $user, 'payment', $amount, '', '', '', $borrowernumber,
         $accountno );
-    $sth->finish;
+    #from perldoc: for SELECT only #$sth->finish;
 
     #check to see what accounttype
     if ( $data->{'accounttype'} eq 'Rep' || $data->{'accounttype'} eq 'L' ) {