Bug 12063 - make perl atomic update follow skeleton.perl
authorAlex Arnaud <alex.arnaud@biblibre.com>
Thu, 20 Apr 2017 14:22:25 +0000 (14:22 +0000)
committerKyle M Hall <kyle@bywatersolutions.com>
Tue, 9 May 2017 12:59:39 +0000 (08:59 -0400)
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>

installer/data/mysql/atomicupdate/bug_12063-define_expirationdate_for_waitting_reserves.perl

index 3a5d232..b0a15bf 100644 (file)
@@ -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