X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=installer%2Fdata%2Fmysql%2Fupdatedatabase.pl;h=ea7f84a607de0b101e246ce753120b0043c6007b;hb=9f41fe64beb579dd6edd0a7ad81aee96e474a842;hp=6d648dd1444a71cf92506a7e181bbdc81212cd4b;hpb=2f99d99991f7d45d16b16ab66bb447d45833eb55;p=koha.git diff --git a/installer/data/mysql/updatedatabase.pl b/installer/data/mysql/updatedatabase.pl index 6d648dd144..ea7f84a607 100755 --- a/installer/data/mysql/updatedatabase.pl +++ b/installer/data/mysql/updatedatabase.pl @@ -2644,12 +2644,672 @@ if (C4::Context->preference("Version") < TransformToNum($DBversion)) { print "Upgrade to $DBversion done (Added primary keys to language tables)\n"; } +$DBversion = '3.01.00.059'; +if (C4::Context->preference("Version") < TransformToNum($DBversion)) { + $dbh->do("INSERT INTO systempreferences (variable,value,options,explanation,type)VALUES('DisplayOPACiconsXSLT', '1', '', 'If ON, displays the format, audience, type icons in XSLT MARC21 results and display pages.', 'YesNo')"); + SetVersion ($DBversion); + print "Upgrade to $DBversion done (added DisplayOPACiconsXSLT sysprefs)\n"; +} + +$DBversion = '3.01.00.060'; +if (C4::Context->preference("Version") < TransformToNum($DBversion)) { + $dbh->do("INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES('AllowAllMessageDeletion','0','Allow any Library to delete any message','','YesNo');"); + $dbh->do('DROP TABLE IF EXISTS messages'); + $dbh->do("CREATE TABLE messages ( `message_id` int(11) NOT NULL auto_increment, + `borrowernumber` int(11) NOT NULL, + `branchcode` varchar(4) default NULL, + `message_type` varchar(1) NOT NULL, + `message` text NOT NULL, + `message_date` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, + PRIMARY KEY (`message_id`) + ) ENGINE=InnoDB DEFAULT CHARSET=utf8"); + + print "Upgrade to $DBversion done ( Added AllowAllMessageDeletion syspref and messages table )\n"; + SetVersion ($DBversion); +} + +$DBversion = '3.01.00.061'; +if (C4::Context->preference("Version") < TransformToNum($DBversion)) { + $dbh->do("INSERT INTO systempreferences (variable,value,explanation,options,type)VALUES('ShowPatronImageInWebBasedSelfCheck', '0', 'If ON, displays patron image when a patron uses web-based self-checkout', '', 'YesNo')"); + print "Upgrade to $DBversion done ( Added ShowPatronImageInWebBasedSelfCheck system preference )\n"; + SetVersion ($DBversion); +} + +$DBversion = "3.01.00.062"; +if (C4::Context->preference("Version") < TransformToNum($DBversion)) { + $dbh->do("INSERT INTO permissions (module_bit, code, description) VALUES ( 13, 'manage_csv_profiles', 'Manage CSV export profiles')"); + $dbh->do(q/ + CREATE TABLE `export_format` ( + `export_format_id` int(11) NOT NULL auto_increment, + `profile` varchar(255) NOT NULL, + `description` mediumtext NOT NULL, + `marcfields` mediumtext NOT NULL, + PRIMARY KEY (`export_format_id`) + ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Used for CSV export'; + /); + print "Upgrade to $DBversion done (added csv export profiles)\n"; +} + +$DBversion = "3.01.00.063"; +if (C4::Context->preference("Version") < TransformToNum($DBversion)) { + $dbh->do(" + CREATE TABLE `fieldmapping` ( + `id` int(11) NOT NULL auto_increment, + `field` varchar(255) NOT NULL, + `frameworkcode` char(4) NOT NULL default '', + `fieldcode` char(3) NOT NULL, + `subfieldcode` char(1) NOT NULL, + PRIMARY KEY (`id`) + ) ENGINE=InnoDB DEFAULT CHARSET=utf8; + "); + SetVersion ($DBversion); +} + +$DBversion = '3.01.00.064'; +if (C4::Context->preference("Version") < TransformToNum($DBversion)) { + $dbh->do('ALTER TABLE issuingrules DROP FOREIGN KEY issuingrules_ibfk_1'); + $dbh->do('ALTER TABLE issuingrules DROP FOREIGN KEY issuingrules_ibfk_2'); + SetVersion ($DBversion); + print "Upgrade to $DBversion done (deleting contraints in issuingrules)\n"; +} + +$DBversion = '3.01.00.065'; +if (C4::Context->preference("Version") < TransformToNum($DBversion)) { + $dbh->do('ALTER TABLE issuingrules ADD COLUMN `renewalsallowed` smallint(6) NOT NULL default "0" AFTER `issuelength`;'); + $sth = $dbh->prepare("SELECT itemtype, renewalsallowed FROM itemtypes"); + $sth->execute(); + + my $sthupd = $dbh->prepare("UPDATE issuingrules SET renewalsallowed = ? WHERE itemtype = ?"); + + while(my $row = $sth->fetchrow_hashref){ + $sthupd->execute($row->{renewalsallowed}, $row->{itemtype}); + } + + $dbh->do('ALTER TABLE itemtypes DROP COLUMN `renewalsallowed`;'); + + SetVersion ($DBversion); + print "Upgrade to $DBversion done (Moving allowed renewals from itemtypes to issuingrule)\n"; +} + +$DBversion = '3.01.00.066'; +if (C4::Context->preference("Version") < TransformToNum($DBversion)) { + $dbh->do('ALTER TABLE issuingrules ADD COLUMN `reservesallowed` smallint(6) NOT NULL default "0" AFTER `renewalsallowed`;'); + + my $maxreserves = C4::Context->preference('maxreserves'); + $sth = $dbh->prepare('UPDATE issuingrules SET reservesallowed = ?;'); + $sth->execute($maxreserves); + + $dbh->do('DELETE FROM systempreferences WHERE variable = "maxreserves";'); + + $dbh->do("INSERT INTO systempreferences (variable,value, options, explanation, type) VALUES('ReservesControlBranch','PatronLibrary','ItemHomeLibrary|PatronLibrary','Branch checked for members reservations rights','Choice')"); + + SetVersion ($DBversion); + print "Upgrade to $DBversion done (Moving max allowed reserves from system preference to issuingrule)\n"; +} + +$DBversion = "3.01.00.067"; +if (C4::Context->preference("Version") < TransformToNum($DBversion)) { + $dbh->do("INSERT INTO permissions (module_bit, code, description) VALUES ( 13, 'batchmod', 'Perform batch modification of items')"); + $dbh->do("INSERT INTO permissions (module_bit, code, description) VALUES ( 13, 'batchdel', 'Perform batch deletion of items')"); + print "Upgrade to $DBversion done (added permissions for batch modification and deletion)\n"; +} + +$DBversion = "3.01.00.068"; +if (C4::Context->preference("Version") < TransformToNum($DBversion)) { + $dbh->do("ALTER TABLE issuingrules ADD + COLUMN `finedays` int(11) default NULL AFTER `fine`, + COLUMN `renewalsallowed` smallint(6) default NULL, + COLUMN `reservesallowed` smallint(6) default NULL, + "); + my $sth = $dbh->prepare("SELECT itemtype, renewalsallowed FROM itemtypes"); + $sth->execute(); + my $sthupd = $dbh->prepare("UPDATE issuingrules SET renewalsallowed = ? WHERE itemtype = ?"); + while(my $row = $sth->fetchrow_hashref){ + $sthupd->execute($row->{renewalsallowed}, $row->{itemtype}); + } + $dbh->do('ALTER TABLE itemtypes DROP COLUMN `renewalsallowed`;'); + print "Upgrade done (Adding finedays renewalsallowed, and reservesallowed fields in issuingrules table)\n"; +} + + +$DBversion = "3.01.00.069"; +if (C4::Context->preference("Version") < TransformToNum($DBversion)) { + $dbh->do("INSERT INTO `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) VALUES ('EnableOpacSearchHistory', '1', '', 'Enable or disable opac search history', 'YesNo')"); + + my $create = <do($create); + + print "Upgrade done (added OPAC search history preference and table)\n"; +} + +$DBversion = "3.01.00.071"; +if (C4::Context->preference("Version") < TransformToNum($DBversion)) { + $dbh->do("ALTER TABLE authorised_values ADD COLUMN `lib_opac` VARCHAR(80) default NULL AFTER `lib`"); + print "Upgrade done (Added a lib_opac field in authorised_values table)\n"; +} + +$DBversion = "3.01.00.071"; +if (C4::Context->preference("Version") < TransformToNum($DBversion)) { + $dbh->do("ALTER TABLE `subscription` ADD `enddate` date default NULL"); + $dbh->do("ALTER TABLE subscriptionhistory CHANGE enddate histenddate DATE default NULL"); + print "Upgrade to $DBversion done ( Adding enddate to subscription)\n"; +} + +=item + +Acquisitions update + +=cut + +$DBversion = "3.01.00.100"; +if (C4::Context->preference("Version") < TransformToNum($DBversion)) { + $dbh->do("INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES('OpacPrivacy', '0', 'if ON, allows patrons to define their privacy rules (reading history)',NULL,'YesNo')"); + # create a new syspref for the 'Mr anonymous' patron + $dbh->do("INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES('AnonymousPatron', '0', \"Set the identifier (borrowernumber) of the 'Mister anonymous' patron. Used for Suggestion and reading history privacy\",NULL,'')"); + # fill AnonymousPatron with AnonymousSuggestion value (copy) + my $sth=$dbh->prepare("SELECT value FROM systempreferences WHERE variable='AnonSuggestions'"); + $sth->execute; + my ($value) = $sth->fetchrow() || 0; + $dbh->do("UPDATE systempreferences SET value='$value' WHERE variable='AnonymousPatron'"); + # set AnonymousSuggestion do YesNo + # 1st, set the value (1/True if it had a borrowernumber) + $dbh->do("UPDATE systempreferences SET value=1 WHERE variable='AnonSuggestions' AND value>0"); + # 2nd, change the type to Choice + $dbh->do("UPDATE systempreferences SET type='YesNo' WHERE variable='AnonSuggestions'"); + # borrower reading record privacy : 0 : forever, 1 : laws, 2 : don't keep at all + $dbh->do("ALTER TABLE `borrowers` ADD `privacy` INTEGER NOT NULL DEFAULT 1;"); + print "Upgrade to $DBversion done (add new syspref and column in borrowers)\n"; + SetVersion ($DBversion); +} + +$DBversion = '3.01.00.101'; +if (C4::Context->preference("Version") < TransformToNum($DBversion)) { + $dbh->do(<<'END_SQL'); +CREATE TABLE IF NOT EXISTS `aqcontract` ( + `contractnumber` int(11) NOT NULL auto_increment, + `contractstartdate` date default NULL, + `contractenddate` date default NULL, + `contractname` varchar(50) default NULL, + `contractdescription` mediumtext, + `booksellerid` int(11) not NULL, + PRIMARY KEY (`contractnumber`), + CONSTRAINT `booksellerid_fk1` FOREIGN KEY (`booksellerid`) + REFERENCES `aqbooksellers` (`id`) ON DELETE CASCADE ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +END_SQL + print "Upgrade to $DBversion done (adding aqcontract table)\n"; + SetVersion ($DBversion); +} + +$DBversion = '3.01.00.102'; +if (C4::Context->preference("Version") < TransformToNum($DBversion)) { + $dbh->do("ALTER TABLE `aqbasket` ADD COLUMN `basketname` varchar(50) default NULL AFTER `basketno`"); + $dbh->do("ALTER TABLE `aqbasket` ADD COLUMN `note` mediumtext AFTER `basketname`"); + $dbh->do("ALTER TABLE `aqbasket` ADD COLUMN `booksellernote` mediumtext AFTER `note`"); + $dbh->do("ALTER TABLE `aqbasket` ADD COLUMN `contractnumber` int(11) AFTER `booksellernote`"); + $dbh->do("ALTER TABLE `aqbasket` ADD FOREIGN KEY (`contractnumber`) REFERENCES `aqcontract` (`contractnumber`)"); + print "Upgrade to $DBversion done (edit aqbasket table done)\n"; + SetVersion ($DBversion); +} + +$DBversion = '3.01.00.103'; +if (C4::Context->preference("Version") < TransformToNum($DBversion)) { + $dbh->do("ALTER TABLE `aqorders` ADD COLUMN `uncertainprice` tinyint(1)"); + + print "Upgrade to $DBversion done (adding uncertainprices)\n"; + SetVersion ($DBversion); +} + +$DBversion = '3.01.00.104'; +if (C4::Context->preference("Version") < TransformToNum($DBversion)) { + $dbh->do("CREATE TABLE IF NOT EXISTS `aqbasketgroups` ( + `id` int(11) NOT NULL auto_increment, + `name` varchar(50) default NULL, + `closed` tinyint(1) default NULL, + `booksellerid` int(11) NOT NULL, + PRIMARY KEY (`id`), + KEY `booksellerid` (`booksellerid`), + CONSTRAINT `aqbasketgroups_ibfk_1` FOREIGN KEY (`booksellerid`) REFERENCES `aqbooksellers` (`id`) ON UPDATE CASCADE ON DELETE CASCADE + ) ENGINE=InnoDB DEFAULT CHARSET=utf8;"); + $dbh->do("ALTER TABLE aqbasket ADD COLUMN `basketgroupid` int(11)"); + $dbh->do("ALTER TABLE aqbasket ADD FOREIGN KEY (`basketgroupid`) REFERENCES `aqbasketgroups` (`id`) ON UPDATE CASCADE ON DELETE SET NULL"); + $dbh->do("INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES ('pdfformat','pdfformat::example','Controls what script is used for printing (basketgroups)','','free')"); + print "Upgrade to $DBversion done (adding basketgroups)\n"; + SetVersion ($DBversion); +} + +$DBversion = '3.01.00.105'; +if (C4::Context->preference("Version") < TransformToNum($DBversion)) { + $dbh->do("DROP TABLE IF EXISTS `aqbudgetperiods` "); + $dbh->do(qq| + CREATE TABLE `aqbudgetperiods` ( + `budget_period_id` int(11) NOT NULL auto_increment, + `budget_period_startdate` date NOT NULL, + `budget_period_enddate` date NOT NULL, + `budget_period_active` tinyint(1) default '0', + `budget_period_description` mediumtext, + `budget_period_locked` tinyint(1) default NULL, + `sort1_authcat` varchar(10) default NULL, + `sort2_authcat` varchar(10) default NULL, + PRIMARY KEY (`budget_period_id`) + ) ENGINE=InnoDB DEFAULT CHARSET=utf8 |); + + $dbh->do(< AQBUDGETS IMPORT JUST YET, +# BUT A NEW CLEAN AQBUDGETS TABLE CREATE FOR NOW.. +# DROP TABLE IF EXISTS `aqbudget`; +#CREATE TABLE `aqbudget` ( +# `bookfundid` varchar(10) NOT NULL default ', +# `startdate` date NOT NULL default 0, +# `enddate` date default NULL, +# `budgetamount` decimal(13,2) default NULL, +# `aqbudgetid` tinyint(4) NOT NULL auto_increment, +# `branchcode` varchar(10) default NULL, + DropAllForeignKeys('aqbudget'); + #$dbh->do("drop table aqbudget;"); + + + $dbh->do(<selectcol_arrayref(<do(<do(<do(<do(<do(<prepare(qq|SELECT budget_period_id from aqbudgetperiods where budget_period_startdate=? and budget_period_enddate=?|); + my $query_bookfund= $dbh->prepare(qq|SELECT * from aqbookfund where bookfundid=?|); + my $selectbudgets=$dbh->prepare(qq|SELECT * from aqbudgets|); + my $updatebudgets=$dbh->prepare(qq|UPDATE aqbudgets SET budget_period_id= ? , budget_name=?, budget_branchcode=? where budget_id=?|); + $selectbudgets->execute; + while (my $databudget=$selectbudgets->fetchrow_hashref){ + $query_period->execute ($$databudget{startdate},$$databudget{enddate}); + my ($budgetperiodid)=$query_period->fetchrow; + $query_bookfund->execute ($$databudget{budget_code}); + my $databf=$query_bookfund->fetchrow_hashref; + my $branchcode=$$databudget{budget_branchcode}||$$databf{branchcode}; + $updatebudgets->execute($budgetperiodid,$$databf{bookfundname},$branchcode,$$databudget{budget_id}); + } + $dbh->do(<do("DROP TABLE aqbookfund "); + + $dbh->do("DROP TABLE IF EXISTS `aqbudgets_planning` "); + $dbh->do("CREATE TABLE `aqbudgets_planning` ( + `plan_id` int(11) NOT NULL auto_increment, + `budget_id` int(11) NOT NULL, + `budget_period_id` int(11) NOT NULL, + `estimated_amount` decimal(28,6) default NULL, + `authcat` varchar(30) NOT NULL, + `authvalue` varchar(30) NOT NULL, + `display` tinyint(1) DEFAULT 1, + PRIMARY KEY (`plan_id`), + CONSTRAINT `aqbudgets_planning_ifbk_1` FOREIGN KEY (`budget_id`) REFERENCES `aqbudgets` (`budget_id`) ON DELETE CASCADE ON UPDATE CASCADE + ) ENGINE=InnoDB DEFAULT CHARSET=utf8;"); + + $dbh->do("ALTER TABLE `aqorders` + ADD COLUMN `budget_id` tinyint(4) NOT NULL, + ADD COLUMN `budgetgroup_id` int(11) NOT NULL, + ADD COLUMN `sort1_authcat` varchar(10) default NULL, + ADD COLUMN `sort2_authcat` varchar(10) default NULL" ); + + + + +# $dbh->do("ALTER TABLE aqorders ADD FOREIGN KEY (`budget_id`) REFERENCES `aqbudgets` (`budget_id`) ON UPDATE CASCADE " ); ???? + + print "Upgrade to $DBversion done (Adding new aqbudgetperiods, aqbudgets and aqbudget_planning tables )\n"; + SetVersion ($DBversion); +} + + + +$DBversion = '3.01.00.106'; +if ( C4::Context->preference("Version") < TransformToNum($DBversion) ) { + $dbh->do("ALTER TABLE aqbudgetperiods ADD COLUMN budget_period_total decimal(28,6)"); + print "Upgrade to $DBversion done (adds 'budget_period_total' column to aqbudgetperiods table)\n"; + SetVersion($DBversion); +} + + +$DBversion = '3.01.00.107'; +if ( C4::Context->preference("Version") < TransformToNum($DBversion) ) { + $dbh->do("ALTER TABLE currency ADD COLUMN active tinyint(1)"); + + print "Upgrade to $DBversion done (adds 'active' column to currencies table)\n"; + SetVersion($DBversion); +} + +$DBversion = '3.01.00.108'; +if ( C4::Context->preference("Version") < TransformToNum($DBversion) ) { + $dbh->do(<preference("Version") < TransformToNum($DBversion) ) { + $dbh->do("ALTER TABLE aqbooksellers ADD COLUMN `gstrate` decimal(6,4) default NULL"); + if (my $gist=C4::Context->preference("gist")){ + my $sql=$dbh->prepare("UPDATE aqbooksellers set `gstrate`=? "); + $sql->execute($gist) ; + } + print "Upgrade to $DBversion done (added per-supplier gstrate setting)\n"; + SetVersion($DBversion); +} + +$DBversion = "3.01.00.110"; +if (C4::Context->preference("Version") < TransformToNum($DBversion)) { + if (C4::Context->preference("opaclanguages") eq "fr") { + $dbh->do(qq#INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('AcqCreateItem','ordering',"Définit quand l'exemplaire est créé : à la commande, à la livraison, au catalogage",'ordering|receiving|cataloguing','Choice')#); + } else { + $dbh->do("INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('AcqCreateItem','ordering','Define when the item is created : when ordering, when receiving, or in cataloguing module','ordering|receiving|cataloguing','Choice')"); + } + print "Upgrade to $DBversion done (adding ReservesNeedReturns systempref, in circulation)\n"; + SetVersion ($DBversion); +} + +$DBversion = "3.01.00.111"; +if (C4::Context->preference("Version") < TransformToNum($DBversion)) { + $dbh->do(qq| + CREATE TABLE `aqorders_items` ( + `ordernumber` int(11) NOT NULL, + `itemnumber` int(11) NOT NULL, + `timestamp` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP, + PRIMARY KEY (`itemnumber`), + KEY `ordernumber` (`ordernumber`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 | + ); + + $dbh->do(qq| DROP TABLE aqorderbreakdown |); + print "Upgrade to $DBversion done (New aqorders_items table for acqui)\n"; + SetVersion ($DBversion); +} + +$DBversion = "3.01.00.112"; +if (C4::Context->preference("Version") < TransformToNum($DBversion)) { + $dbh->do( qq# INSERT INTO `systempreferences` VALUES ('CurrencyFormat','US','US|FR','Determines the display format of currencies. eg: ''36000'' is displayed as ''360 000,00'' in ''FR'' or 360,000.00'' in ''US''.','Choice') #); + + print "Upgrade to $DBversion done (CurrencyFormat syspref added)\n"; + SetVersion ($DBversion); +} + +$DBversion = "3.01.00.113"; +if (C4::Context->preference("Version") < TransformToNum($DBversion)) { + $dbh->do("ALTER table aqorders drop column title"); + $dbh->do("ALTER TABLE `aqorders` CHANGE `budget_id` `budget_id` INT( 11 ) NOT NULL"); + print "Upgrade to $DBversion done update budget_id size that should not be a tinyint\n"; + SetVersion ($DBversion); +} + +$DBversion = "3.01.00.114"; +if (C4::Context->preference("Version") < TransformToNum($DBversion)) { + $dbh->do(<preference("Version") < TransformToNum($DBversion)) { + $dbh->do("ALTER table aqbudgets drop column budget_amount_sublevel;"); + print "Upgrade to $DBversion done drop column budget_amount_sublevel from aqbudgets\n"; + SetVersion ($DBversion); +} + +$DBversion = "3.01.00.116"; +if (C4::Context->preference("Version") < TransformToNum($DBversion)) { + $dbh->do( qq# INSERT INTO `systempreferences` VALUES ('intranetbookbag','1','','If ON, enables display of Cart feature in the intranet','YesNo') #); + + print "Upgrade to $DBversion done (intranetbookbag syspref added)\n"; + SetVersion ($DBversion); +} + +$DBversion = "3.01.00.117"; +if (C4::Context->preference("Version") < TransformToNum($DBversion)) { + $dbh->do( qq# ALTER TABLE authorised_values ADD COLUMN `lib_opac` VARCHAR(80) default NULL AFTER `lib` #); + + print "Upgrade to $DBversion done (opac authorised values added)\n"; + SetVersion ($DBversion); +} + +$DBversion = "3.01.00.118"; +if (C4::Context->preference("Version") < TransformToNum($DBversion)) { +$dbh->do(" + INSERT INTO `permissions` (`module_bit`, `code`, `description`) VALUES + (16, 'execute_reports', 'Execute SQL reports'), + (16, 'create_reports', 'Create SQL Reports') + "); + + print "Upgrade to $DBversion done (granular permissions for guided reports added)\n"; + SetVersion ($DBversion); +} + +$DBversion = "3.01.00.119"; +if (C4::Context->preference("Version") < TransformToNum($DBversion)) { +$dbh->do(" + UPDATE `systempreferences` SET `options` = 'holdings|serialcollection|subscriptions' + WHERE `systempreferences`.`variable` = 'opacSerialDefaultTab' LIMIT 1 + "); + + print "Upgrade to $DBversion done (opac-detail default tag updated)\n"; + SetVersion ($DBversion); +} + +$DBversion = "3.01.00.120"; +if (C4::Context->preference("Version") < TransformToNum($DBversion)) { + if (C4::Context->preference("opaclanguages") =~ /fr/) { + $dbh->do(qq{ +INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES ('RoutingListAddReserves','1','Si activé, des reservations sont automatiquement créées pour chaque lecteur de la liste de circulation d''un numéro de périodique','','YesNo'); + }); + }else{ + $dbh->do(qq{ +INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES ('RoutingListAddReserves','1','If ON the patrons on routing lists are automatically added to holds on the issue.','','YesNo'); + }); + } + print "Upgrade to $DBversion done (Added RoutingListAddReserves syspref)\n"; + SetVersion ($DBversion); +} + +$DBversion = "3.01.00.121"; +if (C4::Context->preference("Version") < TransformToNum($DBversion)) { + $dbh->do(qq{ + ALTER TABLE biblioitems ADD INDEX issn_idx (issn); + }); + print "Upgrade to $DBversion done (added index to ISSN)\n"; + SetVersion ($DBversion); +} + +=item + + Deal with branches + +=cut + +my $DBversion = "3.01.00.0122"; +if (C4::Context->preference("Version") < TransformToNum($DBversion)) { + # update branches table + # + $dbh->do("ALTER TABLE branches ADD `branchzip` varchar(25) default NULL AFTER `branchaddress3`"); + $dbh->do("ALTER TABLE branches ADD `branchcity` mediumtext AFTER `branchzip`"); + $dbh->do("ALTER TABLE branches ADD `branchcountry` text AFTER `branchcity`"); + $dbh->do("ALTER TABLE branches ADD `branchurl` mediumtext AFTER `branchemail`"); + $dbh->do("ALTER TABLE branches ADD `branchnotes` mediumtext AFTER `branchprinter`"); + print "Upgrade to $DBversion done (branches)\n"; + SetVersion ($DBversion); +} + +$DBversion = "3.01.00.123"; +if (C4::Context->preference("Version") < TransformToNum($DBversion)) { + $dbh->do(qq{ + ALTER TABLE aqbasketgroups ADD deliveryplace VARCHAR(10) default NULL, ADD deliverycomment VARCHAR(255) default NULL; + }); + + print "Upgrade to $DBversion done (adding deliveryplace deliverycomment to basketgroups)\n"; + SetVersion ($DBversion); +} + +$DBversion = "3.01.00.124"; +if (C4::Context->preference("Version") < TransformToNum($DBversion)) { + $dbh->do(qq{ + ALTER TABLE items ADD stocknumber VARCHAR(32) DEFAULT NULL COMMENT "stores the inventory number"; + }); + $dbh->do(qq{ + ALTER TABLE items ADD UNIQUE INDEX itemsstocknumberidx (stocknumber); + }); + $dbh->do(qq{ + ALTER TABLE deleteditems ADD stocknumber VARCHAR(32) DEFAULT NULL COMMENT "stores the inventory number of deleted items"; + }); + $dbh->do(qq{ + ALTER TABLE deleteditems ADD UNIQUE INDEX deleteditemsstocknumberidx (stocknumber); + }); + if (C4::Context->preference('marcflavour') eq 'UNIMARC'){ + $dbh->do(qq{ + INSERT IGNORE INTO marc_subfield_structure (frameworkcode,tagfield, tagsubfield, tab, repeatable, mandatory,kohafield) + SELECT DISTINCT (frameworkcode),995,"j",10,0,0,"items.stocknumber" from biblio_framework ; + }); + #Previously, copynumber was used as stocknumber + $dbh->do(qq{ + UPDATE items set stocknumber=copynumber; + }); + $dbh->do(qq{ + UPDATE items set copynumber=NULL; + }); + } + print "Upgrade to $DBversion done (stocknumber field added)\n"; + SetVersion ($DBversion); +} + +$DBversion = "3.01.00.125"; +if (C4::Context->preference("Version") < TransformToNum($DBversion)) { + $dbh->do("INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES ('OrderPdfTemplate','','Uploads a PDF template to use for printing baskets','NULL','Upload')"); + $dbh->do("UPDATE systempreferences SET variable='OrderPdfFormat' WHERE variable='pdfformat'"); + print "Upgrade to $DBversion done (PDF orders system preferences added and updated)\n"; + SetVersion ($DBversion); +} + +$DBversion = "3.01.00.127"; +if (C4::Context->preference("Version") < TransformToNum($DBversion)) { + $dbh->do(qq{ + ALTER TABLE aqbasketgroups ADD billingplace VARCHAR(10) NOT NULL AFTER deliverycomment; + }); + + print "Upgrade to $DBversion done (Adding billingplace to aqbasketgroups)\n"; + SetVersion ($DBversion); +} + +$DBversion = "3.01.00.128"; +if (C4::Context->preference("Version") < TransformToNum($DBversion)) { + $dbh->do(qq{ + ALTER TABLE auth_subfield_structure MODIFY frameworkcode VARCHAR(10) NULL; + }); + + print "Upgrade to $DBversion done (changing frameworkcode length in auth_subfield_structure)\n"; + SetVersion ($DBversion); +} + +$DBversion = "3.01.00.128"; +if (C4::Context->preference("Version") < TransformToNum($DBversion)) { + $dbh->do(qq{ + INSERT INTO `permissions` (`module_bit`, `code`, `description`) VALUES + (9, 'edit_catalogue', 'Edit catalogue'), + (9, 'fast_cataloging', 'Fast cataloging') + }); + + print "Upgrade to $DBversion done (granular permissions for cataloging added)\n"; + SetVersion ($DBversion); +} + =item DropAllForeignKeys($table) Drop all foreign keys of the table $table =cut + sub DropAllForeignKeys { my ($table) = @_; # get the table description