Bug 35573: Revert "Bug 30687: Allow pickup location to be forced when override is allowed"
This reverts commitab93008da7
. Signed-off-by: David Nind <david@davidnind.com> Signed-off-by: Nick Clemens <nick@bywatersolutions.com> Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de> (cherry picked from commit33da81f9fe
) Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
This commit is contained in:
parent
342c65a680
commit
aa149ff575
2 changed files with 35 additions and 21 deletions
|
@ -798,7 +798,7 @@
|
|||
[% END # /IF force_hold_level %]
|
||||
</td>
|
||||
<td>
|
||||
[% IF (itemloo.pickup_locations_count > 0) || itemloo.override %]
|
||||
[% IF (itemloo.pickup_locations_count > 0) %]
|
||||
<select name="item_pickup_[% itemloo.itemnumber | html %]" class="pickup_locations" style="width:100%;"
|
||||
data-item-id="[% itemloo.itemnumber | html %]"
|
||||
data-patron-id="[% patron.borrowernumber | html %]"
|
||||
|
@ -1523,7 +1523,7 @@
|
|||
msg = (_("- Please select an item to place a hold") + "\n");
|
||||
}
|
||||
} else {
|
||||
if( $("#pickup").length < 1 || $("#pickup").val() == "" || $('#pickup').val() === null ){
|
||||
if( $("#pickup").length < 1 || $("#pickup").val() == "" ){
|
||||
msg = _("- Please select a pickup location for this hold" + "\n");
|
||||
}
|
||||
}
|
||||
|
|
|
@ -499,19 +499,13 @@ if ( ( $findborrower && $borrowernumber_hold || $findclub && $club_hold )
|
|||
$default_pickup_branch = C4::Context->userenv->{branch};
|
||||
}
|
||||
|
||||
if ( $can_item_be_reserved eq 'itemAlreadyOnHold' ) {
|
||||
# itemAlreadyOnHold cannot be overridden
|
||||
$num_alreadyheld++
|
||||
}
|
||||
elsif (
|
||||
(
|
||||
!$item->{cantreserve}
|
||||
&& !$exceeded_maxreserves
|
||||
&& $can_item_be_reserved eq 'OK'
|
||||
&& IsAvailableForItemLevelRequest($item_object, $patron, undef)
|
||||
) || C4::Context->preference('AllowHoldPolicyOverride')
|
||||
# If AllowHoldPolicyOverride is set, it overrides EVERY restriction
|
||||
# not just branch item rules
|
||||
if (
|
||||
!$item->{cantreserve}
|
||||
&& !$exceeded_maxreserves
|
||||
&& $can_item_be_reserved eq 'OK'
|
||||
# items_any_available defined outside of the current loop,
|
||||
# so we avoiding loop inside IsAvailableForItemLevelRequest:
|
||||
&& IsAvailableForItemLevelRequest($item_object, $patron, undef)
|
||||
)
|
||||
{
|
||||
# Send the pickup locations count to the UI, the pickup locations will be pulled using the API
|
||||
|
@ -524,17 +518,37 @@ if ( ( $findborrower && $borrowernumber_hold || $findclub && $club_hold )
|
|||
my $default_pickup_location = $pickup_locations->search({ branchcode => $default_pickup_branch })->next;
|
||||
$item->{default_pickup_location} = $default_pickup_location;
|
||||
}
|
||||
elsif ( C4::Context->preference('AllowHoldPolicyOverride') ){
|
||||
$num_items_available++;
|
||||
$item->{override} = 1;
|
||||
my $default_pickup_location = $pickup_locations->search({ branchcode => $default_pickup_branch })->next;
|
||||
$item->{default_pickup_location} = $default_pickup_location;
|
||||
}
|
||||
else {
|
||||
$item->{available} = 0;
|
||||
$item->{not_holdable} = "no_valid_pickup_location";
|
||||
}
|
||||
|
||||
push( @available_itemtypes, $item->{itype} );
|
||||
}
|
||||
elsif ( C4::Context->preference('AllowHoldPolicyOverride') ) {
|
||||
# If AllowHoldPolicyOverride is set, it should override EVERY restriction, not just branch item rules
|
||||
# with the exception of itemAlreadyOnHold because, you know, the item is already on hold
|
||||
if ( $can_item_be_reserved ne 'itemAlreadyOnHold' ) {
|
||||
# Send the pickup locations count to the UI, the pickup locations will be pulled using the API
|
||||
my @pickup_locations = $item_object->pickup_locations({ patron => $patron })->as_list;
|
||||
$item->{pickup_locations_count} = scalar @pickup_locations;
|
||||
|
||||
if ( @pickup_locations ) {
|
||||
$num_items_available++;
|
||||
$item->{override} = 1;
|
||||
|
||||
my $default_pickup_location;
|
||||
|
||||
($default_pickup_location) = grep { $_->branchcode eq $default_pickup_branch } @pickup_locations;
|
||||
|
||||
$item->{default_pickup_location} = $default_pickup_location;
|
||||
}
|
||||
else {
|
||||
$item->{available} = 0;
|
||||
$item->{not_holdable} = "no_valid_pickup_location";
|
||||
}
|
||||
} else { $num_alreadyheld++ }
|
||||
|
||||
push( @available_itemtypes, $item->{itype} );
|
||||
} else {
|
||||
# If none of the conditions hold true, then neither override nor available is set and the item cannot be checked
|
||||
|
|
Loading…
Reference in a new issue