holds policies fixes
[koha.git] / opac / opac-reserve.pl
index 552cffb..5a4af1d 100755 (executable)
@@ -136,8 +136,8 @@ foreach my $itm (@items) {
     $itm->{'itemtype'} = $itm->{'itype'} if(C4::Context->preference('item-level_itypes'));     
        $itemhash{$itm->{'itemnumber'}}=$itm;
     if (!$itm->{'notforloan'} && !($itm->{'itemnotforloan'} > 0)){
-               $forloan=1;
-       }
+       $forloan=1;
+    }
 }
 
 if ( $query->param('place_reserve') ) {
@@ -330,7 +330,15 @@ foreach my $biblioitemnumber (@biblioitemnumbers) {
         # If there is no loan, return and transfer, we show a checkbox.
         $item->{notforloan} = $item->{notforloan} || 0;
 
-        if (IsAvailableForItemLevelRequest($itemnumber)) {
+        my $branchitemrule = GetBranchItemRule( $item->{'homebranch'}, $item->{'itype'} );
+        my $policy_holdallowed = 1;
+
+        if ( $branchitemrule->{'holdallowed'} == 0 ||
+                ( $branchitemrule->{'holdallowed'} == 1 && $borr->{'branchcode'} ne $item->{'homebranch'} ) ) {
+            $policy_holdallowed = 0;
+        }
+
+        if (IsAvailableForItemLevelRequest($itemnumber) and $policy_holdallowed) {
             $item->{available} = 1;
         }