Bug 27058: Make checkout availability use all notforloan reasons
authorJoonas Kylmälä <joonas.kylmala@helsinki.fi>
Thu, 19 Nov 2020 14:55:18 +0000 (16:55 +0200)
committerJonathan Druart <jonathan.druart@bugs.koha-community.org>
Mon, 8 Mar 2021 14:15:49 +0000 (15:15 +0100)
commit18128cc810a00a46f8d4af19bebaa4c562761456
tree080d9fb01a02b06ffe6c862711d322f0fb356e91
parent1c0acc36ba1b075add4c930c7fd875cf75b8a476
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 <kyle@bywatersolutions.com>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
C4/Reserves.pm