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 182-222 END_SQL Link Here
182
    return;    
182
    return;    
183
}
183
}
184
184
185
=head2 SetMessagingPreferencesFromDefaults
186
187
  C4::Members::Messaging::SetMessagingPreferencesFromDefaults( { borrowernumber => $borrower->{'borrowernumber'}
188
                                                                categorycode   => 'CPL' } );
189
190
Given a borrowernumber and a patron category code (from the C<borrowernumber> and C<categorycode> keys
191
in the parameter hashref), replace all of the patron's current messaging preferences with
192
whatever defaults are defined for the patron category.
193
194
=cut
195
196
sub SetMessagingPreferencesFromDefaults {
197
    my $params = shift;
198
199
    foreach my $required ( qw( borrowernumber categorycode ) ) {
200
        unless ( exists $params->{ $required } ) {
201
            die "SetMessagingPreferencesFromDefaults called without required parameter: $required";
202
        }
203
    }
204
205
    my $messaging_options = Koha::Patron::Message::Preferences->get_options;
206
    OPTION: foreach my $option ( @$messaging_options ) {
207
        my $default_pref = GetMessagingPreferences( { categorycode => $params->{categorycode},
208
                                                      message_name => $option->{'message_name'} } );
209
        # FIXME - except for setting the borrowernumber, it really ought to be possible
210
        # to have the output of GetMessagingPreferences be able to be the input
211
        # to SetMessagingPreference
212
        my @message_transport_types = keys %{ $default_pref->{transports} };
213
        $default_pref->{message_attribute_id}    = $option->{'message_attribute_id'};
214
        $default_pref->{message_transport_types} = \@message_transport_types;
215
        $default_pref->{borrowernumber}          = $params->{borrowernumber};
216
        SetMessagingPreference( $default_pref );
217
    }
218
}
219
220
=head1 TABLES
185
=head1 TABLES
221
186
222
=head2 message_queue
187
=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