From 72ce78cad933afe637fa635f72f9084fa639c0b0 Mon Sep 17 00:00:00 2001 From: Agustin Moyano Date: Tue, 29 Oct 2019 15:27:37 -0300 Subject: [PATCH] Bug 18532: Add new letter AUTO_RENEWALS_DGST, new Auto_Renewals in message_attributes, and configured message_transports --- .../data/mysql/atomicupdate/bug-18532.perl | 100 ++++++++++++++++++ .../mysql/en/mandatory/sample_notices.sql | 10 ++ .../sample_notices_message_attributes.sql | 3 +- .../sample_notices_message_transports.sql | 6 +- 4 files changed, 117 insertions(+), 2 deletions(-) create mode 100644 installer/data/mysql/atomicupdate/bug-18532.perl diff --git a/installer/data/mysql/atomicupdate/bug-18532.perl b/installer/data/mysql/atomicupdate/bug-18532.perl new file mode 100644 index 0000000000..9e16942142 --- /dev/null +++ b/installer/data/mysql/atomicupdate/bug-18532.perl @@ -0,0 +1,100 @@ +$DBversion = 'XXX'; # will be replaced by the RM +if( CheckVersion( $DBversion ) ) { + # you can use $dbh here like: + $dbh->do( qq{ + INSERT IGNORE INTO letter (module, code, name, title, content, message_transport_type) VALUES ('circulation', 'AUTO_RENEWALS_DGST', 'notification on auto renewing', 'Auto renewals (Digest)', + "Dear [% borrower.firstname %] [% borrower.surname %], + [% IF checkout.auto_renew_errors %] + There were [% checkout.auto_renew_errors %] items that where not correctly renewed. + [% END %] + [% IF checkout.auto_renew %] + There were [% checkout.auto_renew %] items that where correctly renewed. + [% END %] + ", 'email'); + }); + + $dbh->do( qq{ + INSERT IGNORE INTO `message_attributes` + (`message_attribute_id`, message_name, `takes_days`) + VALUES (7, 'Auto_Renewals', 0) + }); + + $dbh->do( qq{ + INSERT IGNORE INTO `message_transports` + (`message_attribute_id`, `message_transport_type`, `is_digest`, `letter_module`, `letter_code`) + VALUES (7, 'email', 0, 'circulation', 'AUTO_RENEWALS'), + (7, 'sms', 0, 'circulation', 'AUTO_RENEWALS'), + (7, 'email', 1, 'circulation', 'AUTO_RENEWALS_DGST'), + (7, 'sms', 1, 'circulation', 'AUTO_RENEWALS_DGST') + }); + + $dbh->do( qq{ + insert ignore into borrower_message_preferences (categorycode, message_attribute_id, days_in_advance, wants_digest) + select c.categorycode, mp.message_attribute_id, mp.days_in_advance, mp.wants_digest + from + ( + select 1 as message_attribute_id, NULL as days_in_advance, 0 as wants_digest + union + select 2 as message_attribute_id, 0 as days_in_advance, 0 as wants_digest + union + select 3 as message_attribute_id, NULL as days_in_advance, 0 as wants_digest + union + select 4 as message_attribute_id, NULL as days_in_advance, 0 as wants_digest + union + select 5 as message_attribute_id, NULL as days_in_advance, 0 as wants_digest + union + select 6 as message_attribute_id, NULL as days_in_advance, 0 as wants_digest + union + select 7 as message_attribute_id, NULL as days_in_advance, 0 as wants_digest + ) mp + inner join + ( + select c.categorycode, + count(m.categorycode) as count + from categories c + left join + borrower_message_preferences m + on c.categorycode = m.categorycode + group by 1 + ) c + on c.count = 0 or (c.count > 0 and mp.message_attribute_id = 7); + }); + + $dbh->do( qq{ + insert ignore into borrower_message_preferences (borrowernumber, message_attribute_id, days_in_advance, wants_digest) + select c.borrowernumber, mp.message_attribute_id, mp.days_in_advance, mp.wants_digest + from + ( + select 7 as message_attribute_id, NULL as days_in_advance, 0 as wants_digest + ) mp + inner join + ( + select distinct + m1.borrowernumber + from borrower_message_preferences m1 + left join + borrower_message_preferences m2 + on m1.borrowernumber = m2.borrowernumber + and m2.message_attribute_id = 7 + where m2.borrowernumber is null + and m1.borrowernumber is not null + ) c + on true; + }); + + $dbh->do( qq{ + insert into borrower_message_transport_preferences (borrower_message_preference_id, message_transport_type) + select p.borrower_message_preference_id, 'email' + from borrower_message_preferences p + left join + borrower_message_transport_preferences t + on p.borrower_message_preference_id = t.borrower_message_preference_id + where p.message_attribute_id = 7 + and t.borrower_message_preference_id is null; + }); + + + # Always end with this (adjust the bug info) + SetVersion( $DBversion ); + print "Upgrade to $DBversion done (Bug 18532 - Add AUTO_RENEWALS in message_attributes and add AUTO_RENEWALS_DGST letter)\n"; +} diff --git a/installer/data/mysql/en/mandatory/sample_notices.sql b/installer/data/mysql/en/mandatory/sample_notices.sql index 506f309785..05eea96f00 100644 --- a/installer/data/mysql/en/mandatory/sample_notices.sql +++ b/installer/data/mysql/en/mandatory/sample_notices.sql @@ -337,3 +337,13 @@ You have too much unpaid fines. [% ELSE %] The following item [% biblio.title %] has correctly been renewed and is now due [% checkout.date_due %] [% END %]", 'email'); + +INSERT INTO letter (module, code, name, title, content, message_transport_type) VALUES ('circulation', 'AUTO_RENEWALS_DGST', 'notification on auto renewing', 'Auto renewals (Digest)', +"Dear [% borrower.firstname %] [% borrower.surname %], +[% IF <> %] +There were <> items that where not correctly renewed. +[% END %] +[% IF <> %] +There were <> items that where correctly renewed. +[% END %] +", 'email'); diff --git a/installer/data/mysql/mandatory/sample_notices_message_attributes.sql b/installer/data/mysql/mandatory/sample_notices_message_attributes.sql index a7a6032cc7..32ab818d03 100644 --- a/installer/data/mysql/mandatory/sample_notices_message_attributes.sql +++ b/installer/data/mysql/mandatory/sample_notices_message_attributes.sql @@ -5,5 +5,6 @@ values (2, 'Advance_Notice', 1), (4, 'Hold_Filled', 0), (5, 'Item_Check_in', 0), -(6, 'Item_Checkout', 0); +(6, 'Item_Checkout', 0), +(7, 'Auto_Renewals', 0); diff --git a/installer/data/mysql/mandatory/sample_notices_message_transports.sql b/installer/data/mysql/mandatory/sample_notices_message_transports.sql index 5954bafc7b..eecdbdf16a 100644 --- a/installer/data/mysql/mandatory/sample_notices_message_transports.sql +++ b/installer/data/mysql/mandatory/sample_notices_message_transports.sql @@ -17,4 +17,8 @@ values (5, 'email', 0, 'circulation', 'CHECKIN'), (5, 'sms', 0, 'circulation', 'CHECKIN'), (6, 'email', 0, 'circulation', 'CHECKOUT'), -(6, 'sms', 0, 'circulation', 'CHECKOUT'); +(6, 'sms', 0, 'circulation', 'CHECKOUT'), +(7, 'email', 0, 'circulation', 'AUTO_RENEWALS'), +(7, 'sms', 0, 'circulation', 'AUTO_RENEWALS'), +(7, 'email', 1, 'circulation', 'AUTO_RENEWALS_DGST'), +(7, 'sms', 1, 'circulation', 'AUTO_RENEWALS_DGST'); -- 2.17.1