From 40eb0fa6a5042c482d4d218c6cadf655e9de465e Mon Sep 17 00:00:00 2001 From: Marcel de Rooy Date: Mon, 1 Jun 2015 15:21:32 +0200 Subject: [PATCH] Bug 3333: Confusing item status for not-for-loans This patch makes a tiny change in C4::Search::searchResults as to the handling of not-for-loans. This should make the display of status and availability of items more consistent in opac and staff. Additionally, a Place hold link should disappear in the opac, when it is not possible to place a hold on any item of one biblio. The following spots need special attention; the display should be corrected by this patch: [A] Location column showing number of available items in catalogue/search. [B] Location column of Cataloging Search (addbooks.pl) [C] OPAC Search results list in non-XSLT view. NOTE The forms opac-MARCdetail and MARCdetail also include an Items table with column Not for loan. The information in this column might still be somewhat confusing but is actually correct. The column only contains Not for loan if the item field is set. So it is empty when only the item type is nfl. Since a correction here is arguable, I am not including it on this report. Test plan: [1] Have at least two item types. Mark one item type (X) as not for loan. [2] Use at least two biblios with two items each. Mark one item of the first biblio as not for loan at item level (via item editor). Change one item of the second biblio to the item type of step 1 (X). [3] Set pref item-level_itypes==item and set all four xslt prefs (for opac and staff, results and detail) to default. [4] Check spots A, B and C as mentioned above. Also check: [D] OPAC Detail, Holdings table, Status column [E] Staff Detail, Holdings, Status. [5] Make all four xslt prefs now empty. Check spots A to E again. Especially observe C here. [6] Set pref item-level_itypes==biblio. Change your second biblio to item type of step 1 (X) in the cataloguing editor (MARC 942c). Check spots A to E again. [7] Set all four xslt prefs again to default. Check spots A to E again. [8] Run the unit test t/db_dependent/Search.t. Signed-off-by: Nick Clemens Signed-off-by: Jonathan Druart --- C4/Search.pm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/C4/Search.pm b/C4/Search.pm index 4f2a7c7..e0f34bf 100644 --- a/C4/Search.pm +++ b/C4/Search.pm @@ -2127,6 +2127,8 @@ sub searchResults { # items not on loan, but still unavailable ( lost, withdrawn, damaged ) else { + $item->{notforloan}=1 if !$item->{notforloan} && $itemtypes{ C4::Context->preference("item-level_itypes")? $item->{itype}: $oldbiblio->{itemtype} }->{notforloan}; + # item is on order if ( $item->{notforloan} < 0 ) { $ordered_count++; -- 2.1.0