From 1e8b461ff1ecf08d04cb09c912e2fc5978210977 Mon Sep 17 00:00:00 2001 From: Marcel de Rooy Date: Mon, 1 Jun 2015 15:21:32 +0200 Subject: [PATCH] [SIGNED OFF] 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 --- C4/Search.pm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/C4/Search.pm b/C4/Search.pm index 990ed39..3e9078d 100644 --- a/C4/Search.pm +++ b/C4/Search.pm @@ -2126,6 +2126,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++; -- 1.9.1