Bug 23727: DBRev 19.12.00.077
authorMartin Renvoize <martin.renvoize@ptfs-europe.com>
Fri, 17 Apr 2020 12:48:47 +0000 (13:48 +0100)
committerMartin Renvoize <martin.renvoize@ptfs-europe.com>
Fri, 17 Apr 2020 12:49:05 +0000 (13:49 +0100)
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>

Koha.pm
installer/data/mysql/atomicupdate/bug_23727.perl [deleted file]
installer/data/mysql/updatedatabase.pl

diff --git a/Koha.pm b/Koha.pm
index 95a46f1..9a9f0e1 100644 (file)
--- a/Koha.pm
+++ b/Koha.pm
@@ -29,7 +29,7 @@ use vars qw{ $VERSION };
 # - #4 : the developer version. The 4th number is the database subversion.
 #        used by developers when the database changes. updatedatabase take care of the changes itself
 #        and is automatically called by Auth.pm when needed.
-$VERSION = "19.12.00.076";
+$VERSION = "19.12.00.077";
 
 sub version {
     return $VERSION;
diff --git a/installer/data/mysql/atomicupdate/bug_23727.perl b/installer/data/mysql/atomicupdate/bug_23727.perl
deleted file mode 100644 (file)
index 855d0e1..0000000
+++ /dev/null
@@ -1,69 +0,0 @@
-$DBversion = 'XXX'; # will be replaced by the RM
-if( CheckVersion( $DBversion ) ) {
-    if ( !column_exists( 'course_items', 'itype_enabled' ) ) {
-        $dbh->do(q{
-            ALTER TABLE course_items
-            ADD COLUMN itype_enabled tinyint(1) NOT NULL DEFAULT 0 AFTER itype,
-            ADD COLUMN ccode_enabled tinyint(1) NOT NULL DEFAULT 0 AFTER ccode,
-            ADD COLUMN holdingbranch_enabled tinyint(1) NOT NULL DEFAULT 0 AFTER holdingbranch,
-            ADD COLUMN location_enabled tinyint(1) NOT NULL DEFAULT 0 AFTER location,
-            ADD COLUMN itype_storage varchar(10) DEFAULT NULL AFTER itype_enabled,
-            ADD COLUMN ccode_storage varchar(80) DEFAULT NULL AFTER ccode_enabled,
-            ADD COLUMN holdingbranch_storage varchar(10) DEFAULT NULL AFTER ccode_enabled,
-            ADD COLUMN location_storage varchar(80) DEFAULT NULL AFTER location_enabled
-        });
-
-        my $item_level_items = C4::Context->preference('item-level_itypes');
-        my $itype_field = $item_level_items ? 'i.itype' : 'bi.itemtype';
-        $dbh->do(qq{
-            UPDATE course_items ci
-            LEFT JOIN items i USING ( itemnumber )
-            LEFT JOIN biblioitems bi USING ( biblioitemnumber )
-            SET
-
-            -- Assume the column is enabled if the course item is active and i.itype/bi.itemtype is set,
-            -- or if the course item is not enabled and ci.itype is set
-            ci.itype_enabled = IF( ci.enabled = 'yes', IF( $itype_field IS NULL, 0, 1 ), IF(  ci.itype IS NULL, 0, 1  ) ),
-            ci.ccode_enabled = IF( ci.enabled = 'yes', IF( i.ccode IS NULL, 0, 1 ), IF(  ci.ccode IS NULL, 0, 1  ) ),
-            ci.holdingbranch_enabled = IF( ci.enabled = 'yes', IF( i.holdingbranch IS NULL, 0, 1 ), IF(  ci.holdingbranch IS NULL, 0, 1  ) ),
-            ci.location_enabled = IF( ci.enabled = 'yes', IF( i.location IS NULL, 0, 1 ), IF(  ci.location IS NULL, 0, 1  ) ),
-
-            -- If the course item is enabled, copy the value from the item.
-            -- If the course item is not enabled, keep the existing value
-            ci.itype = IF( ci.enabled = 'yes', $itype_field, ci.itype ),
-            ci.ccode = IF( ci.enabled = 'yes', i.ccode, ci.ccode ),
-            ci.holdingbranch = IF( ci.enabled = 'yes', i.holdingbranch, ci.holdingbranch ),
-            ci.location = IF( ci.enabled = 'yes', i.location, ci.location ),
-
-            -- If the course is enabled, copy the value from the item to storage.
-            -- If it is not enabled, copy the value from the course item to storage
-            ci.itype_storage = IF( ci.enabled = 'no', $itype_field, ci.itype ),
-            ci.ccode_storage = IF( ci.enabled = 'no', i.ccode, ci.ccode ),
-            ci.holdingbranch_storage = IF( ci.enabled = 'no', i.holdingbranch, ci.holdingbranch ),
-            ci.location_storage = IF( ci.enabled = 'no', i.location, ci.location );
-        });
-
-        # Clean up the storage columns
-        $dbh->do(q{
-            UPDATE course_items SET
-                itype_storage = NULL,
-                ccode_storage = NULL,
-                holdingbranch_storage = NULL,
-                location_storage = NULL
-            WHERE enabled = 'no';
-        });
-
-        # Clean up the course enabled value columns
-        $dbh->do(q{
-            UPDATE course_items SET
-                itype = IF( itype_enabled = 'no', NULL, itype ),
-                ccode = IF( ccode_enabled = 'no', NULL, ccode ),
-                holdingbranch = IF( holdingbranch_enabled = 'no', NULL, holdingbranch ),
-                location = IF( location_enabled = 'no', NULL, location )
-            WHERE enabled = 'no';
-        });
-    }
-
-    SetVersion( $DBversion );
-    print "Upgrade to $DBversion done (Bug 23727 - Editing course reserve items is broken)\n";
-}
index bf3364c..6c63f19 100755 (executable)
@@ -21761,6 +21761,75 @@ if( CheckVersion( $DBversion ) ) {
     NewVersion( $DBversion, 21901, $description);
 }
 
+$DBversion = '19.12.00.077';
+if( CheckVersion( $DBversion ) ) {
+    if ( !column_exists( 'course_items', 'itype_enabled' ) ) {
+        $dbh->do(q{
+            ALTER TABLE course_items
+            ADD COLUMN itype_enabled tinyint(1) NOT NULL DEFAULT 0 AFTER itype,
+            ADD COLUMN ccode_enabled tinyint(1) NOT NULL DEFAULT 0 AFTER ccode,
+            ADD COLUMN holdingbranch_enabled tinyint(1) NOT NULL DEFAULT 0 AFTER holdingbranch,
+            ADD COLUMN location_enabled tinyint(1) NOT NULL DEFAULT 0 AFTER location,
+            ADD COLUMN itype_storage varchar(10) DEFAULT NULL AFTER itype_enabled,
+            ADD COLUMN ccode_storage varchar(80) DEFAULT NULL AFTER ccode_enabled,
+            ADD COLUMN holdingbranch_storage varchar(10) DEFAULT NULL AFTER ccode_enabled,
+            ADD COLUMN location_storage varchar(80) DEFAULT NULL AFTER location_enabled
+        });
+
+        my $item_level_items = C4::Context->preference('item-level_itypes');
+        my $itype_field = $item_level_items ? 'i.itype' : 'bi.itemtype';
+        $dbh->do(qq{
+            UPDATE course_items ci
+            LEFT JOIN items i USING ( itemnumber )
+            LEFT JOIN biblioitems bi USING ( biblioitemnumber )
+            SET
+
+            -- Assume the column is enabled if the course item is active and i.itype/bi.itemtype is set,
+            -- or if the course item is not enabled and ci.itype is set
+            ci.itype_enabled = IF( ci.enabled = 'yes', IF( $itype_field IS NULL, 0, 1 ), IF(  ci.itype IS NULL, 0, 1  ) ),
+            ci.ccode_enabled = IF( ci.enabled = 'yes', IF( i.ccode IS NULL, 0, 1 ), IF(  ci.ccode IS NULL, 0, 1  ) ),
+            ci.holdingbranch_enabled = IF( ci.enabled = 'yes', IF( i.holdingbranch IS NULL, 0, 1 ), IF(  ci.holdingbranch IS NULL, 0, 1  ) ),
+            ci.location_enabled = IF( ci.enabled = 'yes', IF( i.location IS NULL, 0, 1 ), IF(  ci.location IS NULL, 0, 1  ) ),
+
+            -- If the course item is enabled, copy the value from the item.
+            -- If the course item is not enabled, keep the existing value
+            ci.itype = IF( ci.enabled = 'yes', $itype_field, ci.itype ),
+            ci.ccode = IF( ci.enabled = 'yes', i.ccode, ci.ccode ),
+            ci.holdingbranch = IF( ci.enabled = 'yes', i.holdingbranch, ci.holdingbranch ),
+            ci.location = IF( ci.enabled = 'yes', i.location, ci.location ),
+
+            -- If the course is enabled, copy the value from the item to storage.
+            -- If it is not enabled, copy the value from the course item to storage
+            ci.itype_storage = IF( ci.enabled = 'no', $itype_field, ci.itype ),
+            ci.ccode_storage = IF( ci.enabled = 'no', i.ccode, ci.ccode ),
+            ci.holdingbranch_storage = IF( ci.enabled = 'no', i.holdingbranch, ci.holdingbranch ),
+            ci.location_storage = IF( ci.enabled = 'no', i.location, ci.location );
+        });
+
+        # Clean up the storage columns
+        $dbh->do(q{
+            UPDATE course_items SET
+                itype_storage = NULL,
+                ccode_storage = NULL,
+                holdingbranch_storage = NULL,
+                location_storage = NULL
+            WHERE enabled = 'no';
+        });
+
+        # Clean up the course enabled value columns
+        $dbh->do(q{
+            UPDATE course_items SET
+                itype = IF( itype_enabled = 'no', NULL, itype ),
+                ccode = IF( ccode_enabled = 'no', NULL, ccode ),
+                holdingbranch = IF( holdingbranch_enabled = 'no', NULL, holdingbranch ),
+                location = IF( location_enabled = 'no', NULL, location )
+            WHERE enabled = 'no';
+        });
+    }
+
+    NewVersion( $DBversion, 23727, "Editing course reserve items is broken");
+}
+
 # SEE bug 13068
 # if there is anything in the atomicupdate, read and execute it.
 my $update_dir = C4::Context->config('intranetdir') . '/installer/data/mysql/atomicupdate/';