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/koha-tmpl/intranet-tmpl/prog/en/includes/messaging-preference-form.inc (+3 lines)
Lines 34-39 Link Here
34
          [% ELSIF ( messaging_preference.Ill_unavailable ) %]<span>Interlibrary loan unavailable</span>
34
          [% ELSIF ( messaging_preference.Ill_unavailable ) %]<span>Interlibrary loan unavailable</span>
35
          [% ELSIF ( messaging_preference.Ill_update ) %]<span>Interlibrary loan updated</span>
35
          [% ELSIF ( messaging_preference.Ill_update ) %]<span>Interlibrary loan updated</span>
36
          [% ELSIF ( messaging_preference.Auto_Renewals ) %]<span>Auto renewal</span>
36
          [% ELSIF ( messaging_preference.Auto_Renewals ) %]<span>Auto renewal</span>
37
          [% ELSIF ( messaging_preference.Overdue1 ) %]<span>Overdue 1</span>
38
          [% ELSIF ( messaging_preference.Overdue2 ) %]<span>Overdue 2</span>
39
          [% ELSIF ( messaging_preference.Overdue3 ) %]<span>Overdue 3</span>
37
          [% ELSE %]<span>Unknown</span>
40
          [% ELSE %]<span>Unknown</span>
38
          [% END %]
41
          [% END %]
39
      </td>
42
      </td>
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/categories.tt (+3 lines)
Lines 653-658 Link Here
653
                                                [% ELSIF ( prefs.Ill_update ) %]<span>Interlibrary loan updated</span>
653
                                                [% ELSIF ( prefs.Ill_update ) %]<span>Interlibrary loan updated</span>
654
                                                [% ELSIF ( prefs.Auto_Renewals ) %]<span>Auto renewal</span>
654
                                                [% ELSIF ( prefs.Auto_Renewals ) %]<span>Auto renewal</span>
655
                                                [% ELSIF ( prefs.Hold_Reminder ) %]<span>Hold reminder</span>
655
                                                [% ELSIF ( prefs.Hold_Reminder ) %]<span>Hold reminder</span>
656
                                                [% ELSIF ( prefs.Overdue1 ) %]<span>Overdue 1</span>
657
                                                [% ELSIF ( prefs.Overdue2 ) %]<span>Overdue 2</span>
658
                                                [% ELSIF ( prefs.Overdue3 ) %]<span>Overdue 3</span>
656
                                                [% ELSE %]<span>Unknown</span>
659
                                                [% ELSE %]<span>Unknown</span>
657
                                                [% END %]:
660
                                                [% END %]:
658
                                                <strong>[% transport.transport | html %]</strong><br />
661
                                                <strong>[% transport.transport | html %]</strong><br />
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/circulation.pref (-1 / +16 lines)
Lines 571-577 Circulation: Link Here
571
            - This is a list of value pairs. When an item is checked out, if the not for loan value on the left matches the items not for loan value
571
            - This is a list of value pairs. When an item is checked out, if the not for loan value on the left matches the items not for loan value
572
            - "it will be updated to the right-hand value. For example, '-1: 0' will cause an item that was set to 'Ordered' to now be available for loan."
572
            - "it will be updated to the right-hand value. For example, '-1: 0' will cause an item that was set to 'Ordered' to now be available for loan."
573
            - Each pair of values should be on a separate line.
573
            - Each pair of values should be on a separate line.
574
    Checkin policy:
574
        -
575
            - Use message preferences based on
576
            - pref: UsePatronPreferencesForOverdueNotices
577
              choices:
578
                  1: individual patron preference
579
                  0: patron category
580
            - when sending overdue notices.
581
        -
582
            - When using individual patron preferences for overdue notices
583
            - pref: UsePatronPreferencesForOverdueNoticesPrint
584
              choices:
585
                  always: always
586
                  fallback: when no other transport set
587
                  never: never
588
            - print notice.
589
    Checkin Policy:
575
        -
590
        -
576
            - pref: TrapHoldsOnOrder
591
            - pref: TrapHoldsOnOrder
577
              choices:
592
              choices:
(-)a/misc/cronjobs/overdue_notices.pl (-5 / +20 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 711-721 END_SQL Link Here
711
                    push @items, $item_info;
713
                    push @items, $item_info;
712
                }
714
                }
713
                $sth2->finish;
715
                $sth2->finish;
714
716
                my @message_transport_types;
715
                my @message_transport_types = @{ GetOverdueMessageTransportTypes( $branchcode, $overdue_rules->{categorycode}, $i) };
717
                if (C4::Context->preference('UsePatronPreferencesForOverdueNotices')) {
716
                @message_transport_types = @{ GetOverdueMessageTransportTypes( q{}, $overdue_rules->{categorycode}, $i) }
718
                    my $patronpref = GetMessagingPreferences(
719
                        { borrowernumber => $borrowernumber, message_name => "Overdue$i"});
720
                    if ($patronpref && $patronpref->{'transports'}) {
721
                        @message_transport_types = keys %{$patronpref->{'transports'}};
722
                    }
723
                    my $print_behavior = C4::Context->preference('UsePatronPreferencesForOverdueNoticesPrint');
724
                    if (
725
                        $print_behavior eq 'always' ||
726
                        $print_behavior eq 'fallback' && !@message_transport_types
727
                    ) {
728
                        unshift(@message_transport_types, 'shift');
729
                    }
730
                } else {
731
                    @message_transport_types = @{ GetOverdueMessageTransportTypes( $branchcode, $overdue_rules->{categorycode}, $i) };
732
                    @message_transport_types = @{ GetOverdueMessageTransportTypes( q{}, $overdue_rules->{categorycode}, $i) }
717
                    unless @message_transport_types;
733
                    unless @message_transport_types;
718
734
                }
719
735
720
                my $print_sent = 0; # A print notice is not yet sent for this patron
736
                my $print_sent = 0; # A print notice is not yet sent for this patron
721
                for my $mtt ( @message_transport_types ) {
737
                for my $mtt ( @message_transport_types ) {
722
- 

Return to bug 30515