[Koha-bugs] [Bug 6918] Can't place holds on 'on order' items with AllowOnShelfHolds off

bugzilla-daemon at bugs.koha-community.org bugzilla-daemon at bugs.koha-community.org
Thu Nov 26 10:00:27 CET 2020


https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=6918

Joonas Kylmälä <joonas.kylmala at helsinki.fi> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |joonas.kylmala at helsinki.fi
           See Also|                            |https://bugs.koha-community
                   |                            |.org/bugzilla3/show_bug.cgi
                   |                            |?id=27058

--- Comment #55 from Joonas Kylmälä <joonas.kylmala at helsinki.fi> ---
Hi,

could you please see bug 27058. I had worked on the same issue before and
didn't notice this bug report until now. I have a unit test there too but the
bug report is only about on shelf holds = 2 / If all unavailable. There is no
syspref for it because the syspref is needed only for the "If any unavailable"
case which is more complex. For If all unavailable case the current behaviour
is *definitely buggy* because it breaks holds when there is a ordered item,
leading to a situation where there is no item available for the patron to
checkout and no way for the library staff or patron themselves to place a hold
to the book. This leads to a situation where all Koha libraries using If all
unavailable need to keep a separate list of holds in "paper notes" or just say
to the patron "sorry, come back later" which could be years for popular books.
If you don't have any items available for checkout it is clear that a hold must
be able to be placed if it it normally would be the case without ordered items
(because you can't checkout ordered items because they don't exists yet).

I have spend multiple hours thinking the scenarios carefully through,
understanding the incorrectly grouped and named functions in C4/Reserves.pm,
discussed this problem with 5 different libraries so I ask you also to read the
code carefully when reviewing bug 27058. One important thing is that
ItemsAnyAvailableAndNotRestricted() is actually two different functions: 1) Do
basic checkout availability checks that are not specific to the patron 2) Do
basic reservability checks to accomodate hold groups or rules regarding from
which branch patron can reserve book (CanItemBeReserved()). So please don't let
the incorrectly named function names to stop fixing this bug.

There are a lot of other issues around IsAvailableForItemLevelRequest and
CanItemBeReserved functions but please let's keep the scope on this particular
issue, and on If all unavailable case only in bug 27058. In Bug 27032 I start
to refactor these hard-to-understand pieces of code (and yes CanBookBeRenewed
has ties to ItemsAnyAvailableAndNotRestricted...).

-- 
You are receiving this mail because:
You are watching all bug changes.


More information about the Koha-bugs mailing list