From 0d646036d00def5c3a56e2a9bff72fdb484b8273 Mon Sep 17 00:00:00 2001 From: David Gustafsson Date: Mon, 24 Feb 2025 13:32:19 +0100 Subject: [PATCH] Bug 30515: Fix messaging options order and add database changes --- C4/Members/Messaging.pm | 5 +- .../bug_30515-add_system_preferences.pl | 16 ----- ...nsports_to_patron_messaging_preferences.pl | 66 +++++++++++++++++++ .../mysql/en/mandatory/sample_notices.yml | 62 +++++++++++++++++ .../sample_notices_message_attributes.sql | 5 +- .../sample_notices_message_transports.sql | 8 ++- 6 files changed, 143 insertions(+), 19 deletions(-) delete mode 100644 installer/data/mysql/atomicupdate/bug_30515-add_system_preferences.pl create mode 100644 installer/data/mysql/atomicupdate/bug_30515-move_overdue_transports_to_patron_messaging_preferences.pl diff --git a/C4/Members/Messaging.pm b/C4/Members/Messaging.pm index a92801f1089..b2b8ebbaec8 100644 --- a/C4/Members/Messaging.pm +++ b/C4/Members/Messaging.pm @@ -230,7 +230,10 @@ END_SQL 'Auto_Renewals' => 9, 'Advance_Notice' => 10, 'Item_Due' => 11, - 'Item_Check_in' => 12 + 'Item_Check_in' => 12, + 'Overdue1' => 13, + 'Overdue2' => 14, + 'Overdue3' => 15, ); @return = diff --git a/installer/data/mysql/atomicupdate/bug_30515-add_system_preferences.pl b/installer/data/mysql/atomicupdate/bug_30515-add_system_preferences.pl deleted file mode 100644 index 202c211d2e3..00000000000 --- a/installer/data/mysql/atomicupdate/bug_30515-add_system_preferences.pl +++ /dev/null @@ -1,16 +0,0 @@ -use Modern::Perl; - -return { - bug_number => "30515", - description => "Add system preferences for patron specific overdue notice preferences", - up => sub { - my ($args) = @_; - my ($dbh, $out) = @$args{qw(dbh out)}; - - $dbh->do(q{INSERT IGNORE INTO systempreferences (`variable`, `value`, `options`, `explanation`, `type`) VALUES ('UsePatronPreferencesForOverdueNotices', '0', NULL, 'Use patron specific messaging preferences for overdue notices if available', 'YesNo')}); - say $out "UsePatronPreferencesForOverdueNotices system preference added"; - - $dbh->do(q{INSERT IGNORE INTO systempreferences (`variable`, `value`, `options`, `explanation`, `type`) VALUES ('UsePatronPreferencesForOverdueNoticesPrint', 'always', 'always|fallback|never', 'When to send print notices when using patron specific messaging preferences for overdue notices', 'Choice')}); - say $out "UsePatronPreferencesForOverdueNoticesPrint system preference added"; - }, -}; diff --git a/installer/data/mysql/atomicupdate/bug_30515-move_overdue_transports_to_patron_messaging_preferences.pl b/installer/data/mysql/atomicupdate/bug_30515-move_overdue_transports_to_patron_messaging_preferences.pl new file mode 100644 index 00000000000..748b2a74614 --- /dev/null +++ b/installer/data/mysql/atomicupdate/bug_30515-move_overdue_transports_to_patron_messaging_preferences.pl @@ -0,0 +1,66 @@ +use Modern::Perl; + +return { + bug_number => "30515", + description => "Add system preferences for patron specific overdue notice preferences", + up => sub { + my ($args) = @_; + my ($dbh, $out) = @$args{qw(dbh out)}; + + $dbh->do( + q{ + INSERT IGNORE INTO `message_attributes` + (`message_attribute_id`, `message_name`, `takes_days`) + VALUES + (15, 'Overdue1', 0), + (16, 'Overdue2', 0), + (17, 'Overdue3', 0) + } + ); + say $out "Message attributes for overdue notices added"; + + $dbh->do( + q{ + INSERT IGNORE INTO `message_transports` + (`message_attribute_id`, `message_transport_type`, `is_digest`, `letter_module`, `letter_code`) + VALUES + (15, 'email', 0, 'circulation', 'ODUE'), + (15, 'sms', 0, 'circulation', 'ODUE'), + (16, 'email', 0, 'circulation', 'ODUE2'), + (16, 'sms', 0, 'circulation', 'ODUE2'), + (17, 'email', 0, 'circulation', 'ODUE3'), + (17, 'sms', 0, 'circulation', 'ODUE3') + } + ); + say $out "Message transports for overdue notices added"; + + $dbh->do( + q{ + INSERT IGNORE INTO systempreferences + (`variable`, `value`, `options`, `explanation`, `type`) + VALUES ( + 'UsePatronPreferencesForOverdueNotices', + '0', + NULL, + 'Use patron specific messaging preferences for overdue notices if available', + 'YesNo' + ) + } + ); + say $out "UsePatronPreferencesForOverdueNotices system preference added"; + + $dbh->do( + q{ + INSERT IGNORE INTO systempreferences (`variable`, `value`, `options`, `explanation`, `type`) + VALUES ( + 'UsePatronPreferencesForOverdueNoticesPrint', + 'always', + 'always|fallback|never', + 'When to send print notices when using patron specific messaging preferences for overdue notices', + 'Choice' + ) + } + ); + say $out "UsePatronPreferencesForOverdueNoticesPrint system preference added"; + }, +} diff --git a/installer/data/mysql/en/mandatory/sample_notices.yml b/installer/data/mysql/en/mandatory/sample_notices.yml index 0efc142bb0b..de87ba3f95c 100644 --- a/installer/data/mysql/en/mandatory/sample_notices.yml +++ b/installer/data/mysql/en/mandatory/sample_notices.yml @@ -901,6 +901,68 @@ tables: - "<> Staff" - "" + - module: circulation + code: ODUE2 + branchcode: "" + name: "Overdue notice" + is_html: 0 + title: "Item overdue" + message_transport_type: email + lang: default + content: + - "Dear <> <>," + - "" + - "According to our current records, you have items that are overdue.Your library does not charge late fines, but please return or renew them at the branch below as soon as possible." + - "" + - "<>" + - "<>" + - "<> <>" + - "Phone: <>" + - "Fax: <>" + - "Email: <>" + - "" + - "If you have registered a password with the library, and you have a renewal available, you may renew online. If an item becomes more than 30 days overdue, you will be unable to use your library card until the item is returned." + - "" + - "The following item(s) is/are currently overdue:" + - "" + - "\"<>\" by <>, <>, Barcode: <> Fine: <>" + - "" + - "Thank-you for your prompt attention to this matter." + - "" + - "<> Staff" + - "" + + - module: circulation + code: ODUE3 + branchcode: "" + name: "Overdue notice" + is_html: 0 + title: "Item overdue" + message_transport_type: email + lang: default + content: + - "Dear <> <>," + - "" + - "According to our current records, you have items that are overdue.Your library does not charge late fines, but please return or renew them at the branch below as soon as possible." + - "" + - "<>" + - "<>" + - "<> <>" + - "Phone: <>" + - "Fax: <>" + - "Email: <>" + - "" + - "If you have registered a password with the library, and you have a renewal available, you may renew online. If an item becomes more than 30 days overdue, you will be unable to use your library card until the item is returned." + - "" + - "The following item(s) is/are currently overdue:" + - "" + - "\"<>\" by <>, <>, Barcode: <> Fine: <>" + - "" + - "Thank-you for your prompt attention to this matter." + - "" + - "<> Staff" + - "" + - module: circulation code: OVERDUES_SLIP branchcode: "" diff --git a/installer/data/mysql/mandatory/sample_notices_message_attributes.sql b/installer/data/mysql/mandatory/sample_notices_message_attributes.sql index 1b1659a67ef..6d65711ccc2 100644 --- a/installer/data/mysql/mandatory/sample_notices_message_attributes.sql +++ b/installer/data/mysql/mandatory/sample_notices_message_attributes.sql @@ -13,4 +13,7 @@ values (11, 'Ill_update', 0), (12, 'Recall_Waiting', 0), (13, 'Recall_Requested', 0), -(14, 'Patron_Expiry', 0); +(14, 'Patron_Expiry', 0) +(15, 'Overdue1', 0), +(16, 'Overdue2', 0), +(17, 'Overdue3', 0); diff --git a/installer/data/mysql/mandatory/sample_notices_message_transports.sql b/installer/data/mysql/mandatory/sample_notices_message_transports.sql index c0395e09c92..15b3fa43e81 100644 --- a/installer/data/mysql/mandatory/sample_notices_message_transports.sql +++ b/installer/data/mysql/mandatory/sample_notices_message_transports.sql @@ -55,4 +55,10 @@ values (13, "phone", 0, "circulation", "RETURN_RECALLED_ITEM"), (14, "email", 0, "members", "MEMBERSHIP_EXPIRY"), (14, "sms", 0, "members", "MEMBERSHIP_EXPIRY"), -(14, "phone", 0, "members", "MEMBERSHIP_EXPIRY"); +(14, "phone", 0, "members", "MEMBERSHIP_EXPIRY") +(15, 'email', 0, 'circulation', 'ODUE'), +(15, 'sms', 0, 'circulation', 'ODUE'), +(16, 'email', 0, 'circulation', 'ODUE2'), +(16, 'sms', 0, 'circulation', 'ODUE2'), +(17, 'email', 0, 'circulation', 'ODUE3'), +(17, 'sms', 0, 'circulation', 'ODUE3'),; -- 2.48.1