Bug 13624 - Remove columns branchcode, categorytype from table overduerules_transport...
[koha.git] / installer / data / mysql / atomicupdate / update_13624_overduerules_transport_type.pl
1 #! /usr/bin/perl
2
3 use strict;
4 use warnings;
5 use C4::Context;
6 my $dbh=C4::Context->dbh;
7
8 print "Will do : Upgrade to $DBversion done (Bug 13624 - Remove columns branchcode, categorytype from table overduerules_transport_types)\n";
9
10 #if ( CheckVersion($DBversion) ) {
11     $dbh->do("SET FOREIGN_KEY_CHECKS=0");
12     $dbh->do("ALTER TABLE overduerules RENAME old_overduerules");
13     $dbh->do("CREATE TABLE overduerules (
14         `overduerules_id` mediumint NOT NULL AUTO_INCREMENT,
15         `branchcode` varchar(10) NOT NULL DEFAULT '',
16         `categorycode` varchar(10) NOT NULL DEFAULT '',
17         `delay1` int(4) DEFAULT NULL,
18         `letter1` varchar(20) DEFAULT NULL,
19         `debarred1` varchar(1) DEFAULT '0',
20         `delay2` int(4) DEFAULT NULL,
21         `debarred2` varchar(1) DEFAULT '0',
22         `letter2` varchar(20) DEFAULT NULL,
23         `delay3` int(4) DEFAULT NULL,
24         `letter3` varchar(20) DEFAULT NULL,
25         `debarred3` int(1) DEFAULT '0',
26         PRIMARY KEY (`overduerules_id`)
27         ) ENGINE=InnoDB DEFAULT CHARSET=utf8;");
28     $dbh->do("INSERT INTO overduerules(branchcode, categorycode, delay1, letter1, debarred1, delay2, debarred2, letter2, delay3, letter3, debarred3) SELECT * FROM old_overduerules");
29     $dbh->do("DROP TABLE old_overduerules");
30     $dbh->do("ALTER TABLE overduerules_transport_types
31               ADD COLUMN overduerules_id mediumint NOT NULL");
32     my $mtts = $dbh->selectall_arrayref("select * from overduerules_transport_types", { Slice => {} });
33     $dbh->do("DELETE FROM overduerules_transport_types");
34     $dbh->do("ALTER TABLE overduerules_transport_types
35               DROP FOREIGN KEY overduerules_fk,
36               ADD FOREIGN KEY overduerules_transport_types_fk (overduerules_id) REFERENCES overduerules (overduerules_id) ON DELETE CASCADE ON UPDATE CASCADE,
37               DROP COLUMN branchcode,
38               DROP COLUMN categorycode");
39     my $s = $dbh->prepare("insert into overduerules_transport_types (overduerules_id, id, letternumber, message_transport_type) "
40                          ." values((SELECT overduerules_id FROM overduerules WHERE branchcode = ? AND categorycode = ?),?,?,?)");
41     foreach my $mtt(@$mtts){
42         $s->execute($mtt->{branchcode}, $mtt->{categorycode}, $mtt->{id}, $mtt->{letternumber}, $mtt->{message_transport_type} );
43     }
44     $dbh->do("SET FOREIGN_KEY_CHECKS=1");
45 #    print "Upgrade to $DBversion done (Bug 13624 - Remove columns branchcode, categorytype from table overduerules_transport_types)\n";
46 #   SetVersion ($DBversion);
47 #}
48
49 print "\nDone\n";