Bug 29012: (QA follow-up) Use q{} instead of '' in smart-rules.pl
[koha.git] / installer / data / mysql / atomicupdate / bug_29012.pl
1 use Modern::Perl;
2
3 return {
4     bug_number => "29012",
5     description => "Some rules are not saved when left blank while editing a 'rule' line in smart-rules.pl",
6     up => sub {
7         my ($args) = @_;
8         my ($dbh, $out) = @$args{qw(dbh out)};
9         my %default_rule_values = (
10             issuelength             => 0,
11             hardduedate             => '',
12             unseenrenewalsallowed   => '',
13             rentaldiscount          => 0,
14             decreaseloanholds       => '',
15         );
16         while (my ($rule_name, $rule_value) = each (%default_rule_values)) {
17             $dbh->do(q{
18                 INSERT IGNORE INTO circulation_rules (branchcode, categorycode, itemtype, rule_name, rule_value)
19                     SELECT branchcode, categorycode, itemtype, ?, ? FROM circulation_rules cr
20                         WHERE NOT EXISTS (
21                             SELECT * FROM circulation_rules cr2
22                                 WHERE
23                                     cr2.rule_name=?
24                                     AND ( (cr2.branchcode=cr.branchcode) OR ( ISNULL(cr2.branchcode) AND ISNULL(cr.branchcode) ) )
25                                     AND ( (cr2.categorycode=cr.categorycode) OR ( ISNULL(cr2.categorycode) AND ISNULL(cr.categorycode) ) )
26                                     AND ( (cr2.itemtype=cr.itemtype) OR ( ISNULL(cr2.itemtype) AND ISNULL(cr.itemtype) ) )
27                         )
28                         GROUP BY branchcode, categorycode, itemtype
29             }, undef, $rule_name, $rule_value, $rule_name);
30         }
31         say $out "Add default values for blank circulation rules that weren't saved to the database";
32     },
33 }