View | Details | Raw Unified | Return to bug 30650
Collapse All | Expand All

(-)a/installer/data/mysql/atomicupdate/bug_30650.pl (+68 lines)
Lines 51-56 return { Link Here
51
        }
51
        }
52
            );
52
            );
53
        }
53
        }
54
55
        unless ( TableExists('curbside_pickup_opening_slots') ) {
56
            $dbh->do(q{
57
                CREATE TABLE `curbside_pickup_opening_slots` (
58
                    `id` INT(11) NOT NULL AUTO_INCREMENT,
59
                    `curbside_pickup_policy_id` INT(11) NOT NULL,
60
                    `day` INT(1) NOT NULL,
61
                    `start_hour` INT(2) NOT NULL,
62
                    `start_minute` INT(2) NOT NULL,
63
                    `end_hour` INT(2) NOT NULL,
64
                    `end_minute` INT(2) NOT NULL,
65
                    PRIMARY KEY (`id`),
66
                    FOREIGN KEY (curbside_pickup_policy_id) REFERENCES curbside_pickup_policy(id) ON DELETE CASCADE ON UPDATE CASCADE
67
                ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
68
            });
69
            my $existing_slots = $dbh->selectall_arrayref(q{SELECT * FROM curbside_pickup_policy}, { Slice => {} });
70
            my $insert_sth = $dbh->prepare(q{INSERT INTO curbside_pickup_opening_slots ( curbside_pickup_policy_id, day, start_hour, start_minute, end_hour, end_minute ) VALUES (?, ?, ?, ?, ?, ?)});
71
            for my $slot ( @$existing_slots ) {
72
                my $day_i = 0;
73
                for my $day ( qw( sunday monday tuesday wednesday thursday friday saturday ) ) {
74
                    my $start_hour = $slot->{$day . '_start_hour'};
75
                    my $start_minute = $slot->{$day . '_start_minute'};
76
                    my $end_hour = $slot->{$day . '_end_hour'};
77
                    my $end_minute = $slot->{$day . '_end_minute'};
78
                    next unless $start_hour && $start_minute && $end_hour && $end_minute;
79
                    $insert_sth->execute($slot->{id}, $day_i, $start_hour, $start_minute, $end_hour, $end_minute);
80
                    $day_i++;
81
                }
82
            }
83
            $dbh->do(q{
84
                ALTER TABLE curbside_pickup_policy
85
                DROP COLUMN sunday_start_hour,
86
                DROP COLUMN sunday_start_minute,
87
                DROP COLUMN sunday_end_hour,
88
                DROP COLUMN sunday_end_minute,
89
90
                DROP COLUMN monday_start_hour,
91
                DROP COLUMN monday_start_minute,
92
                DROP COLUMN monday_end_hour,
93
                DROP COLUMN monday_end_minute,
94
95
                DROP COLUMN tuesday_start_hour,
96
                DROP COLUMN tuesday_start_minute,
97
                DROP COLUMN tuesday_end_hour,
98
                DROP COLUMN tuesday_end_minute,
99
100
                DROP COLUMN wednesday_start_hour,
101
                DROP COLUMN wednesday_start_minute,
102
                DROP COLUMN wednesday_end_hour,
103
                DROP COLUMN wednesday_end_minute,
104
105
                DROP COLUMN thursday_start_hour,
106
                DROP COLUMN thursday_start_minute,
107
                DROP COLUMN thursday_end_hour,
108
                DROP COLUMN thursday_end_minute,
109
110
                DROP COLUMN friday_start_hour,
111
                DROP COLUMN friday_start_minute,
112
                DROP COLUMN friday_end_hour,
113
                DROP COLUMN friday_end_minute,
114
115
                DROP COLUMN saturday_start_hour,
116
                DROP COLUMN saturday_start_minute,
117
                DROP COLUMN saturday_end_hour,
118
                DROP COLUMN saturday_end_minute
119
            });
120
        }
121
54
        unless ( TableExists('curbside_pickups') ) {
122
        unless ( TableExists('curbside_pickups') ) {
55
123
56
            $dbh->do(
124
            $dbh->do(
(-)a/installer/data/mysql/kohastructure.sql (-30 / +17 lines)
Lines 2336-2375 CREATE TABLE `curbside_pickup_policy` ( Link Here
2336
  `pickup_interval` INT(2) NOT NULL DEFAULT 0,
2336
  `pickup_interval` INT(2) NOT NULL DEFAULT 0,
2337
  `patrons_per_interval` INT(2) NOT NULL DEFAULT 0,
2337
  `patrons_per_interval` INT(2) NOT NULL DEFAULT 0,
2338
  `patron_scheduled_pickup` TINYINT(1) NOT NULL DEFAULT 0,
2338
  `patron_scheduled_pickup` TINYINT(1) NOT NULL DEFAULT 0,
2339
  `sunday_start_hour` INT(2) NULL DEFAULT NULL,
2340
  `sunday_start_minute` INT(2) NULL DEFAULT NULL,
2341
  `sunday_end_hour` INT(2) NULL DEFAULT NULL,
2342
  `sunday_end_minute` INT(2) NULL DEFAULT NULL,
2343
  `monday_start_hour` INT(2) NULL DEFAULT NULL,
2344
  `monday_start_minute` INT(2) NULL DEFAULT NULL,
2345
  `monday_end_hour` INT(2) NULL DEFAULT NULL,
2346
  `monday_end_minute` INT(2) NULL DEFAULT NULL,
2347
  `tuesday_start_hour` INT(2) NULL DEFAULT NULL,
2348
  `tuesday_start_minute` INT(2) NULL DEFAULT NULL,
2349
  `tuesday_end_hour` INT(2) NULL DEFAULT NULL,
2350
  `tuesday_end_minute` INT(2) NULL DEFAULT NULL,
2351
  `wednesday_start_hour` INT(2) NULL DEFAULT NULL,
2352
  `wednesday_start_minute` INT(2) NULL DEFAULT NULL,
2353
  `wednesday_end_hour` INT(2) NULL DEFAULT NULL,
2354
  `wednesday_end_minute` INT(2) NULL DEFAULT NULL,
2355
  `thursday_start_hour` INT(2) NULL DEFAULT NULL,
2356
  `thursday_start_minute` INT(2) NULL DEFAULT NULL,
2357
  `thursday_end_hour` INT(2) NULL DEFAULT NULL,
2358
  `thursday_end_minute` INT(2) NULL DEFAULT NULL,
2359
  `friday_start_hour` INT(2) NULL DEFAULT NULL,
2360
  `friday_start_minute` INT(2) NULL DEFAULT NULL,
2361
  `friday_end_hour` INT(2) NULL DEFAULT NULL,
2362
  `friday_end_minute` INT(2) NULL DEFAULT NULL,
2363
  `saturday_start_hour` INT(2) NULL DEFAULT NULL,
2364
  `saturday_start_minute` INT(2) NULL DEFAULT NULL,
2365
  `saturday_end_hour` INT(2) NULL DEFAULT NULL,
2366
  `saturday_end_minute` INT(2) NULL DEFAULT NULL,
2367
  `patron_scheduled_pickup` TINYINT(1) NOT NULL DEFAULT 0,
2368
  PRIMARY KEY (`id`),
2339
  PRIMARY KEY (`id`),
2369
  UNIQUE KEY (`branchcode`),
2340
  UNIQUE KEY (`branchcode`),
2370
  FOREIGN KEY (branchcode) REFERENCES branches(branchcode) ON DELETE CASCADE ON UPDATE CASCADE
2341
  FOREIGN KEY (branchcode) REFERENCES branches(branchcode) ON DELETE CASCADE ON UPDATE CASCADE
2371
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
2342
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
2372
2343
2344
--
2345
-- Table structure for table `curbside_pickup_opening_slots`
2346
--
2347
2348
DROP TABLE IF EXISTS `curbside_pickup_opening_slots`;
2349
CREATE TABLE `curbside_pickup_opening_slots` (
2350
    `id` INT(11) NOT NULL AUTO_INCREMENT,
2351
    `curbside_pickup_policy_id` INT(11) NOT NULL,
2352
    `day` TINYINT(1) NOT NULL,
2353
    `start_hour` INT(2) NOT NULL,
2354
    `start_minute` INT(2) NOT NULL,
2355
    `end_hour` INT(2) NOT NULL,
2356
    `end_minute` INT(2) NOT NULL,
2357
    PRIMARY KEY (`id`),
2358
    FOREIGN KEY (curbside_pickup_policy_id) REFERENCES curbside_pickup_policy(id) ON DELETE CASCADE ON UPDATE CASCADE
2359
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
2360
2373
--
2361
--
2374
-- Table structure for table `curbside_pickups`
2362
-- Table structure for table `curbside_pickups`
2375
--
2363
--
2376
- 

Return to bug 30650