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

(-)a/C4/Auth_with_ldap.pm (-1 / +1 lines)
Lines 226-232 sub checkpw_ldap { Link Here
226
        )->store;
226
        )->store;
227
        die "Insert of new patron failed" unless $patron;
227
        die "Insert of new patron failed" unless $patron;
228
        $borrowernumber = $patron->borrowernumber;
228
        $borrowernumber = $patron->borrowernumber;
229
        C4::Members::Messaging::SetMessagingPreferencesFromDefaults( { borrowernumber => $borrowernumber, categorycode => $borrower{'categorycode'} } );
229
        $patron->set_default_messaging_preferences;
230
   } else {
230
   } else {
231
        return 0;   # B2, D2
231
        return 0;   # B2, D2
232
    }
232
    }
(-)a/C4/Auth_with_shibboleth.pm (-1 / +1 lines)
Lines 140-146 sub _autocreate { Link Here
140
    }
140
    }
141
141
142
    my $patron = Koha::Patron->new( \%borrower )->store;
142
    my $patron = Koha::Patron->new( \%borrower )->store;
143
    C4::Members::Messaging::SetMessagingPreferencesFromDefaults( { borrowernumber => $patron->borrowernumber, categorycode => $patron->categorycode } );
143
    $patron->set_default_messaging_preferences;
144
144
145
    return ( 1, $patron->cardnumber, $patron->userid );
145
    return ( 1, $patron->cardnumber, $patron->userid );
146
}
146
}
(-)a/C4/Form/MessagingPreferences.pm (-2 / +4 lines)
Lines 25-30 use C4::Context; Link Here
25
use C4::Members::Messaging;
25
use C4::Members::Messaging;
26
use C4::Debug;
26
use C4::Debug;
27
use Koha::Patron::Message::Preferences;
27
use Koha::Patron::Message::Preferences;
28
use Koha::Patrons;
28
29
29
use constant MAX_DAYS_IN_ADVANCE => 30;
30
use constant MAX_DAYS_IN_ADVANCE => 30;
30
31
Lines 105-112 sub handle_form_action { Link Here
105
    }
106
    }
106
    if (! $prefs_set && $insert){
107
    if (! $prefs_set && $insert){
107
        # this is new borrower, and we have no preferences set, use the defaults
108
        # this is new borrower, and we have no preferences set, use the defaults
108
	$target_params->{categorycode} = $categorycode;
109
        $target_params->{categorycode} = $categorycode;
109
        C4::Members::Messaging::SetMessagingPreferencesFromDefaults( $target_params );
110
        my $patron = Koha::Patrons->find($target_params->{'borrowernumber'});
111
        $patron->set_default_messaging_preferences if $patron;
110
    }
112
    }
111
    # show the success message
113
    # show the success message
112
    $template->param( settings_updated => 1 );
114
    $template->param( settings_updated => 1 );
(-)a/C4/Members/Messaging.pm (-35 lines)
Lines 181-221 END_SQL Link Here
181
    return;    
181
    return;    
182
}
182
}
183
183
184
=head2 SetMessagingPreferencesFromDefaults
185
186
  C4::Members::Messaging::SetMessagingPreferencesFromDefaults( { borrowernumber => $borrower->{'borrowernumber'}
187
                                                                categorycode   => 'CPL' } );
188
189
Given a borrowernumber and a patron category code (from the C<borrowernumber> and C<categorycode> keys
190
in the parameter hashref), replace all of the patron's current messaging preferences with
191
whatever defaults are defined for the patron category.
192
193
=cut
194
195
sub SetMessagingPreferencesFromDefaults {
196
    my $params = shift;
197
198
    foreach my $required ( qw( borrowernumber categorycode ) ) {
199
        unless ( exists $params->{ $required } ) {
200
            die "SetMessagingPreferencesFromDefaults called without required parameter: $required";
201
        }
202
    }
203
204
    my $messaging_options = Koha::Patron::Message::Preferences->get_options;
205
    OPTION: foreach my $option ( @$messaging_options ) {
206
        my $default_pref = GetMessagingPreferences( { categorycode => $params->{categorycode},
207
                                                      message_name => $option->{'message_name'} } );
208
        # FIXME - except for setting the borrowernumber, it really ought to be possible
209
        # to have the output of GetMessagingPreferences be able to be the input
210
        # to SetMessagingPreference
211
        my @message_transport_types = keys %{ $default_pref->{transports} };
212
        $default_pref->{message_attribute_id}    = $option->{'message_attribute_id'};
213
        $default_pref->{message_transport_types} = \@message_transport_types;
214
        $default_pref->{borrowernumber}          = $params->{borrowernumber};
215
        SetMessagingPreference( $default_pref );
216
    }
217
}
218
219
=head1 TABLES
184
=head1 TABLES
220
185
221
=head2 message_queue
186
=head2 message_queue
(-)a/Koha/Patrons/Import.pm (-6 / +1 lines)
Lines 372-383 sub import_patrons { Link Here
372
                }
372
                }
373
373
374
                if ($set_messaging_prefs) {
374
                if ($set_messaging_prefs) {
375
                    C4::Members::Messaging::SetMessagingPreferencesFromDefaults(
375
                    $patron->set_default_messaging_preferences;
376
                        {
377
                            borrowernumber => $patron->borrowernumber,
378
                            categorycode   => $patron->categorycode,
379
                        }
380
                    );
381
                }
376
                }
382
377
383
                $imported++;
378
                $imported++;
(-)a/misc/maintenance/borrowers-force-messaging-defaults.pl (-5 / +3 lines)
Lines 29-34 BEGIN { Link Here
29
use Koha::Script;
29
use Koha::Script;
30
use C4::Context;
30
use C4::Context;
31
use C4::Members::Messaging;
31
use C4::Members::Messaging;
32
use Koha::Patrons;
32
use Getopt::Long;
33
use Getopt::Long;
33
use Pod::Usage;
34
use Pod::Usage;
34
35
Lines 65-74 WHERE bo.dateenrolled >= ?|; Link Here
65
    while ( my ($borrowernumber, $categorycode) = $sth->fetchrow ) {
66
    while ( my ($borrowernumber, $categorycode) = $sth->fetchrow ) {
66
        print "$borrowernumber: $categorycode\n";
67
        print "$borrowernumber: $categorycode\n";
67
        next unless $doit;
68
        next unless $doit;
68
        C4::Members::Messaging::SetMessagingPreferencesFromDefaults( {
69
        my $patron = Koha::Patrons->find($borrowernumber);
69
            borrowernumber => $borrowernumber,
70
        $patron->set_default_messaging_preferences if $patron;
70
            categorycode   => $categorycode,
71
        } );
72
        $cnt++;
71
        $cnt++;
73
    }
72
    }
74
    $dbh->commit();
73
    $dbh->commit();
75
- 

Return to bug 18595