not closing xact if it is a circ and the item is still out
authorerickson <erickson@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Wed, 28 Jun 2006 22:16:55 +0000 (22:16 +0000)
committererickson <erickson@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Wed, 28 Jun 2006 22:16:55 +0000 (22:16 +0000)
git-svn-id: svn://svn.open-ils.org/ILS/trunk@4825 dcc99617-32d9-48b4-a31d-7c20da2025e4

Open-ILS/src/perlmods/OpenILS/Application/Circ/Money.pm

index fa3e2c1..300a78c 100644 (file)
@@ -130,13 +130,19 @@ sub make_payments {
                        $trans = $session->request(
                                "open-ils.storage.direct.money.billable_transaction.retrieve", $transid )->gather(1);
 
-                       $trans->xact_finish("now");
-                       my $s = $session->request(
-                               "open-ils.storage.direct.money.billable_transaction.update", $trans )->gather(1);
+                       # If this is a circulation, we can't close the transaction unless stop_fines is set
+                       my $circ = $session->request(
+                               'open-ils.storage.direct.action.circulation.retrieve', $transid )->gather(1);
 
-                       if(!$s) { throw OpenSRF::EX::ERROR 
-                               ("Error updating billable_xact in circ.money.payment"); }
-                                       
+                       if( !$circ || $circ->stop_fines ) {
+
+                               $trans->xact_finish("now");
+                               my $s = $session->request(
+                                       "open-ils.storage.direct.money.billable_transaction.update", $trans )->gather(1);
+       
+                               if(!$s) { throw OpenSRF::EX::ERROR 
+                                       ("Error updating billable_xact in circ.money.payment"); }
+                       }
                }