Bug 28748: Prepare pickup locations for overridden holds
authorNick Clemens <nick@bywatersolutions.com>
Wed, 6 Oct 2021 11:57:19 +0000 (11:57 +0000)
committerJonathan Druart <jonathan.druart@bugs.koha-community.org>
Tue, 12 Oct 2021 08:14:32 +0000 (10:14 +0200)
commitffbea4faac43d85bc93b92ce030024d95578eb65
tree8fdee3e9448d0ce45600eee1658d8e2e69b40dcc
parent155c3f18244a415812346127304493ec20165ecc
Bug 28748: Prepare pickup locations for overridden holds

The logic in request.pl only passes pickup locations if a hold is allowed,
they are not calculated when the hold is overridden.

This patch copies the pickup locations code into the override conditional,
adjusting to mark the item overridden

This also highlights an condition of override:
If a hold is allowed, but there are no valid pickup locations the override
is not allowed.

To test:
 1 - Set a holds rule to allow on-shelf holds only if all unavailable
 2 - Set AllowHoldPolicyOverride to 'Allow'
 3 - Find a record with several items available
 4 - Attempt to place a hold
 5 - The items have a yellow triangle, but no pickup locations
 6 - Place an item level hold
 7 - Note the hold has no pickup location
 8 - Cancel the hold
 9 - Apply patch and restart all
10 - Attempt hold again
11 - Items still have yellow triangle, but there are dropdowns for pickup location
12 - Place an item level hold, verify a pickup location is set
13 - Cancel the hold
14 - Alter circ rule to allow on shelf holds
15 - Change 'Default checkout, hold and return policy' - 'Hold pickup library match' to "item's hold group"
16 - Ensure there is no group for the item
17 - Attempt to place hold
18 - Override is not allowed 'No valid pickup locations'

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
reserve/request.pl