From 8dce8789a253457d9e0c8287bbdbd418dae1af44 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Joonas=20Kylm=C3=A4l=C3=A4?= Date: Thu, 19 Nov 2020 16:55:18 +0200 Subject: [PATCH] Bug 27058: Make checkout availability use all notforloan reasons The ItemsAnyAvailableAndNotRestricted function is checking whether an item can be checked out and it incorrectly only checks the positive notforloan values when there can be also negative notforloan values. If notforloan value is not 0 then it means the item cannot be checked out. In the case of ordered items the value is negative (-1) and thus before this change the checkout availability was reported incorrectly. To test: 1) Run prove t/db_dependent/Holds/DisallowHoldIfItemsAvailable.t Notice it fails 2) Apply this patch 3) Run prove t/db_dependent/Holds/DisallowHoldIfItemsAvailable.t Notice it passes now. To test via Koha sandbox (Alternatively): 1) Create circ rule with If all unavailable 2) Create new biblio 3) Order a new item to the biblio via acquisitions and set the not for loan value to Ordered / -1 4) Notice you cannot place a hold to the biblio 5) Apply patch 6) Notice you can now place a hold to the biblio Signed-off-by: Kyle M Hall Signed-off-by: Marcel de Rooy Signed-off-by: Jonathan Druart (cherry picked from commit 18128cc810a00a46f8d4af19bebaa4c562761456) Signed-off-by: Fridolin Somers --- C4/Reserves.pm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/C4/Reserves.pm b/C4/Reserves.pm index f361b0712b..7be8ff0b8b 100644 --- a/C4/Reserves.pm +++ b/C4/Reserves.pm @@ -1378,7 +1378,7 @@ sub ItemsAnyAvailableAndNotRestricted { # we can return (end the loop) when first one found: return 1 unless $i->itemlost - || $i->notforloan > 0 + || $i->notforloan || $i->withdrawn || $i->onloan || IsItemOnHoldAndFound( $i->id ) -- 2.20.1