From 8527317c861ab09bc95669d261584f00cefdc650 Mon Sep 17 00:00:00 2001 From: Kyle M Hall Date: Wed, 4 Mar 2020 12:08:29 -0500 Subject: [PATCH] Bug 24802 [19.05]: Updating holds can cause suspensions to apply to wrong hold On request.pl, the table of holds shows a suspend_until date picker for each hold, *unless* that hold is waiting or in transit. The script reserve/modrequest.pl assumes that there will be a suspend_until input for each hold, but that is incorrect. Assume there are 20 holds on a record, and 10 of them are waiting or in transit. If you were to then set the suspend until date on the 10 open holds, and use the "Update hold(s)" button, those 10 suspensions would apply to the 10 found holds and not the holds they should apply to! Test Plan: 1) Place two holds on a record 2) Check in an item and trap it for the first hold 3) Now that one hold is waiting and the other is not, attempt to set a suspension date using the "Update hold(s)" button 4) Note your hold does not get suspended! 5) Apply this patch 6) Restart all the things! 7) Repeat steps 1-3 8) Your hold should now be suspended! Signed-off-by: Andrew Fuerste-Henry Signed-off-by: Marcel de Rooy Signed-off-by: Martin Renvoize Signed-off-by: Joy Nelson --- koha-tmpl/intranet-tmpl/prog/en/includes/holds_table.inc | 4 ++-- reserve/modrequest.pl | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/holds_table.inc b/koha-tmpl/intranet-tmpl/prog/en/includes/holds_table.inc index c40d3e638b..50e2070cec 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/includes/holds_table.inc +++ b/koha-tmpl/intranet-tmpl/prog/en/includes/holds_table.inc @@ -195,10 +195,10 @@ [% IF Koha.Preference('AutoResumeSuspendedHolds') %] - + Clear date [% ELSE %] - + [% END %] [% END %] [% END # IF SuspendHoldsIntranet %] diff --git a/reserve/modrequest.pl b/reserve/modrequest.pl index 0d1b2d0262..2691b241e1 100755 --- a/reserve/modrequest.pl +++ b/reserve/modrequest.pl @@ -46,7 +46,6 @@ my @biblionumber = $query->multi_param('biblionumber'); my @borrower = $query->multi_param('borrowernumber'); my @branch = $query->multi_param('pickup'); my @itemnumber = $query->multi_param('itemnumber'); -my @suspend_until=$query->multi_param('suspend_until'); my $multi_hold = $query->param('multi_hold'); my $biblionumbers = $query->param('biblionumbers'); my $count=@rank; @@ -67,12 +66,13 @@ if ($CancelBorrowerNumber) { else { for (my $i=0;$i<$count;$i++){ undef $itemnumber[$i] if !$itemnumber[$i]; + my $suspend_until = $query->param( "suspend_until_" . $reserve_id[$i] ); ModReserve({ rank => $rank[$i], reserve_id => $reserve_id[$i], branchcode => $branch[$i], itemnumber => $itemnumber[$i], - suspend_until => $suspend_until[$i] + suspend_until => $suspend_until, }); } } -- 2.24.1 (Apple Git-126)