From 9bb81f3c9f1e1c693bc473e0b9fe184be9b7e24d Mon Sep 17 00:00:00 2001 From: Kyle M Hall Date: Tue, 16 Dec 2014 08:10:02 -0500 Subject: [PATCH] Bug 12933 - Add new OVERDUES_SLIP letter Signed-off-by: Amy Purvis Signed-off-by: Laurie McKee --- installer/data/mysql/atomicupdate/bug_12933.sql | 5 + .../data/mysql/de-DE/mandatory/sample_notices.sql | 6 + .../data/mysql/en/mandatory/sample_notices.sql | 6 + .../mysql/fr-FR/1-Obligatoire/sample_notices.sql | 6 + .../mysql/nb-NO/1-Obligatorisk/sample_notices.sql | 6 + .../data/mysql/pl-PL/mandatory/sample_notices.sql | 6 + .../data/mysql/ru-RU/mandatory/sample_notices.sql | 6 + .../data/mysql/uk-UA/mandatory/sample_notices.sql | 6 + installer/data/mysql/updatedatabase.pl | 440 +------------------ 9 files changed, 71 insertions(+), 416 deletions(-) create mode 100644 installer/data/mysql/atomicupdate/bug_12933.sql diff --git a/installer/data/mysql/atomicupdate/bug_12933.sql b/installer/data/mysql/atomicupdate/bug_12933.sql new file mode 100644 index 0000000..597cc01 --- /dev/null +++ b/installer/data/mysql/atomicupdate/bug_12933.sql @@ -0,0 +1,5 @@ +INSERT INTO letter ( module, code, branchcode, name, is_html, title, content, message_transport_type ) +VALUES ( 'circulation', 'OVERDUES_SLIP', '', 'Overdues Slip', '0', 'OVERDUES_SLIP', 'The following item(s) is/are currently overdue: + +"<>" by <>, <>, Barcode: <> Fine: <> +', 'print' ); diff --git a/installer/data/mysql/de-DE/mandatory/sample_notices.sql b/installer/data/mysql/de-DE/mandatory/sample_notices.sql index 5e8dcdb..1ae5fd0 100644 --- a/installer/data/mysql/de-DE/mandatory/sample_notices.sql +++ b/installer/data/mysql/de-DE/mandatory/sample_notices.sql @@ -137,3 +137,9 @@ Ihr Biblioheksteam' INSERT INTO letter(module, code, branchcode, name, title, content, message_transport_type) VALUES ('acquisition', 'ACQ_NOTIF_ON_RECEIV', '', 'Benachrichtigung bei Zugang', 'Bestelltes Medium ist eingetroffen', 'Liebe/r <> <>,\n\nDie Bestellung <> (<>) ist eingetroffen und wird bearbeitet.\n\nIhr Bibliotheksteam', 'email'), ('members','MEMBERSHIP_EXPIRY','','Account expiration','Account expiration','Dear <> <> <>,.\r\n\r\nYour library card will expire soon, on:\r\n\r\n<>\r\n\r\nThank you,\r\n\r\nLibrarian\r\n\r\n<>','email'); + +INSERT INTO letter ( module, code, branchcode, name, is_html, title, content, message_transport_type ) +VALUES ( 'circulation', 'OVERDUES_SLIP', '', 'Overdues Slip', '0', 'OVERDUES_SLIP', 'The following item(s) is/are currently overdue: + +"<>" by <>, <>, Barcode: <> Fine: <> +', 'print' ); diff --git a/installer/data/mysql/en/mandatory/sample_notices.sql b/installer/data/mysql/en/mandatory/sample_notices.sql index f20d9d3..14c5634 100644 --- a/installer/data/mysql/en/mandatory/sample_notices.sql +++ b/installer/data/mysql/en/mandatory/sample_notices.sql @@ -156,3 +156,9 @@ Your library.' INSERT INTO letter(module, code, branchcode, name, title, content, message_transport_type) VALUES ('acquisition', 'ACQ_NOTIF_ON_RECEIV', '', 'Notification on receiving', 'Order received', 'Dear <> <>,\n\n The order <> (<>) has been received.\n\nYour library.', 'email'), ('members','MEMBERSHIP_EXPIRY','','Account expiration','Account expiration','Dear <> <> <>,.\r\n\r\nYour library card will expire soon, on:\r\n\r\n<>\r\n\r\nThank you,\r\n\r\nLibrarian\r\n\r\n<>','email'); + +INSERT INTO letter ( module, code, branchcode, name, is_html, title, content, message_transport_type ) +VALUES ( 'circulation', 'OVERDUES_SLIP', '', 'Overdues Slip', '0', 'OVERDUES_SLIP', 'The following item(s) is/are currently overdue: + +"<>" by <>, <>, Barcode: <> Fine: <> +', 'print' ); diff --git a/installer/data/mysql/fr-FR/1-Obligatoire/sample_notices.sql b/installer/data/mysql/fr-FR/1-Obligatoire/sample_notices.sql index f2b416f..6ac8b13 100644 --- a/installer/data/mysql/fr-FR/1-Obligatoire/sample_notices.sql +++ b/installer/data/mysql/fr-FR/1-Obligatoire/sample_notices.sql @@ -152,3 +152,9 @@ Your library.' INSERT INTO letter(module, code, branchcode, name, title, content, message_transport_type) VALUES ('acquisition', 'ACQ_NOTIF_ON_RECEIV', '', 'Notification on receiving', 'Order received', 'Dear <> <>,\n\n The order <> (<>) has been received.\n\nYour library.', 'email'), ('members','MEMBERSHIP_EXPIRY','','Account expiration','Account expiration','Dear <> <> <>,.\r\n\r\nYour library card will expire soon, on:\r\n\r\n<>\r\n\r\nThank you,\r\n\r\nLibrarian\r\n\r\n<>','email'); + +INSERT INTO letter ( module, code, branchcode, name, is_html, title, content, message_transport_type ) +VALUES ( 'circulation', 'OVERDUES_SLIP', '', 'Overdues Slip', '0', 'OVERDUES_SLIP', 'The following item(s) is/are currently overdue: + +"<>" by <>, <>, Barcode: <> Fine: <> +', 'print' ); diff --git a/installer/data/mysql/nb-NO/1-Obligatorisk/sample_notices.sql b/installer/data/mysql/nb-NO/1-Obligatorisk/sample_notices.sql index bca73e8..77ffeeb 100644 --- a/installer/data/mysql/nb-NO/1-Obligatorisk/sample_notices.sql +++ b/installer/data/mysql/nb-NO/1-Obligatorisk/sample_notices.sql @@ -171,3 +171,9 @@ Your library.' INSERT INTO letter(module, code, branchcode, name, title, content, message_transport_type) VALUES ('acquisition', 'ACQ_NOTIF_ON_RECEIV', '', 'Notification on receiving', 'Order received', 'Dear <> <>,\n\n The order <> (<>) has been received.\n\nYour library.', 'email'), ('members','MEMBERSHIP_EXPIRY','','Account expiration','Account expiration','Dear <> <> <>,.\r\n\r\nYour library card will expire soon, on:\r\n\r\n<>\r\n\r\nThank you,\r\n\r\nLibrarian\r\n\r\n<>','email'); + +INSERT INTO letter ( module, code, branchcode, name, is_html, title, content, message_transport_type ) +VALUES ( 'circulation', 'OVERDUES_SLIP', '', 'Overdues Slip', '0', 'OVERDUES_SLIP', 'The following item(s) is/are currently overdue: + +"<>" by <>, <>, Barcode: <> Fine: <> +', 'print' ); diff --git a/installer/data/mysql/pl-PL/mandatory/sample_notices.sql b/installer/data/mysql/pl-PL/mandatory/sample_notices.sql index 98ac149..dbbddb2 100644 --- a/installer/data/mysql/pl-PL/mandatory/sample_notices.sql +++ b/installer/data/mysql/pl-PL/mandatory/sample_notices.sql @@ -149,3 +149,9 @@ Your library.' INSERT INTO letter(module, code, branchcode, name, title, content, message_transport_type) VALUES ('acquisition', 'ACQ_NOTIF_ON_RECEIV', '', 'Notification on receiving', 'Order received', 'Dear <> <>,\n\n The order <> (<>) has been received.\n\nYour library.', 'email'), ('members','MEMBERSHIP_EXPIRY','','Account expiration','Account expiration','Dear <> <> <>,.\r\n\r\nYour library card will expire soon, on:\r\n\r\n<>\r\n\r\nThank you,\r\n\r\nLibrarian\r\n\r\n<>','email'); + +INSERT INTO letter ( module, code, branchcode, name, is_html, title, content, message_transport_type ) +VALUES ( 'circulation', 'OVERDUES_SLIP', '', 'Overdues Slip', '0', 'OVERDUES_SLIP', 'The following item(s) is/are currently overdue: + +"<>" by <>, <>, Barcode: <> Fine: <> +', 'print' ); diff --git a/installer/data/mysql/ru-RU/mandatory/sample_notices.sql b/installer/data/mysql/ru-RU/mandatory/sample_notices.sql index 67d4144..642a915 100644 --- a/installer/data/mysql/ru-RU/mandatory/sample_notices.sql +++ b/installer/data/mysql/ru-RU/mandatory/sample_notices.sql @@ -151,3 +151,9 @@ Your library.' INSERT INTO letter(module, code, branchcode, name, title, content, message_transport_type) VALUES ('acquisition', 'ACQ_NOTIF_ON_RECEIV', '', 'Notification on receiving', 'Order received', 'Dear <> <>,\n\n The order <> (<>) has been received.\n\nYour library.', 'email'), ('members','MEMBERSHIP_EXPIRY','','Account expiration','Account expiration','Dear <> <> <>,.\r\n\r\nYour library card will expire soon, on:\r\n\r\n<>\r\n\r\nThank you,\r\n\r\nLibrarian\r\n\r\n<>','email'); + +INSERT INTO letter ( module, code, branchcode, name, is_html, title, content, message_transport_type ) +VALUES ( 'circulation', 'OVERDUES_SLIP', '', 'Overdues Slip', '0', 'OVERDUES_SLIP', 'The following item(s) is/are currently overdue: + +"<>" by <>, <>, Barcode: <> Fine: <> +', 'print' ); diff --git a/installer/data/mysql/uk-UA/mandatory/sample_notices.sql b/installer/data/mysql/uk-UA/mandatory/sample_notices.sql index 556730c..211f4a5 100644 --- a/installer/data/mysql/uk-UA/mandatory/sample_notices.sql +++ b/installer/data/mysql/uk-UA/mandatory/sample_notices.sql @@ -150,3 +150,9 @@ Your library.' INSERT INTO letter(module, code, branchcode, name, title, content, message_transport_type) VALUES ('acquisition', 'ACQ_NOTIF_ON_RECEIV', '', 'Notification on receiving', 'Order received', 'Dear <> <>,\n\n The order <> (<>) has been received.\n\nYour library.', 'email'), ('members','MEMBERSHIP_EXPIRY','','Account expiration','Account expiration','Dear <> <> <>,.\r\n\r\nYour library card will expire soon, on:\r\n\r\n<>\r\n\r\nThank you,\r\n\r\nLibrarian\r\n\r\n<>','email'); + +INSERT INTO letter ( module, code, branchcode, name, is_html, title, content, message_transport_type ) +VALUES ( 'circulation', 'OVERDUES_SLIP', '', 'Overdues Slip', '0', 'OVERDUES_SLIP', 'The following item(s) is/are currently overdue: + +"<>" by <>, <>, Barcode: <> Fine: <> +', 'print' ); diff --git a/installer/data/mysql/updatedatabase.pl b/installer/data/mysql/updatedatabase.pl index a6753fc..6639880 100755 --- a/installer/data/mysql/updatedatabase.pl +++ b/installer/data/mysql/updatedatabase.pl @@ -6,18 +6,18 @@ # Parts copyright Catalyst IT 2011 # Part of the Koha Library Software www.koha-community.org -# Koha is free software; you can redistribute it and/or modify it -# under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 3 of the License, or -# (at your option) any later version. +# Koha is free software; you can redistribute it and/or modify it under the +# terms of the GNU General Public License as published by the Free Software +# Foundation; either version 2 of the License, or (at your option) any later +# version. # -# Koha is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# Koha is distributed in the hope that it will be useful, but WITHOUT ANY +# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR +# A PARTICULAR PURPOSE. See the GNU General Public License for more details. # -# You should have received a copy of the GNU General Public License -# along with Koha; if not, see . +# You should have received a copy of the GNU General Public License along +# with Koha; if not, write to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. # # Bugs/ToDo: @@ -37,8 +37,6 @@ use Getopt::Long; use C4::Context; use C4::Installer; use C4::Dates; -use Koha::Database; -use Koha; use MARC::Record; use MARC::File::XML ( BinaryEncoding => 'utf8' ); @@ -59,8 +57,6 @@ my ( $prefitem, # preference item in systempreferences table ); -my $schema = Koha::Database->new()->schema(); - my $silent; GetOptions( 's' =>\$silent @@ -3813,8 +3809,8 @@ if (C4::Context->preference("Version") < TransformToNum($DBversion)) { print "Upgrade to $DBversion done (3.2.0 general release)\n"; SetVersion ($DBversion); } -# This is the point where 3.2.x and master diverged, we can use $original_version to make sure we don't +# This is the point where 3.2.x and master diverged, we can use $original_version to make sure we don't # apply updates that have already been done $DBversion = "3.03.00.001"; @@ -4945,52 +4941,10 @@ if ( C4::Context->preference("Version") < TransformToNum($DBversion) ) { $DBversion = "3.07.00.029"; if ( C4::Context->preference("Version") < TransformToNum($DBversion) ) { - $dbh->do(q{DROP TABLE IF EXISTS `oai_sets_descriptions`;}); - $dbh->do(q{DROP TABLE IF EXISTS `oai_sets_mappings`;}); - $dbh->do(q{DROP TABLE IF EXISTS `oai_sets_biblios`;}); - $dbh->do(q{DROP TABLE IF EXISTS `oai_sets`;}); - - $dbh->do(q{ - CREATE TABLE `oai_sets` ( - `id` int(11) NOT NULL auto_increment, - `spec` varchar(80) NOT NULL UNIQUE, - `name` varchar(80) NOT NULL, - PRIMARY KEY (`id`) - ) ENGINE=InnoDB DEFAULT CHARSET=utf8; - }); - - $dbh->do(q{ - CREATE TABLE `oai_sets_descriptions` ( - `set_id` int(11) NOT NULL, - `description` varchar(255) NOT NULL, - CONSTRAINT `oai_sets_descriptions_ibfk_1` FOREIGN KEY (`set_id`) REFERENCES `oai_sets` (`id`) ON DELETE CASCADE ON UPDATE CASCADE - ) ENGINE=InnoDB DEFAULT CHARSET=utf8; - }); - - $dbh->do(q{ - CREATE TABLE `oai_sets_mappings` ( - `set_id` int(11) NOT NULL, - `marcfield` char(3) NOT NULL, - `marcsubfield` char(1) NOT NULL, - `marcvalue` varchar(80) NOT NULL, - CONSTRAINT `oai_sets_mappings_ibfk_1` FOREIGN KEY (`set_id`) REFERENCES `oai_sets` (`id`) ON DELETE CASCADE ON UPDATE CASCADE - ) ENGINE=InnoDB DEFAULT CHARSET=utf8; - }); - - $dbh->do(q{ - CREATE TABLE `oai_sets_biblios` ( - `biblionumber` int(11) NOT NULL, - `set_id` int(11) NOT NULL, - PRIMARY KEY (`biblionumber`, `set_id`), - CONSTRAINT `oai_sets_biblios_ibfk_1` FOREIGN KEY (`biblionumber`) REFERENCES `biblio` (`biblionumber`) ON DELETE CASCADE ON UPDATE CASCADE, - CONSTRAINT `oai_sets_biblios_ibfk_2` FOREIGN KEY (`set_id`) REFERENCES `oai_sets` (`id`) ON DELETE CASCADE ON UPDATE CASCADE - ) ENGINE=InnoDB DEFAULT CHARSET=utf8; - }); - - $dbh->do(q{ - INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES('OAI-PMH:AutoUpdateSets','0','Automatically update OAI sets when a bibliographic record is created or updated','','YesNo'); - }); - + my $installer = C4::Installer->new(); + my $full_path = C4::Context->config('intranetdir') . "/installer/data/$installer->{dbms}/atomicupdate/oai_sets.sql"; + my $error = $installer->load_sql($full_path); + warn $error if $error; print "Upgrade to $DBversion done (Atomic update for OAI-PMH sets management)\n"; SetVersion($DBversion); } @@ -5006,7 +4960,7 @@ if ( C4::Context->preference("Version") < TransformToNum($DBversion) ) { $dbh->do("ALTER TABLE default_branch_item_rules ADD COLUMN `returnbranch` varchar(15) default NULL AFTER `holdallowed`"); # set the default rule to the current value of HomeOrHoldingBranchReturn (default to 'homebranch' if need be) - my $homeorholdingbranchreturn = C4::Context->preference('HomeOrHoldingBranchReturn') || 'homebranch'; + my $homeorholdingbranchreturn = C4::Context->prefernce('HomeOrHoldingBranchReturn') || 'homebranch'; $dbh->do("UPDATE default_circ_rules SET returnbranch = '$homeorholdingbranchreturn'"); print "Upgrade to $DBversion done (Atomic update for OAI-PMH sets management)\n"; SetVersion($DBversion); @@ -9668,7 +9622,7 @@ if ( CheckVersion($DBversion) ) { DROP INDEX userid , ADD UNIQUE userid (userid) }); - print "Upgrade to $DBversion done (Bug 1861: Unique patrons logins not (totally) enforced)\n"; + print "Upgrade to $DBversion done (Bug 1861 - Unique patrons logins not (totally) enforced)\n"; } SetVersion($DBversion); @@ -9698,366 +9652,20 @@ if(CheckVersion($DBversion)) { ALTER TABLE borrower_attribute_types MODIFY COLUMN authorised_value_category VARCHAR(32) DEFAULT NULL }); - print "Upgrade to $DBversion done (Bug 13379: Modify authorised_values.category to varchar(32))\n"; + print "Upgrade to $DBversion done (Bug 13379 - Modify authorised_values.category to varchar(32))\n"; SetVersion($DBversion); } $DBversion = "3.19.00.006"; if ( CheckVersion($DBversion) ) { - $dbh->do(q|SET foreign_key_checks = 0|); - my $sth = $dbh->table_info( '','','','TABLE' ); - my ( $cat, $schema, $name, $type, $remarks ); - while ( ( $cat, $schema, $name, $type, $remarks ) = $sth->fetchrow_array ) { - my $table_sth = $dbh->prepare(qq|SHOW CREATE TABLE $name|); - $table_sth->execute; - my @table = $table_sth->fetchrow_array; - unless ( $table[1] =~ /COLLATE=utf8mb4_unicode_ci/ ) { #catches utf8mb4 collated tables - if ( $name eq 'marc_subfield_structure' ) { - $dbh->do(q| - ALTER TABLE marc_subfield_structure - MODIFY COLUMN tagfield varchar(3) COLLATE utf8_unicode_ci NOT NULL DEFAULT '', - MODIFY COLUMN tagsubfield varchar(1) COLLATE utf8_bin NOT NULL DEFAULT '', - MODIFY COLUMN liblibrarian varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '', - MODIFY COLUMN libopac varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '', - MODIFY COLUMN kohafield varchar(40) COLLATE utf8_unicode_ci DEFAULT NULL, - MODIFY COLUMN authorised_value varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL, - MODIFY COLUMN authtypecode varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL, - MODIFY COLUMN value_builder varchar(80) COLLATE utf8_unicode_ci DEFAULT NULL, - MODIFY COLUMN frameworkcode varchar(4) COLLATE utf8_unicode_ci NOT NULL DEFAULT '', - MODIFY COLUMN seealso varchar(1100) COLLATE utf8_unicode_ci DEFAULT NULL, - MODIFY COLUMN link varchar(80) COLLATE utf8_unicode_ci DEFAULT NULL - |); - } - else { - $dbh->do(qq|ALTER TABLE $name CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci|); - } - } + $dbh->do(q|SET foreign_key_checks = 0|);; + my @tables = $dbh->tables(); + for my $table ( @tables ) { + $dbh->do(qq|ALTER TABLE $table CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci|); } $dbh->do(q|SET foreign_key_checks = 1|);; - print "Upgrade to $DBversion done (Bug 11944: Convert DB tables to utf8_unicode_ci)\n"; - SetVersion($DBversion); -} - -$DBversion = "3.19.00.007"; -if ( CheckVersion($DBversion) ) { - my $orphan_budgets = $dbh->selectall_arrayref(q| - SELECT budget_id, budget_name, budget_code - FROM aqbudgets - WHERE budget_parent_id IS NOT NULL - AND budget_parent_id NOT IN ( - SELECT DISTINCT budget_id FROM aqbudgets - ) - |, { Slice => {} } ); - - if ( @$orphan_budgets ) { - for my $b ( @$orphan_budgets ) { - print "Fund $b->{budget_name} (code:$b->{budget_code}, id:$b->{budget_id}) does not have a parent, it may cause problem\n"; - } - print "Upgrade to $DBversion done (Bug 12905: Check budget integrity: FAIL)\n"; - } else { - print "Upgrade to $DBversion done (Bug 12905: Check budget integrity: OK)\n"; - } - SetVersion($DBversion); -} - -$DBversion = "3.19.00.008"; -if ( CheckVersion($DBversion) ) { - my $number_of_orders_not_linked = $dbh->selectcol_arrayref(q| - SELECT COUNT(*) - FROM aqorders o - WHERE NOT EXISTS ( - SELECT NULL - FROM aqbudgets b - WHERE b.budget_id = o.budget_id - ); - |); - - if ( $number_of_orders_not_linked->[0] > 0 ) { - $dbh->do(q| - INSERT INTO aqbudgetperiods(budget_period_startdate, budget_period_enddate, budget_period_active, budget_period_description, budget_period_total) VALUES ( CAST(NOW() AS date), CAST(NOW() AS date), 0, "WARNING: This budget has been automatically created by the updatedatabase script, please see bug 12601 for more information", 0) - |); - my $budget_period_id = $dbh->last_insert_id( undef, undef, 'aqbudgetperiods', undef ); - $dbh->do(qq| - INSERT INTO aqbudgets(budget_code, budget_name, budget_amount, budget_period_id) VALUES ( "BACKUP_TMP", "WARNING: fund created by the updatedatabase script, please see bug 12601", 0, $budget_period_id ); - |); - my $budget_id = $dbh->last_insert_id( undef, undef, 'aqbudgets', undef ); - $dbh->do(qq| - UPDATE aqorders o - SET budget_id = $budget_id - WHERE NOT EXISTS ( - SELECT NULL - FROM aqbudgets b - WHERE b.budget_id = o.budget_id - ) - |); - } - - $dbh->do(q| - ALTER TABLE aqorders - ADD CONSTRAINT aqorders_budget_id_fk FOREIGN KEY (budget_id) REFERENCES aqbudgets(budget_id) ON DELETE CASCADE ON UPDATE CASCADE - |); - - print "Upgrade to $DBversion done (Bug 12601: Add new foreign key aqorders.budget_id" . ( ( $number_of_orders_not_linked->[0] > 0 ) ? ' WARNING: temporary budget and fund have been created (search for "BACKUP_TMP"). At least one of your order was not linked to a budget' : '' ) . ")\n"; - SetVersion($DBversion); -} - -$DBversion = "3.19.00.009"; -if ( CheckVersion($DBversion) ) { - $dbh->do(q| - UPDATE suggestions s SET s.budgetid = NULL - WHERE NOT EXISTS ( - SELECT NULL - FROM aqbudgets b - WHERE b.budget_id = s.budgetid - ); - |); - - $dbh->do(q| - ALTER TABLE suggestions - ADD CONSTRAINT suggestions_budget_id_fk FOREIGN KEY (budgetid) REFERENCES aqbudgets(budget_id) ON DELETE SET NULL ON UPDATE CASCADE - |); - - print "Upgrade to $DBversion done (Bug 13007: Add new foreign key suggestions.budgetid)\n"; - SetVersion($DBversion); -} - -$DBversion = "3.19.00.010"; -if ( CheckVersion($DBversion) ) { - $dbh->do(q| - INSERT IGNORE INTO systempreferences (variable,value,explanation,options,type) - VALUES('SessionRestrictionByIP','1','Check for Change in Remote IP address for Session Security. Disable when remote ip address changes frequently.','','YesNo') - |); - print "Upgrade to $DBversion done (Bug 5511: SessionRestrictionByIP)\n"; - SetVersion ($DBversion); -} - -$DBversion = "3.19.00.011"; -if ( CheckVersion($DBversion) ) { - $dbh->do(q| - INSERT INTO userflags (bit, flag, flagdesc, defaulton) VALUES - (20, 'lists', 'Lists', 0) - |); - $dbh->do(q| - INSERT INTO permissions (module_bit, code, description) VALUES - (20, 'delete_public_lists', 'Delete public lists') - |); - print "Upgrade to $DBversion done (Bug 13417: Add permission to delete public lists)\n"; - SetVersion ($DBversion); -} - -$DBversion = "3.19.00.012"; -if(CheckVersion($DBversion)) { - $dbh->do(q{ - ALTER TABLE biblioitems MODIFY COLUMN marcxml longtext - }); - - $dbh->do(q{ - ALTER TABLE deletedbiblioitems MODIFY COLUMN marcxml longtext - }); - - print "Upgrade to $DBversion done (Bug 13523 Remove NOT NULL restriction on field marcxml due to mysql STRICT_TRANS_TABLES)\n"; - SetVersion ($DBversion); -} - -$DBversion = "3.19.00.013"; -if ( CheckVersion($DBversion) ) { - $dbh->do(q| - INSERT INTO permissions (module_bit, code, description) VALUES - (13, 'records_batchmod', 'Perform batch modification of records (biblios or authorities)') - |); - print "Upgrade to $DBversion done (Bug 11395: Add permission tools_records_batchmod)\n"; - SetVersion($DBversion); -} - -$DBversion = "3.19.00.014"; -if ( CheckVersion($DBversion) ) { - $dbh->do(q| - CREATE TABLE aqorder_users ( - ordernumber int(11) NOT NULL, - borrowernumber int(11) NOT NULL, - PRIMARY KEY (ordernumber, borrowernumber), - CONSTRAINT aqorder_users_ibfk_1 FOREIGN KEY (ordernumber) REFERENCES aqorders (ordernumber) ON DELETE CASCADE ON UPDATE CASCADE, - CONSTRAINT aqorder_users_ibfk_2 FOREIGN KEY (borrowernumber) REFERENCES borrowers (borrowernumber) ON DELETE CASCADE ON UPDATE CASCADE - ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; - |); - - $dbh->do(q| - INSERT INTO letter(module, code, branchcode, name, title, content, message_transport_type) - VALUES ('acquisition', 'ACQ_NOTIF_ON_RECEIV', '', 'Notification on receiving', 'Order received', 'Dear <> <>,\n\n The order <> (<>) has been received.\n\nYour library.', 'email') - |); - print "Upgrade to $DBversion done (Bug 12648: Add letter ACQ_NOTIF_ON_RECEIV )\n"; - SetVersion ($DBversion); -} - -$DBversion = "3.19.00.015"; -if ( CheckVersion($DBversion) ) { - $dbh->do(q| - ALTER TABLE search_history ADD COLUMN id INT(11) NOT NULL AUTO_INCREMENT FIRST, ADD PRIMARY KEY(id); - |); - print "Upgrade to $DBversion done (Bug 11430: Add primary key for search_history)\n"; - SetVersion($DBversion); -} - -$DBversion = "3.19.00.016"; -if(CheckVersion($DBversion)) { - my @order_cancellation_reason = $dbh->selectrow_array("SELECT count(*) FROM authorised_values WHERE category='ORDER_CANCELLATION_REASON'"); - if ($order_cancellation_reason[0] == 0) { - $dbh->do(q{ - INSERT INTO authorised_values (category, authorised_value, lib) VALUES - ('ORDER_CANCELLATION_REASON', 0, 'No reason provided'), - ('ORDER_CANCELLATION_REASON', 1, 'Out of stock'), - ('ORDER_CANCELLATION_REASON', 2, 'Restocking') - }); - - my $already_existing_reasons = $dbh->selectcol_arrayref(q{ - SELECT DISTINCT( cancellationreason ) - FROM aqorders; - }, { Slice => {} }); - - my $update_orders_sth = $dbh->prepare(q{ - UPDATE aqorders - SET cancellationreason = ? - WHERE cancellationreason = ? - }); - - my $insert_av_sth = $dbh->prepare(q{ - INSERT INTO authorised_values (category, authorised_value, lib) VALUES - ('ORDER_CANCELLATION_REASON', ?, ?) - }); - my $i = 3; - for my $reason ( @$already_existing_reasons ) { - next unless $reason; - $insert_av_sth->execute( $i, $reason ); - $update_orders_sth->execute( $i, $reason ); - $i++; - } - print "Upgrade to $DBversion done (Bug 13380: Add the ORDER_CANCELLATION_REASON authorised value)\n"; - } - else { - print "Upgrade to $DBversion done (Bug 13380: ORDER_CANCELLATION_REASON authorised value already existed from earlier update!)\n"; - } - - SetVersion($DBversion); -} - -$DBversion = '3.19.00.017'; -if ( CheckVersion($DBversion) ) { - # First create the column - $dbh->do("ALTER TABLE issuingrules ADD onshelfholds tinyint(1) default 0 NOT NULL"); - # Now update the column - if (C4::Context->preference("AllowOnShelfHolds")){ - # Pref is on, set allow for all rules - $dbh->do("UPDATE issuingrules SET onshelfholds=1"); - } else { - # If the preference is not set, leave off - $dbh->do("UPDATE issuingrules SET onshelfholds=0"); - } - # Remove from the systempreferences table - $dbh->do("DELETE FROM systempreferences WHERE variable = 'AllowOnShelfHolds'"); - - # First create the column - $dbh->do("ALTER TABLE issuingrules ADD opacitemholds char(1) DEFAULT 'N' NOT NULL"); - # Now update the column - my $opacitemholds = C4::Context->preference("OPACItemHolds") || ''; - if (lc ($opacitemholds) eq 'force') { - $opacitemholds = 'F'; - } - else { - $opacitemholds = $opacitemholds ? 'Y' : 'N'; - } - # Set allow for all rules - $dbh->do("UPDATE issuingrules SET opacitemholds='$opacitemholds'"); - - # Remove from the systempreferences table - $dbh->do("DELETE FROM systempreferences WHERE variable = 'OPACItemHolds'"); - - print "Upgrade to $DBversion done (Bug 5786: Move AllowOnShelfHolds to circulation matrix; Move OPACItemHolds system preference to circulation matrix)\n"; - SetVersion ($DBversion); -} - - -$DBversion = "3.19.00.018"; -if ( CheckVersion($DBversion) ) { - $dbh->do(q| - UPDATE systempreferences set variable="OpacAdditionalStylesheet" WHERE variable="opaccolorstylesheet" - |); - print "Upgrade to $DBversion done (Bug 10328: Rename opaccolorstylesheet to OpacAdditionalStylesheet\n"; - SetVersion ($DBversion); -} - -$DBversion = "3.19.00.019"; -if ( CheckVersion($DBversion) ) { - $dbh->do(q{ - INSERT IGNORE INTO systempreferences (variable, value, explanation, options, type) - VALUES('Coce','0', 'If on, enables cover retrieval from the configured Coce server', NULL, 'YesNo') - }); - $dbh->do(q{ - INSERT IGNORE INTO systempreferences (variable, value, explanation, options, type) - VALUES('CoceHost', NULL, 'Coce server URL', NULL,'Free') - }); - $dbh->do(q{ - INSERT IGNORE INTO systempreferences (variable, value, explanation, options, type) - VALUES('CoceProviders', NULL, 'Coce providers', 'aws,gb,ol', 'multiple') - }); - print "Upgrade to $DBversion done (Bug 9580: Cover image from Coce, a remote image URL cache)\n"; - SetVersion($DBversion); -} - -$DBversion = "3.19.00.020"; -if ( CheckVersion($DBversion) ) { - $dbh->do(q| - ALTER TABLE aqorders DROP COLUMN supplierreference; - |); - - print "Upgrade to $DBversion done (Bug 11008: DROP column aqorders.supplierreference)\n"; - SetVersion($DBversion); -} - -$DBversion = "3.19.00.021"; -if ( CheckVersion($DBversion) ) { - $dbh->do(q| - ALTER TABLE issues DROP COLUMN issuingbranch - |); - $dbh->do(q| - ALTER TABLE old_issues DROP COLUMN issuingbranch - |); - print "Upgrade to $DBversion done (Bug 2806: Remove issuingbranch columns)\n"; - SetVersion ($DBversion); -} - -$DBversion = '3.19.00.022'; -if ( CheckVersion($DBversion) ) { - $dbh->do(q{ - ALTER TABLE suggestions DROP COLUMN mailoverseeing; - }); - print "Upgrade to $DBversion done (Bug 13006: Drop column suggestion.mailoverseeing)\n"; - SetVersion($DBversion); -} - -$DBversion = "3.19.00.023"; -if ( CheckVersion($DBversion) ) { - $dbh->do(q| - DELETE FROM systempreferences where variable = 'AddPatronLists' - |); - print "Upgrade to $DBversion done (Bug 13497: Remove the AddPatronLists system preferences)\n"; - SetVersion ($DBversion); -} - -$DBversion = "3.19.00.024"; -if ( CheckVersion($DBversion) ) { - $dbh->do(qq|DROP table patroncards;|); - print "Upgrade to $DBversion done (Bug 13539: Remove table patroncards from database as it's no longer in use)\n"; - SetVersion ($DBversion); -} - -$DBversion = "3.19.00.025"; -if ( CheckVersion($DBversion) ) { - $dbh->do(q| - INSERT INTO systempreferences ( variable, value, options, explanation, type ) VALUES - ('SearchWithISBNVariations','0',NULL,'If enabled, search on all variations of the ISBN','YesNo') - |); - print "Upgrade to $DBversion done (Bug 13528: Add the SearchWithISBNVariations syspref)\n"; + print "Upgrade to $DBversion done (Bug 11944 - Convert DB tables to utf8_unicode_ci)\n"; SetVersion ($DBversion); } @@ -11214,7 +10822,7 @@ sub CheckVersion { return 1 if ( $proposed_version =~ m/XXX/ ); if ( C4::Context->preference("Version") < $version_number - && $version_number <= TransformToNum( $Koha::VERSION ) ) + && $version_number <= TransformToNum( C4::Context->final_linear_version ) ) { return 1; } -- 1.7.2.5