Bug 34024: Block changing pickup location for found holds
This patch adds a check on holds for 'found' statuses. Holds with the following statuses have special workflows in Koha, and overwritting their pickup locations yields uncertain scenarios: * Waiting: the item has probably been put on a special shelve * In transit: the item is travelling to a new destination, and changing the pickup location should include some validations, and probably generate some notifications. At least. * In processing: the item has already been taken out of the shelve for some internal processing. Changing the pickup location could interfere with this workflow. Overriding this limitation could be introduced with care on a separate report. To test: 1. Apply the unit tests patch 2. Run: $ ktd --shell k$ prove t/db_dependent/api/v1/holds.t => FAIL: Tests don't pass. Holds go through (200) instead of being rejected (409). 3. Apply this patch 4. Repeat 2 => SUCCESS: Tests pass! 5. Sign off :-D Signed-off-by: Sam Lau <samalau@gmail.com> Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com> Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io> (cherry picked from commita1b5bd9534) Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com> (cherry picked from commit6b2b54151f) Signed-off-by: Pedro Amorim <pedro.amorim@ptfs-europe.com>
This commit is contained in:
parent
9ed11360d6
commit
c46aa8af33
|
|
@ -540,6 +540,17 @@ sub update_pickup_location {
|
|||
my $overrides = $c->stash('koha.overrides');
|
||||
my $can_override = $overrides->{any} && C4::Context->preference('AllowHoldPolicyOverride');
|
||||
|
||||
my $error_code =
|
||||
$hold->is_waiting ? 'hold_waiting'
|
||||
: $hold->is_in_transit ? 'hold_in_transit'
|
||||
: $hold->is_in_processing ? 'hold_in_processing'
|
||||
: undef;
|
||||
|
||||
return $c->render(
|
||||
status => 409,
|
||||
openapi => { error => 'Cannot change pickup location', error_code => $error_code }
|
||||
) if $error_code;
|
||||
|
||||
$hold->set_pickup_location(
|
||||
{
|
||||
library_id => $pickup_library_id,
|
||||
|
|
|
|||
Loading…
Reference in New Issue