From 2144fecdf06a484cb1047d3bbdd84b66d16e1805 Mon Sep 17 00:00:00 2001 From: Marcel de Rooy Date: Thu, 4 May 2017 12:53:03 +0200 Subject: [PATCH] Bug 12063: [QA Follow-up] Adjustments to db revision Replace use by require. Add require Koha::Calendar (seriously needed to prevent crashing). Base expirationdate on today not on waitingdate (just as in Reserves). Remove if ( waitingdate ) construction. Not needed anymore. Remove $cancel_on_holidays. Not used. Note that the if construction around the new pref is not strictly needed at upgrade time (pref still zero). Fill the dbrev description. Signed-off-by: Marcel de Rooy Signed-off-by: Kyle M Hall --- ..._expirationdate_for_waitting_reserves.perl | 29 +++++++++---------- 1 file changed, 13 insertions(+), 16 deletions(-) diff --git a/installer/data/mysql/atomicupdate/bug_12063-define_expirationdate_for_waitting_reserves.perl b/installer/data/mysql/atomicupdate/bug_12063-define_expirationdate_for_waitting_reserves.perl index b0a15bff0e..c7af993ac4 100644 --- a/installer/data/mysql/atomicupdate/bug_12063-define_expirationdate_for_waitting_reserves.perl +++ b/installer/data/mysql/atomicupdate/bug_12063-define_expirationdate_for_waitting_reserves.perl @@ -1,8 +1,10 @@ $DBversion = 'XXX'; if( CheckVersion( $DBversion ) ) { - use Koha::Holds; + require Koha::Calendar; + require Koha::Holds; my $waiting_holds = Koha::Holds->search({ found => 'W', priority => 0 }); + my $max_pickup_delay = C4::Context->preference("ReservesMaxPickUpDelay"); while ( my $hold = $waiting_holds->next ) { my $requested_expiration; @@ -10,23 +12,18 @@ if( CheckVersion( $DBversion ) ) { $requested_expiration = dt_from_string($hold->expirationdate); } - if ( my $waitingdate = dt_from_string($hold->waitingdate) ) { - my $max_pickup_delay = C4::Context->preference("ReservesMaxPickUpDelay"); - my $cancel_on_holidays = C4::Context->preference('ExpireReservesOnHolidays'); - my $calendar = Koha::Calendar->new( branchcode => $hold->branchcode ); + my $calendar = Koha::Calendar->new( branchcode => $hold->branchcode ); + my $expirationdate = dt_from_string(); + $expirationdate->add(days => $max_pickup_delay); - my $expirationdate = $waitingdate->clone; - $expirationdate->add(days => $max_pickup_delay); - - if ( C4::Context->preference("ExcludeHolidaysFromMaxPickUpDelay") ) { - $expirationdate = $calendar->days_forward( dt_from_string($hold->waitingdate), $max_pickup_delay ); - } - - my $cmp = $requested_expiration ? DateTime->compare($requested_expiration, $expirationdate) : 0; - $hold->expirationdate($cmp == -1 ? $requested_expiration->ymd : $expirationdate->ymd)->store; + if ( C4::Context->preference("ExcludeHolidaysFromMaxPickUpDelay") ) { + $expirationdate = $calendar->days_forward( dt_from_string(), $max_pickup_delay ); } + + my $cmp = $requested_expiration ? DateTime->compare($requested_expiration, $expirationdate) : 0; + $hold->expirationdate($cmp == -1 ? $requested_expiration->ymd : $expirationdate->ymd)->store; } SetVersion( $DBversion ); - print "Upgrade to $DBversion done (Bug XXXXX - description)\n"; -} \ No newline at end of file + print "Upgrade to $DBversion done (Bug 12063 - Update reserves.expirationdate)\n"; +} -- 2.20.1