|
Line 0
Link Here
|
|
|
1 |
use Modern::Perl; |
| 2 |
|
| 3 |
return { |
| 4 |
bug_number => "28854", |
| 5 |
description => "Item bundles support", |
| 6 |
up => sub { |
| 7 |
my ($args) = @_; |
| 8 |
my ($dbh, $out) = @$args{qw(dbh out)}; |
| 9 |
|
| 10 |
if( !TableExists( 'item_bundles' ) ) { |
| 11 |
$dbh->do(q{ |
| 12 |
CREATE TABLE `item_bundles` ( |
| 13 |
`item` int(11) NOT NULL, |
| 14 |
`host` int(11) NOT NULL, |
| 15 |
PRIMARY KEY (`host`, `item`), |
| 16 |
UNIQUE KEY `item_bundles_uniq_1` (`item`), |
| 17 |
CONSTRAINT `item_bundles_ibfk_1` FOREIGN KEY (`item`) REFERENCES `items` (`itemnumber`) ON DELETE CASCADE ON UPDATE CASCADE, |
| 18 |
CONSTRAINT `item_bundles_ibfk_2` FOREIGN KEY (`host`) REFERENCES `items` (`itemnumber`) ON DELETE CASCADE ON UPDATE CASCADE |
| 19 |
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci |
| 20 |
}); |
| 21 |
} |
| 22 |
say $out "item_bundles table added"; |
| 23 |
|
| 24 |
if( !TableExists( 'items_lost_issue' ) ) { |
| 25 |
$dbh->do(q{ |
| 26 |
CREATE TABLE `items_lost_issue` ( |
| 27 |
`id` int(11) NOT NULL AUTO_INCREMENT, |
| 28 |
`itemnumber` int(11) NOT NULL, |
| 29 |
`issue_id` int(11) DEFAULT NULL, |
| 30 |
`created_on` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), |
| 31 |
PRIMARY KEY (`id`), |
| 32 |
UNIQUE KEY `itemnumber` (`itemnumber`), |
| 33 |
KEY `issue_id` (`issue_id`), |
| 34 |
CONSTRAINT `items_lost_issue_ibfk_1` FOREIGN KEY (`itemnumber`) REFERENCES `items` (`itemnumber`) ON DELETE CASCADE ON UPDATE CASCADE, |
| 35 |
CONSTRAINT `items_lost_issue_ibfk_2` FOREIGN KEY (`issue_id`) REFERENCES `old_issues` (`issue_id`) ON DELETE SET NULL ON UPDATE CASCADE |
| 36 |
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci |
| 37 |
}); |
| 38 |
} |
| 39 |
say $out "items_list_issue table added"; |
| 40 |
|
| 41 |
my ($lost_val) = $dbh->selectrow_array( "SELECT MAX(authorised_value) FROM authorised_values WHERE category = 'LOST'", {} ); |
| 42 |
$lost_val++; |
| 43 |
|
| 44 |
$dbh->do(qq{ |
| 45 |
INSERT INTO authorised_values (category,authorised_value,lib) VALUES ('LOST',$lost_val,'Missing from bundle') |
| 46 |
}); |
| 47 |
say $out "Missing from bundle LOST AV added"; |
| 48 |
|
| 49 |
my ($nfl_val) = $dbh->selectrow_array( "SELECT MAX(authorised_value) FROM authorised_values WHERE category = 'NOT_LOAN'", {} ); |
| 50 |
$nfl_val++; |
| 51 |
|
| 52 |
$dbh->do(qq{ |
| 53 |
INSERT INTO authorised_values (category,authorised_value,lib) VALUES ('NOT_LOAN',$nfl_val,'Added to bundle') |
| 54 |
}); |
| 55 |
say $out "Added to bundle NOT_LOAN AV added"; |
| 56 |
|
| 57 |
$dbh->do(qq{ |
| 58 |
INSERT IGNORE INTO systempreferences( `variable`, `value`, `options`, `explanation`, `type` ) |
| 59 |
VALUES |
| 60 |
( 'BundleLostValue', $lost_val, '', 'Sets the LOST AV value that represents "Missing from bundle" as a lost value', 'Free' ), |
| 61 |
( 'BundleNotLoanValue', $nfl_val, '', 'Sets the NOT_LOAN AV value that represents "Added to bundle" as a not for loan value', 'Free') |
| 62 |
}); |
| 63 |
say $out "System preferences added and set"; |
| 64 |
} |
| 65 |
} |