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 872-877 INSERT INTO systempreferences ( `variable`, `value`, `options`, `explanation`, ` Link Here
872
('UseICUStyleQuotes','0','1','Tell Koha whether to use ICU style quotes ({) or default (") when tracing subjects .','YesNo'),
872
('UseICUStyleQuotes','0','1','Tell Koha whether to use ICU style quotes ({) or default (") when tracing subjects .','YesNo'),
873
('UseLocationAsAQInSIP', '0', '', 'Use permanent_location instead of homebranch for AQ in SIP response', 'YesNo'),
873
('UseLocationAsAQInSIP', '0', '', 'Use permanent_location instead of homebranch for AQ in SIP response', 'YesNo'),
874
('UseOCLCEncodingLevels','0',NULL,'If enabled, include OCLC encoding levels in leader value builder dropdown for position 17.','YesNo'),
874
('UseOCLCEncodingLevels','0',NULL,'If enabled, include OCLC encoding levels in leader value builder dropdown for position 17.','YesNo'),
875
('UsePatronPreferencesForOverdueNotices', '0', NULL, 'Use patron specific messaging preferences for overdue notices if available', 'YesNo'),
876
('UsePatronPreferencesForOverdueNoticesPrint', 'always', 'always|fallback|never', 'When to send print notices when using patron specific messaging preferences for overdue notices', 'Choice'),
875
('UseRecalls','0',NULL,'Enable or disable recalls','YesNo'),
877
('UseRecalls','0',NULL,'Enable or disable recalls','YesNo'),
876
('UseTransportCostMatrix','0','','Use Transport Cost Matrix when filling holds','YesNo'),
878
('UseTransportCostMatrix','0','','Use Transport Cost Matrix when filling holds','YesNo'),
877
('UseWYSIWYGinSystemPreferences','0','','Show WYSIWYG editor when editing certain HTML system preferences.','YesNo'),
879
('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 57-62 Link Here
57
                        <span>Recall awaiting pickup</span>
57
                        <span>Recall awaiting pickup</span>
58
                    [% ELSIF ( messaging_preference.Recall_Requested ) %]
58
                    [% ELSIF ( messaging_preference.Recall_Requested ) %]
59
                        <span>Return recalled item</span>
59
                        <span>Return recalled item</span>
60
                    [% ELSIF ( messaging_preference.Overdue1 ) %]
61
                        <span>Overdue 1</span>
62
                    [% ELSIF ( messaging_preference.Overdue2 ) %]
63
                        <span>Overdue 2</span>
64
                    [% ELSIF ( messaging_preference.Overdue3 ) %]
65
                        <span>Overdue 3</span>
60
                    [% ELSE %]
66
                    [% ELSE %]
61
                        <span>Unknown</span>
67
                        <span>Unknown</span>
62
                    [% END %]
68
                    [% END %]
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/categories.tt (+6 lines)
Lines 761-766 Link Here
761
                                                            <span>Hold reminder</span>
761
                                                            <span>Hold reminder</span>
762
                                                        [% ELSIF ( prefs.Patron_Expiry ) %]
762
                                                        [% ELSIF ( prefs.Patron_Expiry ) %]
763
                                                            <span>Patron account expiry</span>
763
                                                            <span>Patron account expiry</span>
764
                                                        [% ELSIF ( prefs.Overdue1 ) %]
765
                                                            <span>Overdue 1</span>
766
                                                        [% ELSIF ( prefs.Overdue2 ) %]
767
                                                            <span>Overdue 2</span>
768
                                                        [% ELSIF ( prefs.Overdue3 ) %]
769
                                                            <span>Overdue 3</span>
764
                                                        [% ELSE %]
770
                                                        [% ELSE %]
765
                                                            <span>Unknown</span>
771
                                                            <span>Unknown</span>
766
                                                        [% END %]:
772
                                                        [% 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 746-756 END_SQL Link Here
746
                }
748
                }
747
                $sth2->finish;
749
                $sth2->finish;
748
750
749
                my @message_transport_types =
751
                my @message_transport_types;
750
                    @{ GetOverdueMessageTransportTypes( $branchcode, $overdue_rules->{categorycode}, $i ) };
752
                if (C4::Context->preference('UsePatronPreferencesForOverdueNotices')) {
751
                @message_transport_types =
753
                    my $patronpref = GetMessagingPreferences(
752
                    @{ GetOverdueMessageTransportTypes( q{}, $overdue_rules->{categorycode}, $i ) }
754
                        { borrowernumber => $borrowernumber, message_name => "Overdue$i"});
753
                    unless @message_transport_types;
755
                    if ($patronpref && $patronpref->{'transports'}) {
756
                        @message_transport_types = keys %{$patronpref->{'transports'}};
757
                    }
758
                    my $print_behavior = C4::Context->preference('UsePatronPreferencesForOverdueNoticesPrint');
759
                    if (
760
                        $print_behavior eq 'always' ||
761
                        $print_behavior eq 'fallback' && !@message_transport_types
762
                    ) {
763
                        unshift(@message_transport_types, 'shift');
764
                    }
765
                } else {
766
                    my @message_transport_types =
767
                        @{ GetOverdueMessageTransportTypes( $branchcode, $overdue_rules->{categorycode}, $i ) };
768
                    @message_transport_types =
769
                        @{ GetOverdueMessageTransportTypes( q{}, $overdue_rules->{categorycode}, $i ) }
770
                        unless @message_transport_types;
771
                }
754
772
755
                my $print_sent = 0;    # A print notice is not yet sent for this patron
773
                my $print_sent = 0;    # A print notice is not yet sent for this patron
756
                for my $mtt (@message_transport_types) {
774
                for my $mtt (@message_transport_types) {
757
- 

Return to bug 30515