From 3519bef07f7cb1866e746e0303602e855870255d Mon Sep 17 00:00:00 2001 From: Kyle M Hall Date: Fri, 16 Jul 2021 13:50:29 -0400 Subject: [PATCH] Bug 25619: Add ability to adjust expiration date for waiting holds There are times when an item that is waiting for pickup needs to have the expiration date extended. This would give staff the ability to modify one by one, as needed, the reserves.expirationdate for a given item awaiting pickup. Test Plan: 1) Place a hold, trap an item for it such that is is waiting 2) Attempt to update the expiration date 3) Note the new date is not saved 4) Apply this patch, restart all the things! 5) Attempt to update the expiration date 6) The new date should be saved! Signed-off-by: Abbey Holt Signed-off-by: Katrin Fischer Signed-off-by: Nick Clemens Signed-off-by: Jonathan Druart Signed-off-by: Kyle M Hall (cherry picked from commit 00232f0bd75b44ba57038b97bc4c07333a107267) Signed-off-by: Fridolin Somers --- C4/Reserves.pm | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/C4/Reserves.pm b/C4/Reserves.pm index 5e0ebf9f2b..1f85b4146a 100644 --- a/C4/Reserves.pm +++ b/C4/Reserves.pm @@ -1019,7 +1019,6 @@ sub ModReserve { my $biblionumber = $params->{'biblionumber'}; my $cancellation_reason = $params->{'cancellation_reason'}; - return if $rank eq "W"; return if $rank eq "n"; return unless ( $reserve_id || ( $borrowernumber && ( $biblionumber || $itemnumber ) ) ); @@ -1037,6 +1036,16 @@ sub ModReserve { if ( $rank eq "del" ) { $hold->cancel({ cancellation_reason => $cancellation_reason }); } + elsif ($hold->found && $hold->priority eq '0') { + logaction( 'HOLDS', 'MODIFY', $hold->reserve_id, Dumper($hold->unblessed) ) + if C4::Context->preference('HoldsLog'); + + # The only column that can be updated for a found hold is the expiration date + my $date = $params->{expirationdate}; + if ($date) { + $hold->expirationdate(dt_from_string($date))->store(); + } + } elsif ($rank =~ /^\d+/ and $rank > 0) { logaction( 'HOLDS', 'MODIFY', $hold->reserve_id, Dumper($hold->unblessed) ) if C4::Context->preference('HoldsLog'); -- 2.39.5