@@ -, +, @@ $ kshell k$ prove t/db_dependent/api/v1/holds.t --- Koha/REST/V1/Holds.pm | 13 ++++++++++--- api/v1/swagger/paths/holds.json | 7 +++++++ 2 files changed, 17 insertions(+), 3 deletions(-) --- a/Koha/REST/V1/Holds.pm +++ a/Koha/REST/V1/Holds.pm @@ -464,11 +464,18 @@ sub pickup_locations { return try { my $ps_set; - if ( $hold->itemnumber ) { - $ps_set = $hold->item->pickup_locations( { patron => $hold->patron } ); + my $overrides = $c->stash('koha.overrides'); + + if ( $overrides->{any} and C4::Context->preference('AllowHoldPolicyOverride') ) { + $ps_set = Koha::Libraries->search({ pickup_location => 1 }); } else { - $ps_set = $hold->biblio->pickup_locations( { patron => $hold->patron } ); + if ( $hold->itemnumber ) { + $ps_set = $hold->item->pickup_locations( { patron => $hold->patron } ); + } + else { + $ps_set = $hold->biblio->pickup_locations( { patron => $hold->patron } ); + } } my $pickup_locations = $c->objects->search( $ps_set ); --- a/api/v1/swagger/paths/holds.json +++ a/api/v1/swagger/paths/holds.json @@ -646,6 +646,13 @@ }, { "$ref": "../parameters.json#/q_header" + }, + { + "name": "x-koha-override", + "description": "Comma-separated list of overrides (valid values: any)", + "in": "header", + "type": "string", + "required": false } ], "produces": ["application/json"], --