From 0af76e6a4f9999376ea7b51b898a1a12f51c7707 Mon Sep 17 00:00:00 2001 From: Alex Arnaud Date: Thu, 20 Apr 2017 14:22:25 +0000 Subject: [PATCH] Bug 12063 - make perl atomic update follow skeleton.perl --- ...efine_expirationdate_for_waitting_reserves.perl | 44 +++++++++++----------- 1 file changed, 23 insertions(+), 21 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 3a5d232..b0a15bff 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,30 +1,32 @@ -use C4::Context; +$DBversion = 'XXX'; +if( CheckVersion( $DBversion ) ) { + use Koha::Holds; -use Koha::Holds; -use Koha::DateUtils; -use Koha::Calendar; + my $waiting_holds = Koha::Holds->search({ found => 'W', priority => 0 }); + while ( my $hold = $waiting_holds->next ) { -my $waiting_holds = Koha::Holds->search({ found => 'W', priority => 0 }); -while ( my $hold = $waiting_holds->next ) { + my $requested_expiration; + if ($hold->expirationdate) { + $requested_expiration = dt_from_string($hold->expirationdate); + } - my $requested_expiration; - if ($hold->expirationdate) { - $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 ); - 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 $expirationdate = $waitingdate->clone; + $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 ); + } - 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; } - - 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 -- 2.7.4