[Koha-patches] [PATCH] Fixed the functionality of the patron category holds fee field.

David Birmingham dbirmingham at ptfs.com
Wed May 13 21:45:47 CEST 2009


The AddReserve function was calling the GetReserveFee function in Reserves.pm
before the hold had been inserted into the reserves table.  However,
a check in GetReserveFee would always reset the holds fee to $0.00
if it didn't find the record in the reserves table.  This was always
the case.

There are also a few deletions of superfluous my statements that were
sending warnings to the error log.
---
 C4/Reserves.pm |   41 +++++++++++++++++++----------------------
 1 files changed, 19 insertions(+), 22 deletions(-)

diff --git a/C4/Reserves.pm b/C4/Reserves.pm
index 8a1109a..376a51a 100644
--- a/C4/Reserves.pm
+++ b/C4/Reserves.pm
@@ -140,8 +140,6 @@ sub AddReserve {
         $checkitem, $found
     ) = @_;    
 
-    my $fee =
-      GetReserveFee( $borrowernumber, $biblionumber, $constraint, $bibitems );
     my $dbh     = C4::Context->dbh;
     my $const   = lc substr( $constraint, 0, 1 );
     my @datearr = localtime(time);
@@ -154,22 +152,7 @@ sub AddReserve {
         $waitingdate = $resdate;
     }
 
-    #eval {
     # updates take place here
-    if ( $fee > 0 ) {
-        my $nextacctno = &getnextacctno($borrowernumber);
-        my $query      = qq/
-        INSERT INTO accountlines
-            (borrowernumber,accountno,date,amount,description,accounttype,amountoutstanding)
-        VALUES
-            (?,?,now(),?,?,'Res',?)
-    /;
-        my $usth = $dbh->prepare($query);
-        $usth->execute( $borrowernumber, $nextacctno, $fee,
-            "Reserve Charge - $title", $fee );
-    }
-
-    #if ($const eq 'a'){
     my $query = qq/
         INSERT INTO reserves
             (borrowernumber,biblionumber,reservedate,branchcode,constrainttype,
@@ -186,8 +169,22 @@ sub AddReserve {
         $found,          $waitingdate
     );
 
-    #}
-    
+    # Assign holds fee if applicable
+    my $fee =
+      GetReserveFee( $borrowernumber, $biblionumber, $constraint, $bibitems );
+    if ( $fee > 0 ) {
+        my $nextacctno = &getnextacctno($borrowernumber);
+        my $query      = qq/
+        INSERT INTO accountlines
+            (borrowernumber,accountno,date,amount,description,accounttype,amountoutstanding)
+        VALUES
+            (?,?,now(),?,?,'Res',?)
+    /;
+        my $usth = $dbh->prepare($query);
+        $usth->execute( $borrowernumber, $nextacctno, $fee,
+            "Reserve Charge - $title", $fee );
+    }
+
     UpdateStats(
       $branch,
       my $type = 'reserve',
@@ -1601,7 +1598,7 @@ sub AlterPriority {
         );
         $sth->finish;
 
-        my $sth = $dbh->prepare(
+        $sth = $dbh->prepare(
             "UPDATE reserves SET priority = ?
              WHERE biblionumber = ?
              AND borrowernumber = ?
@@ -1671,7 +1668,7 @@ sub TogglePriorityLock {
         $newLockPriority = 1;
     }
 
-    my $sth = $dbh->prepare(
+    $sth = $dbh->prepare(
         "UPDATE reserves SET lockPriority = ?, lowestPriority = ?
          WHERE biblionumber = ?
          AND borrowernumber = ?
@@ -1718,7 +1715,7 @@ sub ToggleLowestPriority {
         $newLowestPriority = 1;
     }
 
-    my $sth = $dbh->prepare(
+    $sth = $dbh->prepare(
         "UPDATE reserves SET lowestPriority = ?, lockPriority = ?
          WHERE biblionumber = ?
          AND borrowernumber = ?
-- 
1.5.6.5




More information about the Koha-patches mailing list