]> git.koha-community.org Git - koha.git/commit
Bug 30860: Cache CanItemBeReserved return value
authorJonathan Druart <jonathan.druart@bugs.koha-community.org>
Wed, 22 Mar 2023 15:30:31 +0000 (16:30 +0100)
committerMartin Renvoize <martin.renvoize@ptfs-europe.com>
Mon, 17 Jul 2023 14:00:44 +0000 (15:00 +0100)
commitb3c5a83f464ec305fe7c0ea1b1da3e9489ba556a
tree30df9d2476b5d7ff55f4a6647221a662fe6fd007
parentd6cf2b91ac07608011bff715a02bdd9d942eeb11
Bug 30860: Cache CanItemBeReserved return value

This patch caches the return value of CanItemBeReserved that could
be then returned *on
demand*
We don't want to introduce side-effects hard to catch from this simple
change, so let's return the cache value only from the 2 scripts we are
dealing with.

This patch requests all item values from CanBookBeReserved on request.pl

Before this we either:
- Looped every item to find out that book could not be reserved
- Looped until we found an item that could be reserved, then looped all items to get statuses

In the worst case we avoid double processing a single item, in the best case we avoid double
processing all items (if only last on record is holdable)

To test:
1 - Find a record in staff client with several items
2 - Set AllowHoldsOnDamagedItems  to 'Dont allow'
3 - Add a damaged item to record
4 - Set a hold rule to only allow holds form homebranch and ensure record has items from other branches
5 - Setup things to prevent more items from being held
6 - Attempt hold for patron
7 - Note item statuses
8 - Apply patch
9 - Confirm statuses are as they were before

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
(cherry picked from commit 45852c950e8a7a2a5611d818790192dab76c1370)
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
C4/Reserves.pm
opac/opac-reserve.pl
reserve/request.pl