Browse Source

Bug 28139: Simplify logic for handling found holds in returns.pl

We are handling in this if-else block 3 cases:
 - Hold found and waiting
 - Hold found but not waiting AND whether HoldsAutoFill is enabled
 - Hold found but not waiting AND whether HoldsAutoFill disabled

If we simply first handle hold found = Waiting case first then we
don't have to individually list all those other found cases and that
simplifies this code a lot.

To test:
 1. Apply patch
 2. Make sure HoldsAutoFill is disabled
 3. Make item-level hold on branch A
 4. Check-in the item at branch A and you should get pop-up confirming
    the hold, ignore it
 5. Set HoldsAutoFill is enabled
 4. Check-in the item again and you now the hold should have been
    automatically filled

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
21.05.x
Joonas Kylmälä 2 years ago
committed by Jonathan Druart
parent
commit
70239b355c
  1. 14
      circ/returns.pl

14
circ/returns.pl

@ -417,7 +417,11 @@ if ( $messages->{'ResFound'}) {
my $patron = Koha::Patrons->find( $reserve->{borrowernumber} );
my $holdmsgpreferences = C4::Members::Messaging::GetMessagingPreferences( { borrowernumber => $reserve->{'borrowernumber'}, message_name => 'Hold_Filled' } );
my $branchCheck = ( $userenv_branch eq $reserve->{branchcode} );
if ( ( $reserve->{'ResFound'} eq "Reserved" || $reserve->{'ResFound'} eq "Processing" || $reserve->{'ResFound'} eq "Transferred" ) && C4::Context->preference('HoldsAutoFill') ) {
if ( $reserve->{'ResFound'} eq "Waiting" ) {
$template->param(
waiting => $branchCheck ? 1 : undef,
);
} elsif ( C4::Context->preference('HoldsAutoFill') ) {
my $item = Koha::Items->find( $itemnumber );
my $biblio = $item->biblio;
@ -439,18 +443,14 @@ if ( $messages->{'ResFound'}) {
diffbranch => 1,
);
}
} elsif ( $reserve->{'ResFound'} eq "Waiting" ) {
$template->param(
waiting => $branchCheck ? 1 : undef,
);
} elsif ( $reserve->{'ResFound'} eq "Reserved" || $reserve->{'ResFound'} eq "Processing" || $reserve->{'ResFound'} eq "Transferred" ) {
} else {
$template->param(
intransit => $branchCheck ? undef : 1,
transfertodo => $branchCheck ? undef : 1,
reserve_id => $reserve->{reserve_id},
reserved => 1,
);
} # else { ; } # error?
}
# same params for Waiting or Reserved
$template->param(

Loading…
Cancel
Save