Bug 9367: Followup: Code optimization: CheckReserves is too often called
[koha.git] / C4 / Circulation.pm
index 063a409..abd4981 100644 (file)
@@ -831,8 +831,7 @@ sub CanBookBeIssued {
     #
     # ITEM CHECKING
     #
-    if (   $item->{'notforloan'}
-        && $item->{'notforloan'} > 0 )
+    if ( $item->{'notforloan'} )
     {
         if(!C4::Context->preference("AllowNotForLoanOverride")){
             $issuingimpossible{NOT_FOR_LOAN} = 1;
@@ -840,7 +839,7 @@ sub CanBookBeIssued {
             $needsconfirmation{NOT_FOR_LOAN_FORCING} = 1;
         }
     }
-    elsif ( !$item->{'notforloan'} ){
+    els{
         # we have to check itemtypes.notforloan also
         if (C4::Context->preference('item-level_itypes')){
             # this should probably be a subroutine
@@ -2474,20 +2473,18 @@ sub CanBookBeRenewed {
 
     $sthcount->execute( $borrowernumber, $itemnumber );
     if ( my $data1 = $sthcount->fetchrow_hashref ) {
-        
         if ( ( $data1->{renewalsallowed} && $data1->{renewalsallowed} > $data1->{renewals} ) || $override_limit ) {
             $renewokay = 1;
         }
         else {
-                       $error="too_many";
-               }
-               
-        my ( $resfound, $resrec, undef ) = C4::Reserves::CheckReserves($itemnumber);
-        if ($resfound) {
-            $renewokay = 0;
-                       $error="on_reserve"
+            $error = "too_many";
         }
 
+        my $resstatus = C4::Reserves::GetReserveStatus($itemnumber);
+        if ( $resstatus eq "Waiting" or $resstatus eq "Reserved" ) {
+            $renewokay = 0;
+            $error = "on_reserve";
+        }
     }
     return ($renewokay,$error);
 }