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
=head2 TableExists($table)