Bug 11512: Forced holds that violate issuing rules will never be filled
authorKyle M Hall <kyle@bywatersolutions.com>
Thu, 26 Oct 2017 11:40:04 +0000 (07:40 -0400)
committerJonathan Druart <jonathan.druart@bugs.koha-community.org>
Fri, 6 Apr 2018 17:51:11 +0000 (14:51 -0300)
Currently in Koha, if you choose to force a hold from the staff side that would contravened the current issuing rules, that hold will never be filled, as it is always skipped over by CheckReserves.

This patch disallows overrideing except for tooManyReserves which are the only overridden holds that will be trapped.

Test Plan:
1) Apply this patch
2) Attempt to override hold placement, only placements where the patron has too many holds already should be allowed

Signed-off-by: Jesse Maseto <jesse@bywatersolutions.com>

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

index b67769a..2902de0 100755 (executable)
@@ -478,7 +478,7 @@ foreach my $biblionumber (@biblionumbers) {
 
                     push( @available_itemtypes, $item->{itype} );
                 }
-                elsif ( C4::Context->preference('AllowHoldPolicyOverride') ) {
+                elsif ( $can_item_be_reserved eq 'tooManyReserves' && C4::Context->preference('AllowHoldPolicyOverride') ) {
                     # If AllowHoldPolicyOverride is set, it should override EVERY restriction, not just branch item rules
                     $item->{override} = 1;
                     $num_override++;