View | Details | Raw Unified | Return to bug 30515
Collapse All | Expand All

(-)a/installer/data/mysql/atomicupdate/bug_30515-add_system_preferences.pl (+16 lines)
Line 0 Link Here
1
use Modern::Perl;
2
3
return {
4
    bug_number => "30515",
5
    description => "Add system preferences for patron specific overdue notice preferences",
6
    up => sub {
7
        my ($args) = @_;
8
        my ($dbh, $out) = @$args{qw(dbh out)};
9
10
        $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')});
11
        say $out "UsePatronPreferencesForOverdueNotices system preference added";
12
13
        $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')});
14
        say $out "UsePatronPreferencesForOverdueNoticesPrint system preference added";
15
    },
16
};
(-)a/installer/data/mysql/mandatory/sysprefs.sql (+2 lines)
Lines 855-860 INSERT INTO systempreferences ( `variable`, `value`, `options`, `explanation`, ` Link Here
855
('UseICUStyleQuotes','0','1','Tell Koha whether to use ICU style quotes ({) or default (") when tracing subjects .','YesNo'),
855
('UseICUStyleQuotes','0','1','Tell Koha whether to use ICU style quotes ({) or default (") when tracing subjects .','YesNo'),
856
('UseLocationAsAQInSIP', '0', '', 'Use permanent_location instead of homebranch for AQ in SIP response', 'YesNo'),
856
('UseLocationAsAQInSIP', '0', '', 'Use permanent_location instead of homebranch for AQ in SIP response', 'YesNo'),
857
('UseOCLCEncodingLevels','0',NULL,'If enabled, include OCLC encoding levels in leader value builder dropdown for position 17.','YesNo'),
857
('UseOCLCEncodingLevels','0',NULL,'If enabled, include OCLC encoding levels in leader value builder dropdown for position 17.','YesNo'),
858
('UsePatronPreferencesForOverdueNotices', '0', NULL, 'Use patron specific messaging preferences for overdue notices if available', 'YesNo'),
859
('UsePatronPreferencesForOverdueNoticesPrint', 'always', 'always|fallback|never', 'When to send print notices when using patron specific messaging preferences for overdue notices', 'Choice'),
858
('UseRecalls','0',NULL,'Enable or disable recalls','YesNo'),
860
('UseRecalls','0',NULL,'Enable or disable recalls','YesNo'),
859
('UseTransportCostMatrix','0','','Use Transport Cost Matrix when filling holds','YesNo'),
861
('UseTransportCostMatrix','0','','Use Transport Cost Matrix when filling holds','YesNo'),
860
('UseWYSIWYGinSystemPreferences','0','','Show WYSIWYG editor when editing certain HTML system preferences.','YesNo'),
862
('UseWYSIWYGinSystemPreferences','0','','Show WYSIWYG editor when editing certain HTML system preferences.','YesNo'),
(-)a/koha-tmpl/intranet-tmpl/prog/en/includes/messaging-preference-form.inc (+6 lines)
Lines 56-61 Link Here
56
                        <span>Recall awaiting pickup</span>
56
                        <span>Recall awaiting pickup</span>
57
                    [% ELSIF ( messaging_preference.Recall_Requested ) %]
57
                    [% ELSIF ( messaging_preference.Recall_Requested ) %]
58
                        <span>Return recalled item</span>
58
                        <span>Return recalled item</span>
59
                    [% ELSIF ( messaging_preference.Overdue1 ) %]
60
                        <span>Overdue 1</span>
61
                    [% ELSIF ( messaging_preference.Overdue2 ) %]
62
                        <span>Overdue 2</span>
63
                    [% ELSIF ( messaging_preference.Overdue3 ) %]
64
                        <span>Overdue 3</span>
59
                    [% ELSE %]
65
                    [% ELSE %]
60
                        <span>Unknown</span>
66
                        <span>Unknown</span>
61
                    [% END %]
67
                    [% END %]
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/categories.tt (+6 lines)
Lines 758-763 Link Here
758
                                                            <span>Hold reminder</span>
758
                                                            <span>Hold reminder</span>
759
                                                        [% ELSIF ( prefs.Patron_Expiry ) %]
759
                                                        [% ELSIF ( prefs.Patron_Expiry ) %]
760
                                                            <span>Patron account expiry</span>
760
                                                            <span>Patron account expiry</span>
761
                                                        [% ELSIF ( prefs.Overdue1 ) %]
762
                                                            <span>Overdue 1</span>
763
                                                        [% ELSIF ( prefs.Overdue2 ) %]
764
                                                            <span>Overdue 2</span>
765
                                                        [% ELSIF ( prefs.Overdue3 ) %]
766
                                                            <span>Overdue 3</span>
761
                                                        [% ELSE %]
767
                                                        [% ELSE %]
762
                                                            <span>Unknown</span>
768
                                                            <span>Unknown</span>
763
                                                        [% END %]:
769
                                                        [% END %]:
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/circulation.pref (+15 lines)
Lines 641-646 Circulation: Link Here
641
              source: LOST
641
              source: LOST
642
            - "when the outstanding balance is written off."
642
            - "when the outstanding balance is written off."
643
    Checkin policy:
643
    Checkin policy:
644
        -
645
            - Use message preferences based on
646
            - pref: UsePatronPreferencesForOverdueNotices
647
              choices:
648
                  1: individual patron preference
649
                  0: patron category
650
            - when sending overdue notices.
651
        -
652
            - When using individual patron preferences for overdue notices
653
            - pref: UsePatronPreferencesForOverdueNoticesPrint
654
              choices:
655
                  always: always
656
                  fallback: when no other transport set
657
                  never: never
658
            - print notice.
644
        -
659
        -
645
            - pref: TrapHoldsOnOrder
660
            - pref: TrapHoldsOnOrder
646
              choices:
661
              choices:
(-)a/misc/cronjobs/overdue_notices.pl (-6 / +23 lines)
Lines 25-36 use Pod::Usage qw( pod2usage ); Link Here
25
use Text::CSV_XS;
25
use Text::CSV_XS;
26
use DateTime;
26
use DateTime;
27
use DateTime::Duration;
27
use DateTime::Duration;
28
use List::MoreUtils qw( uniq );
28
29
29
use Koha::Script -cron;
30
use Koha::Script -cron;
30
use C4::Context;
31
use C4::Context;
31
use C4::Letters;
32
use C4::Letters;
32
use C4::Overdues             qw( GetOverdueMessageTransportTypes parse_overdues_letter );
33
use C4::Overdues             qw( GetOverdueMessageTransportTypes parse_overdues_letter );
33
use C4::Log                  qw( cronlogaction );
34
use C4::Log                  qw( cronlogaction );
35
use C4::Members::Messaging   qw( GetMessagingPreferences );
34
use Koha::Patron::Debarments qw( AddUniqueDebarment );
36
use Koha::Patron::Debarments qw( AddUniqueDebarment );
35
use Koha::DateUtils          qw( dt_from_string output_pref );
37
use Koha::DateUtils          qw( dt_from_string output_pref );
36
use Koha::Calendar;
38
use Koha::Calendar;
Lines 715-725 END_SQL Link Here
715
                }
717
                }
716
                $sth2->finish;
718
                $sth2->finish;
717
719
718
                my @message_transport_types =
720
                my @message_transport_types;
719
                    @{ GetOverdueMessageTransportTypes( $branchcode, $overdue_rules->{categorycode}, $i ) };
721
                if (C4::Context->preference('UsePatronPreferencesForOverdueNotices')) {
720
                @message_transport_types =
722
                    my $patronpref = GetMessagingPreferences(
721
                    @{ GetOverdueMessageTransportTypes( q{}, $overdue_rules->{categorycode}, $i ) }
723
                        { borrowernumber => $borrowernumber, message_name => "Overdue$i"});
722
                    unless @message_transport_types;
724
                    if ($patronpref && $patronpref->{'transports'}) {
725
                        @message_transport_types = keys %{$patronpref->{'transports'}};
726
                    }
727
                    my $print_behavior = C4::Context->preference('UsePatronPreferencesForOverdueNoticesPrint');
728
                    if (
729
                        $print_behavior eq 'always' ||
730
                        $print_behavior eq 'fallback' && !@message_transport_types
731
                    ) {
732
                        unshift(@message_transport_types, 'shift');
733
                    }
734
                } else {
735
                    my @message_transport_types =
736
                        @{ GetOverdueMessageTransportTypes( $branchcode, $overdue_rules->{categorycode}, $i ) };
737
                    @message_transport_types =
738
                        @{ GetOverdueMessageTransportTypes( q{}, $overdue_rules->{categorycode}, $i ) }
739
                        unless @message_transport_types;
740
                }
723
741
724
                my $print_sent = 0;    # A print notice is not yet sent for this patron
742
                my $print_sent = 0;    # A print notice is not yet sent for this patron
725
                for my $mtt (@message_transport_types) {
743
                for my $mtt (@message_transport_types) {
726
- 

Return to bug 30515