Bug 8083 follow-up DBRev number
[koha.git] / installer / data / mysql / updatedatabase.pl
index 9b02cb9..dbceb8d 100755 (executable)
@@ -5369,6 +5369,192 @@ if ( C4::Context->preference("Version") < TransformToNum($DBversion) ) {
     SetVersion($DBversion);
 }
 
+$DBversion = "3.09.00.015";
+if ( C4::Context->preference("Version") < TransformToNum($DBversion) ) {
+    $dbh->do(qq{
+        INSERT IGNORE INTO systempreferences (variable,value,explanation,options,type) VALUES('StatisticsFields','location|itype|ccode','Define Fields (from the items table) used for statistics members','location|itype|ccode','free')
+    });
+    print "Upgrade to $DBversion done (Add System preference StatisticsFields)\n";
+    SetVersion($DBversion);
+}
+
+$DBversion = "3.09.00.016";
+if (C4::Context->preference("Version") < TransformToNum($DBversion)) {
+    $dbh->do("INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('OPACShowBarcode','0','Show items barcode in holding tab','','YesNo')");
+    print "Upgrade to $DBversion done (Add syspref OPACShowBarcode)\n";
+    SetVersion ($DBversion);
+}
+
+$DBversion = "3.09.00.017";
+if (C4::Context->preference("Version") < TransformToNum($DBversion)) {
+    $dbh->do("INSERT INTO systempreferences (variable,value,options,explanation,type) VALUES ('OpacNavRight', '', '70|10', 'Show the following HTML in the right hand column of the main page under the main login form', 'Textarea');");
+    print "Upgrade to $DBversion done (Add customizable OpacNavRight region to the OPAC main page)\n";
+    SetVersion ($DBversion);
+}
+
+$DBversion = "3.09.00.018";
+if (C4::Context->preference("Version") < TransformToNum($DBversion)) {
+    $dbh->do("DROP TABLE IF EXISTS aqbudgetborrowers");
+    $dbh->do("
+        CREATE TABLE aqbudgetborrowers (
+          budget_id int(11) NOT NULL,
+          borrowernumber int(11) NOT NULL,
+          PRIMARY KEY (budget_id, borrowernumber),
+          CONSTRAINT aqbudgetborrowers_ibfk_1 FOREIGN KEY (budget_id)
+            REFERENCES aqbudgets (budget_id)
+            ON DELETE CASCADE ON UPDATE CASCADE,
+          CONSTRAINT aqbudgetborrowers_ibfk_2 FOREIGN KEY (borrowernumber)
+            REFERENCES borrowers (borrowernumber)
+            ON DELETE CASCADE ON UPDATE CASCADE
+        ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+    ");
+    $dbh->do("
+        INSERT INTO permissions (module_bit, code, description)
+        VALUES (11, 'budget_manage_all', 'Manage all budgets')
+    ");
+    print "Upgrade to $DBversion done (Add aqbudgetborrowers table)\n";
+    SetVersion($DBversion);
+}
+
+$DBversion = "3.09.00.019";
+if (C4::Context->preference("Version") < TransformToNum($DBversion)) {
+    $dbh->do("INSERT INTO systempreferences (variable,value,options,explanation,type) VALUES ('OPACShowUnusedAuthorities','1','','Show authorities that are not being used in the OPAC.','YesNo')");
+    print "Upgrade to $DBversion done (Add OPACShowUnusedAuthorities system preference)\n";
+    SetVersion ($DBversion);
+}
+
+$DBversion = "3.09.00.020";
+if ( C4::Context->preference("Version") < TransformToNum($DBversion) ) {
+    $dbh->do("INSERT INTO systempreferences (variable,value,explanation,type) VALUES('EnableBorrowerFiles','0','If enabled, allows librarians to upload and attach arbitrary files to a borrower record.','YesNo')");
+    $dbh->do("
+CREATE TABLE IF NOT EXISTS borrower_files (
+  file_id int(11) NOT NULL AUTO_INCREMENT,
+  borrowernumber int(11) NOT NULL,
+  file_name varchar(255) NOT NULL,
+  file_type varchar(255) NOT NULL,
+  file_description varchar(255) DEFAULT NULL,
+  file_content longblob NOT NULL,
+  date_uploaded timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
+  PRIMARY KEY (file_id),
+  KEY borrowernumber (borrowernumber)
+) ENGINE=InnoDB  DEFAULT CHARSET=utf8;
+    ");
+    $dbh->do("ALTER TABLE borrower_files ADD CONSTRAINT borrower_files_ibfk_1 FOREIGN KEY (borrowernumber) REFERENCES borrowers (borrowernumber) ON DELETE CASCADE ON UPDATE CASCADE");
+
+    print "Upgrade to $DBversion done (Added borrow_files table, EnableBorrowerFiles syspref)\n";
+    SetVersion($DBversion);
+}
+
+$DBversion = "3.09.00.021";
+if ( C4::Context->preference("Version") < TransformToNum($DBversion) ) {
+    $dbh->do("INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES('UpdateTotalIssuesOnCirc','0','Whether to update the totalissues field in the biblio on each circ.',NULL,'YesNo');");
+    print "Upgrade to $DBversion done (Add syspref UpdateTotalIssuesOnCirc)\n";
+    SetVersion($DBversion);
+}
+
+$DBversion = "3.09.00.022";
+if (C4::Context->preference("Version") < TransformToNum($DBversion)) {
+    $dbh->do("ALTER TABLE search_history MODIFY COLUMN query_cgi text NOT NULL");
+    print "Upgrade to $DBversion done (Change search_history.query_cgi type to text. bug 5981)\n";
+    SetVersion($DBversion);
+}
+
+$DBversion = "3.09.00.023";
+if ( C4::Context->preference("Version") < TransformToNum($DBversion) ) {
+    $dbh->do("INSERT IGNORE INTO systempreferences (variable,value,options,explanation,type) VALUES('SearchEngine','Zebra','Solr|Zebra','Search Engine','Choice')");
+    print "Upgrade to $DBversion done (Add system preference SearchEngine )\n";
+    SetVersion($DBversion);
+}
+
+$DBversion ="3.09.00.024";
+if ( C4::Context->preference("Version") < TransformToNum($DBversion) ) {
+    $dbh->do("INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES('IntranetSlipPrinterJS','','Use this JavaScript for printing slips. Define at least function printThenClose(). For use e.g. with Firefox PlugIn jsPrintSetup, see http://jsprintsetup.mozdev.org/','','Free')");
+    print "Upgrade to $DBversion done (Add system preference IntranetSlipPrinterJS))\n";
+    SetVersion($DBversion);
+}
+
+$DBversion = "3.09.00.025";
+if ( C4::Context->preference("Version") < TransformToNum($DBversion) ) {
+    $dbh->do('START TRANSACTION');
+    $dbh->do('CREATE TABLE tmp_reserves AS SELECT * FROM old_reserves LIMIT 0');
+    $dbh->do('ALTER TABLE tmp_reserves ADD reserve_id INT( 11 ) NOT NULL AUTO_INCREMENT PRIMARY KEY FIRST');
+    $dbh->do("
+        INSERT INTO tmp_reserves (
+          borrowernumber, reservedate, biblionumber,
+          constrainttype, branchcode, notificationdate,
+          reminderdate, cancellationdate, reservenotes,
+          priority, found, timestamp, itemnumber,
+          waitingdate, expirationdate, lowestPriority
+        ) SELECT
+          borrowernumber, reservedate, biblionumber,
+          constrainttype, branchcode, notificationdate,
+          reminderdate, cancellationdate, reservenotes,
+          priority, found, timestamp, itemnumber,
+          waitingdate, expirationdate, lowestPriority
+        FROM old_reserves ORDER BY reservedate
+    ");
+    $dbh->do('SET @ai = ( SELECT MAX( reserve_id ) FROM tmp_reserves )');
+    $dbh->do('TRUNCATE old_reserves');
+    $dbh->do('ALTER TABLE old_reserves ADD reserve_id INT( 11 ) NOT NULL PRIMARY KEY FIRST');
+    $dbh->do('INSERT INTO old_reserves SELECT * FROM tmp_reserves WHERE reserve_id <= @ai');
+    $dbh->do("
+        INSERT INTO tmp_reserves (
+          borrowernumber, reservedate, biblionumber,
+          constrainttype, branchcode, notificationdate,
+          reminderdate, cancellationdate, reservenotes,
+          priority, found, timestamp, itemnumber,
+          waitingdate, expirationdate, lowestPriority
+        ) SELECT
+          borrowernumber, reservedate, biblionumber,
+          constrainttype, branchcode, notificationdate,
+          reminderdate, cancellationdate, reservenotes,
+          priority, found, timestamp, itemnumber,
+          waitingdate, expirationdate, lowestPriority
+        FROM reserves ORDER BY reservedate
+    ");
+    $dbh->do('TRUNCATE reserves');
+    $dbh->do('ALTER TABLE reserves ADD reserve_id INT( 11 ) NOT NULL AUTO_INCREMENT PRIMARY KEY FIRST');
+    $dbh->do('INSERT INTO reserves SELECT * FROM tmp_reserves WHERE reserve_id > @ai');
+    $dbh->do('DROP TABLE tmp_reserves');
+    $dbh->do('COMMIT');
+
+    my $sth = $dbh->prepare("
+        SELECT COUNT( * ) AS count
+        FROM information_schema.COLUMNS
+        WHERE COLUMN_NAME =  'reserve_id'
+        AND (
+          TABLE_NAME LIKE  'reserves'
+          OR
+          TABLE_NAME LIKE  'old_reserves'
+        )
+    ");
+    $sth->execute();
+    my $row = $sth->fetchrow_hashref();
+    die("Failed to add reserve_id to reserves tables, please refresh the page to try again.") unless ( $row->{'count'} );
+
+    print "Upgrade to $DBversion done (add reserve_id to reserves & old_reserves tables)\n";
+    SetVersion($DBversion);
+}
+
+
+
+
+$DBversion = "3.09.00.026";
+if ( C4::Context->preference("Version") < TransformToNum($DBversion) ) {
+    $dbh->do("INSERT INTO permissions (module_bit, code, description) VALUES
+        ( 3, 'parameters_remaining_permissions', 'Remaining system parameters permissions'),
+        ( 3, 'manage_circ_rules', 'manage circulation rules')");
+    $dbh->do("INSERT INTO user_permissions (borrowernumber, module_bit, code)
+        SELECT borrowernumber, 3, 'parameters_remaining_permissions'
+        FROM borrowers WHERE flags & (1 << 3)");
+    # Give new subpermissions to all users that have 'parameters' permission flag (bit 3) set
+    # see userflags table
+    $dbh->do("INSERT INTO user_permissions (borrowernumber, module_bit, code)
+        SELECT borrowernumber, 3, 'manage_circ_rules'
+        FROM borrowers WHERE flags & (1 << 3)");
+    print "Upgrade to $DBversion done (Added parameters subpermissions)\n";
+    SetVersion($DBversion);
+}
 
 =head1 FUNCTIONS
 
@@ -5451,6 +5637,7 @@ sub SetVersion {
       my $finish=$dbh->prepare("INSERT into systempreferences (variable,value,explanation) values ('Version',?,'The Koha database version. WARNING: Do not change this value manually, it is maintained by the webinstaller')");
       $finish->execute($kohaversion);
     }
+    C4::Context::clear_syspref_cache(); # invalidate cached preferences
 }
 exit;