@@ -, +, @@ AllowHoldDateInFuture is on --- C4/Reserves.pm | 28 ++++++++++++---------- .../intranet-tmpl/prog/en/includes/holds_table.inc | 8 ++++++- reserve/modrequest.pl | 10 +++++--- 3 files changed, 29 insertions(+), 17 deletions(-) --- a/C4/Reserves.pm +++ a/C4/Reserves.pm @@ -906,8 +906,6 @@ sub ModReserve { my $rank = $params->{'rank'}; my $reserve_id = $params->{'reserve_id'}; - my $reservedate = $params->{reservedate} || undef; - my $expirationdate = $params->{expirationdate} || undef; my $branchcode = $params->{'branchcode'}; my $itemnumber = $params->{'itemnumber'}; my $suspend_until = $params->{'suspend_until'}; @@ -936,17 +934,21 @@ sub ModReserve { logaction( 'HOLDS', 'MODIFY', $hold->reserve_id, Dumper($hold->unblessed) ) if C4::Context->preference('HoldsLog'); - $hold->set( - { - priority => $rank, - reservedate => $reservedate, - expirationdate => $expirationdate, - branchcode => $branchcode, - itemnumber => $itemnumber, - found => undef, - waitingdate => undef - } - )->store(); + my $properties = { + priority => $rank, + branchcode => $branchcode, + itemnumber => $itemnumber, + found => undef, + waitingdate => undef + }; + if (exists $params->{reservedate}) { + $properties->{reservedate} = $params->{reservedate} || undef; + } + if (exists $params->{expirationdate}) { + $properties->{expirationdate} = $params->{expirationdate} || undef; + } + + $hold->set($properties)->store(); if ( defined( $suspend_until ) ) { if ( $suspend_until ) { --- a/koha-tmpl/intranet-tmpl/prog/en/includes/holds_table.inc +++ a/koha-tmpl/intranet-tmpl/prog/en/includes/holds_table.inc @@ -106,7 +106,13 @@ [% hold.notes | html %] - + + [% IF Koha.Preference('AllowHoldDateInFuture') %] + + [% ELSE %] + [% hold.date | $KohaDates %] + [% END %] + --- a/reserve/modrequest.pl +++ a/reserve/modrequest.pl @@ -69,15 +69,19 @@ if ($CancelBorrowerNumber) { else { for (my $i=0;$i<$count;$i++){ undef $itemnumber[$i] if !$itemnumber[$i]; - ModReserve({ + my $params = { rank => $rank[$i], reserve_id => $reserve_id[$i], - reservedate => $reservedates[$i], expirationdate => $expirationdates[$i], branchcode => $branch[$i], itemnumber => $itemnumber[$i], suspend_until => $suspend_until[$i] - }); + }; + if (C4::Context->preference('AllowHoldDateInFuture')) { + $params->{reservedate} = $reservedates[$i]; + } + + ModReserve($params); } } --