Bug 5834: Holds link missing when 942$c is not for loan
authorKatrin Fischer <Katrin.Fischer.83@web.de>
Sat, 19 Mar 2011 21:14:33 +0000 (17:14 -0400)
committerChris Cormack <chrisc@catalyst.net.nz>
Mon, 21 Mar 2011 07:49:17 +0000 (20:49 +1300)
Adds a check for item-level_itypes system preference. Note that this only
applies to the search results screens.

To test:
1) Set item-level_itypes to 'specific item'
2) Create record and set 942$c to an itype that is marked not for loan
3) Create item with itype not marked 'not for loan'
Current behaviour: Holds link is not shown, sys pref setting doesn't matter

After patch: Holds link is shown
- when item-level_itype is 'specific item'
- when item-level_itype is 'biblio record' and 942$c itype is for loan

Holds link is not shown
- when item-level_itype is 'biblio record' and 942$c is not for loan

Signed-off-by: Jared Camins-Esakov <jcamins@bywatersolutions.com>
Signed-off-by: Chris Cormack <chrisc@catalyst.net.nz>
C4/Search.pm

index 52939bd..53c8396 100644 (file)
@@ -1696,9 +1696,12 @@ sub searchResults {
 
         }
 
-        # last check for norequest : if itemtype is notforloan, it can't be reserved either, whatever the items
-        $can_place_holds = 0
-          if $itemtypes{ $oldbiblio->{itemtype} }->{notforloan};
+        # if biblio level itypes are used and itemtype is notforloan, it can't be reserved either
+        if (!C4::Context->preference("item-level_itypes")) {
+            if ($itemtypes{ $oldbiblio->{itemtype} }->{notforloan}) {
+                $can_place_holds = 0;
+            }
+        }
         $oldbiblio->{norequests} = 1 unless $can_place_holds;
         $oldbiblio->{itemsplural}          = 1 if $items_count > 1;
         $oldbiblio->{items_count}          = $items_count;