Bug 23985: (bug 21206 follow-up) Fix checkout list when "Hold pickup library match...
authorJonathan Druart <jonathan.druart@bugs.koha-community.org>
Tue, 12 Nov 2019 17:00:02 +0000 (18:00 +0100)
committerMartin Renvoize <martin.renvoize@ptfs-europe.com>
Wed, 13 Nov 2019 14:01:08 +0000 (14:01 +0000)
This patch restores the behavior prior to bug 21206.
If "Hold pickup library match" is "Not set", then
hold_fulfillment_policy equals an empty string.

Test plan:
1. Go to "Circulation and fines rules"
2. Under "Default checkout, hold and return policy", unset "Hold pickup
library match" and Save
3. Place a hold on one item for one patron
4. Try to checkout the same item with another patron

=> Without this patch you the checkout list do not show, and the logs
contain "The method Koha::Item-> is not covered by tests!"
=> With this patch applied you see the checkout list

QA will take care of comparing the statement with the one before bug 21206
and make sure they are equivalent

Signed-off-by: Julian Maurice <julian.maurice@biblibre.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>

C4/Reserves.pm

index cf6ee50..73d3989 100644 (file)
@@ -796,7 +796,13 @@ sub CheckReserves {
                     next if ($branchitemrule->{'holdallowed'} == 0);
                     next if (($branchitemrule->{'holdallowed'} == 1) && ($branch ne $patron->branchcode));
                     my $hold_fulfillment_policy = $branchitemrule->{hold_fulfillment_policy};
-                    next if ( ($branchitemrule->{hold_fulfillment_policy} ne 'any') && ($res->{branchcode} ne $item->$hold_fulfillment_policy) );
+                    next
+                      if $hold_fulfillment_policy ne 'any'
+                      && (
+                           $hold_fulfillment_policy eq ''
+                        || ( $res->{branchcode} ne
+                            $item->$hold_fulfillment_policy )
+                      );
                     next unless $item->can_be_transferred( { to => scalar Koha::Libraries->find( $res->{branchcode} ) } );
                     $priority = $res->{'priority'};
                     $highest  = $res;