From 812ed76705499c74e04d3d0c5411ea1348ed3eb4 Mon Sep 17 00:00:00 2001 From: PerplexedTheta Date: Wed, 14 Aug 2024 11:58:22 +0100 Subject: [PATCH] Bug 33473: Rename UseEmailReceipts to AutomaticEmailReceipts This bug will rename the UseEmailReceipts to AutomaticEmailReceipts, to make it clearer the purpose of this syspref. This is because the receipts dropdown is no longer conditional, and will always show, even if AutomaticEmailReceipts is switched off. To test (steps a-e before applying patch): a) search sysprefs for 'EmailReceipts' 1) note the name is currently 'UseEmailReceipts' 2) enable this syspref b) go to members/maninvoice.pl?borrowernumber=51 1) enter an amount (e.g. 100) 2) save & pay, confirm c) go to members/boraccount.pl?borrowernumber=51 1) note that the receipt dropdown is visible d) go to members/notices.pl?borrowernumber=51 1) note that a receipt was automatically sent e) apply the patch, upgrade the db schema f) search sysprefs for 'EmailReceipts' 1) note the name is now 'AutomaticEmailReceipts' g) go to members/maninvoice.pl?borrowernumber=51 1) enter an amount (e.g. 100) 2) save & pay, confirm h) go to members/boraccount.pl?borrowernumber=51 1) note that the receipt dropdown is no longer visible i) go to members/notices.pl?borrowernumber=51 1) note that a receipt was automatically sent again j) disable the 'AutomaticEmailReceipts' syspref k) go to members/memberentry.pl?op=edit_form&destination=circ&borrowernumber=19 1) add a valid email address k) go to members/maninvoice.pl?borrowernumber=51 1) enter an amount (e.g. 100) 2) save & pay, confirm l) go to members/boraccount.pl?borrowernumber=51 1) note that the receipt dropdown is now visible m) go to members/notices.pl?borrowernumber=51 1) note that a receipt was NOT automatically sent n) go to members/boraccount.pl?borrowernumber=51 1) on any account line where a payment is made, click receipts > email o) go to members/notices.pl?borrowernumber=51 1) confirm a manual notice has been generated p) make coffee & have a mini disco --- Koha/Account.pm | 2 +- ...il-receipt-when-UseEmailReceipts-is-enabled.pl | 15 +++++++++++++++ installer/data/mysql/mandatory/sysprefs.sql | 2 +- .../en/modules/admin/preferences/patrons.pref | 2 +- .../prog/en/modules/members/boraccount.tt | 4 ++-- t/db_dependent/Accounts.t | 8 ++++---- t/db_dependent/Koha/Account.t | 4 ++-- 7 files changed, 26 insertions(+), 11 deletions(-) create mode 100755 installer/data/mysql/atomicupdate/bug_33473-Add-option-to-resend-email-receipt-when-UseEmailReceipts-is-enabled.pl diff --git a/Koha/Account.pm b/Koha/Account.pm index bae36450781..e93ed663be6 100644 --- a/Koha/Account.pm +++ b/Koha/Account.pm @@ -124,7 +124,7 @@ sub pay { my $patron = Koha::Patrons->find( $self->{patron_id} ); my @account_offsets = $payment->credit_offsets( { type => 'APPLY' } )->as_list; - if ( C4::Context->preference('UseEmailReceipts') ) { + if ( C4::Context->preference('AutomaticEmailReceipts') ) { if ( my $letter = C4::Letters::GetPreparedLetter( module => 'circulation', diff --git a/installer/data/mysql/atomicupdate/bug_33473-Add-option-to-resend-email-receipt-when-UseEmailReceipts-is-enabled.pl b/installer/data/mysql/atomicupdate/bug_33473-Add-option-to-resend-email-receipt-when-UseEmailReceipts-is-enabled.pl new file mode 100755 index 00000000000..7f2cee35148 --- /dev/null +++ b/installer/data/mysql/atomicupdate/bug_33473-Add-option-to-resend-email-receipt-when-UseEmailReceipts-is-enabled.pl @@ -0,0 +1,15 @@ + use Modern::Perl; + + return { + bug_number => "33473", + description => "Allow to send email receipts for payments/writeoff manually instead of automatically", + up => sub { + my ($args) = @_; + my ( $dbh, $out ) = @$args{qw(dbh out)}; + + $dbh->do(q{ + UPDATE systempreferences SET variable = 'AutomaticEmailReceipts' WHERE variable = 'UseEmailReceipts'; + }); + say $out "Renamed system preference 'UseEmailReceipts' to 'AutomaticEmailReceipts'"; + }, +} diff --git a/installer/data/mysql/mandatory/sysprefs.sql b/installer/data/mysql/mandatory/sysprefs.sql index 2bf9d0b6486..01d3639c035 100644 --- a/installer/data/mysql/mandatory/sysprefs.sql +++ b/installer/data/mysql/mandatory/sysprefs.sql @@ -854,7 +854,7 @@ INSERT INTO systempreferences ( `variable`, `value`, `options`, `explanation`, ` ('useDaysMode','Calendar','Calendar|Days|Datedue|Dayweek','Choose the method for calculating due date: select Calendar, Datedue or Dayweek to use the holidays module, and Days to ignore the holidays module','Choice'), ('useDefaultReplacementCost', '0', NULL, 'default replacement cost defined in item type', 'YesNo'), ('useDischarge','0','','Allows librarians to discharge borrowers and borrowers to request a discharge','YesNo'), -('UseEmailReceipts','0','','Send email receipts for payments and write-offs','YesNo'), +('AutomaticEmailReceipts','0','','Send email receipts for payments and write-offs','YesNo'), ('UseICUStyleQuotes','0','1','Tell Koha whether to use ICU style quotes ({) or default (") when tracing subjects .','YesNo'), ('UseLocationAsAQInSIP', '0', '', 'Use permanent_location instead of homebranch for AQ in SIP response', 'YesNo'), ('UseOCLCEncodingLevels','0',NULL,'If enabled, include OCLC encoding levels in leader value builder dropdown for position 17.','YesNo'), diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/patrons.pref b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/patrons.pref index 671b4f4d416..b222517dfef 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/patrons.pref +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/patrons.pref @@ -187,7 +187,7 @@ Patrons: 0: "Don't notify" - patrons whenever their password is changed. - - - pref: UseEmailReceipts + - pref: AutomaticEmailReceipts choices: 1: Send 0: "Don't send" diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/members/boraccount.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/members/boraccount.tt index 1d40d4b3c0d..56df86d62b9 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/members/boraccount.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/members/boraccount.tt @@ -143,7 +143,7 @@ [% account.amountoutstanding | $Price %] [% IF ( account.is_credit ) %] - [% IF Koha.Preference('UseEmailReceipts') %] + [% IF patron.notice_email_address %]
diff --git a/t/db_dependent/Accounts.t b/t/db_dependent/Accounts.t index 069feffe569..46d7c62d899 100755 --- a/t/db_dependent/Accounts.t +++ b/t/db_dependent/Accounts.t @@ -1257,14 +1257,14 @@ subtest "Payment notice tests" => sub { ); $letter->store(); - t::lib::Mocks::mock_preference( 'UseEmailReceipts', '0' ); + t::lib::Mocks::mock_preference( 'AutomaticEmailReceipts', '0' ); my $id = $account->pay( { amount => 1 } )->{payment_id}; - is( Koha::Notice::Messages->search()->count(), 0, 'Notice for payment not sent if UseEmailReceipts is disabled' ); + is( Koha::Notice::Messages->search()->count(), 0, 'Notice for payment not sent if AutomaticEmailReceipts is disabled' ); $id = $account->pay( { amount => 1, type => 'WRITEOFF' } )->{payment_id}; - is( Koha::Notice::Messages->search()->count(), 0, 'Notice for writeoff not sent if UseEmailReceipts is disabled' ); + is( Koha::Notice::Messages->search()->count(), 0, 'Notice for writeoff not sent if AutomaticEmailReceipts is disabled' ); - t::lib::Mocks::mock_preference( 'UseEmailReceipts', '1' ); + t::lib::Mocks::mock_preference( 'AutomaticEmailReceipts', '1' ); $id = $account->pay( { amount => 12, library_id => $branchcode } )->{payment_id}; my $notice = Koha::Notice::Messages->search()->next(); diff --git a/t/db_dependent/Koha/Account.t b/t/db_dependent/Koha/Account.t index db7719f588f..4dcb3b4df7b 100755 --- a/t/db_dependent/Koha/Account.t +++ b/t/db_dependent/Koha/Account.t @@ -795,11 +795,11 @@ subtest 'pay() tests' => sub { my $payment = Koha::Account::Lines->find( { accountlines_id => $result->{payment_id} } ); is( $payment->manager_id, undef, "manager_id left undefined when no userenv found" ); - subtest 'UseEmailReceipts tests' => sub { + subtest 'AutomaticEmailReceipts tests' => sub { plan tests => 5; - t::lib::Mocks::mock_preference( 'UseEmailReceipts', 1 ); + t::lib::Mocks::mock_preference( 'AutomaticEmailReceipts', 1 ); my %params; -- 2.39.5 (Apple Git-154)