From dc7c52a6c27223357295c418f87645ff4738b55a Mon Sep 17 00:00:00 2001 From: Jacob O'Mara Date: Mon, 30 Jun 2025 12:22:03 +0100 Subject: [PATCH] Bug 4858: Add staff messaging preferences interface for print notice charging - Update messaging-preference-form.inc to include print transport column - Update memberentry.pl controller with print charging context - Add print charge warning to memberentrygen.tt template --- .../en/includes/messaging-preference-form.inc | 65 +++++++++++++++++++ .../prog/en/modules/members/memberentrygen.tt | 9 +++ members/memberentry.pl | 10 +++ 3 files changed, 84 insertions(+) diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/messaging-preference-form.inc b/koha-tmpl/intranet-tmpl/prog/en/includes/messaging-preference-form.inc index cc56c1810c6..f2a715012a4 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/includes/messaging-preference-form.inc +++ b/koha-tmpl/intranet-tmpl/prog/en/includes/messaging-preference-form.inc @@ -11,6 +11,18 @@ [% IF Koha.Preference('SMSSendDriver') %]SMS[% END %] [% IF Koha.Preference('TalkingTechItivaPhoneNotification') || Koha.Preference('PhoneNotification') %]Phone[% END %] Email + [% SET has_print_transport = 0 %] + [% FOREACH pref IN messaging_preferences %] + [% IF pref.transport_print %][% SET has_print_transport = 1 %][% LAST %][% END %] + [% END %] + [% IF has_print_transport %] + + Print + [% IF patron.category.print_notice_charge > 0 %] + ([% patron.category.print_notice_charge | $Price %] charge) + [% END %] + + [% END %] Digests only - [% END %] + [% IF has_print_transport %] + [% IF ( messaging_preference.transport_print ) %] + + [% IF ( messaging_form_inactive ) %] + [% IF ( messaging_preference.transports_print ) %] + + [% ELSE %] + + [% END %] + [% ELSE %] + [% IF patron.category.print_notice_charge > 0 %] + + [% END %] + [% IF ( messaging_preference.transports_print ) %] + + [% ELSE %] + + [% END %] + [% END %] + + [% ELSE %] + - + [% END %] + [% END %] + [% IF ( messaging_preference.has_digest ) %] [% IF ( messaging_form_inactive ) %] diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/members/memberentrygen.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/members/memberentrygen.tt index a4cee866f38..7091d09b382 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/members/memberentrygen.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/members/memberentrygen.tt @@ -4,6 +4,7 @@ [% USE Koha %] [% USE KohaDates %] [% USE Branches %] +[% USE Price %] [% PROCESS 'member-main-address-style.inc' %] [% PROCESS 'member-alt-address-style.inc' %] [% PROCESS 'member-alt-contact-style.inc' %] @@ -1599,6 +1600,14 @@ Patron messaging preferences + [% IF print_notice_charging && !patron_has_email %] +
+ + Notice: This patron has no email address. + Print notices will incur a charge of [% print_notice_charge_amount | $Price %] each. + Consider encouraging the patron to provide an email address to avoid these charges. +
+ [% END %]
diff --git a/members/memberentry.pl b/members/memberentry.pl index 5f15a105556..f8adb880e12 100755 --- a/members/memberentry.pl +++ b/members/memberentry.pl @@ -855,6 +855,16 @@ if ( C4::Context->preference('EnhancedMessagingPreferences') ) { $template->param( SMSSendDriver => C4::Context->preference("SMSSendDriver") ); $template->param( SMSnumber => $data{'smsalertnumber'} ); $template->param( TalkingTechItivaPhone => C4::Context->preference("TalkingTechItivaPhoneNotification") ); + + # Print notice charging context - category-based + if ($patron && $patron->category && $patron->category->print_notice_charge > 0) { + $template->param( + print_notice_charging => 1, + print_notice_charge_amount => $patron->category->print_notice_charge, + patron_has_email => $patron->notice_email_address, + ); + } + } $template->param( borrower_data => \%data ); -- 2.39.5