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

(-)a/misc/cronjobs/membership_expiry.pl (-46 / +32 lines)
Lines 253-321 warn 'found ' . $upcoming_mem_expires->count . ' soon expiring members' Link Here
253
253
254
# main loop
254
# main loop
255
my ( $count_skipped, $count_renewed, $count_enqueued ) = ( 0, 0, 0 );
255
my ( $count_skipped, $count_renewed, $count_enqueued ) = ( 0, 0, 0 );
256
while ( my $recent = $upcoming_mem_expires->next ) {
256
while ( my $expiring_patron = $upcoming_mem_expires->next ) {
257
    if ( $active && !$recent->is_active( { months => $active } ) ) {
257
    if ( $active && !$expiring_patron->is_active( { months => $active } ) ) {
258
        $count_skipped++;
258
        $count_skipped++;
259
        next;
259
        next;
260
    } elsif ( $inactive && $recent->is_active( { months => $inactive } ) ) {
260
    } elsif ( $inactive && $expiring_patron->is_active( { months => $inactive } ) ) {
261
        $count_skipped++;
261
        $count_skipped++;
262
        next;
262
        next;
263
    }
263
    }
264
264
265
    my $messaging_prefs = C4::Members::Messaging::GetMessagingPreferences(
266
        {
267
            borrowernumber => $expiring_patron->borrowernumber,
268
            message_name   => "Patron_Expiry",
269
        }
270
    );
271
    my @message_transports = ( keys %{ $messaging_prefs->{transports} } );
272
    my $letter_code = $messaging_prefs->{letter_code};
273
274
    # Skip this patron if they don't want a notification email for card expiry
275
    next if !$messaging_prefs;
276
265
    my $which_notice;
277
    my $which_notice;
266
    if ($renew) {
278
    if ($renew) {
267
        $recent->renew_account;
279
        $expiring_patron->renew_account;
268
        $which_notice = $letter_renew;
280
        $which_notice = $letter_renew;
269
        $count_renewed++;
281
        $count_renewed++;
270
    } else {
282
    } else {
271
        $which_notice = $letter_expiry;
283
        $which_notice = $letter_code || $letter_expiry;
272
    }
284
    }
273
285
274
    my $from_address = $recent->library->from_email_address;
286
    my $from_address  = $expiring_patron->library->from_email_address;
275
    my $letter =  C4::Letters::GetPreparedLetter(
287
    my $letter_params = {
276
        module      => 'members',
288
        module      => 'members',
277
        letter_code => $which_notice,
289
        letter_code => $which_notice,
278
        branchcode  => $recent->branchcode,
290
        branchcode  => $expiring_patron->branchcode,
279
        lang        => $recent->lang,
291
        lang        => $expiring_patron->lang,
292
        borrowernumber => $expiring_patron->borrowernumber,
280
        tables      => {
293
        tables      => {
281
            borrowers => $recent->borrowernumber,
294
            borrowers => $expiring_patron->borrowernumber,
282
            branches  => $recent->branchcode,
295
            branches  => $expiring_patron->branchcode,
283
        },
296
        },
284
    );
297
    };
285
    last if !$letter;    # Letters.pm already warned, just exit
286
    if ($nomail) {
287
        print $letter->{'content'}."\n";
288
        next;
289
    }
290
298
291
    C4::Letters::EnqueueLetter({
299
    my $sending_params = {
292
        letter                 => $letter,
300
        letter_params => $letter_params,
293
        borrowernumber         =>  $recent->borrowernumber,
301
        message_name => 'Patron_Expiry',
294
        from_address           => $from_address,
302
    };
295
        message_transport_type => 'email',
303
296
    });
304
    my $result = $expiring_patron->queue_notice($sending_params);
297
    $count_enqueued++;
305
    $count_enqueued++ if $result->{sent};
298
299
    if ($recent->smsalertnumber) {
300
        my $smsletter = C4::Letters::GetPreparedLetter(
301
            module      => 'members',
302
            letter_code => $which_notice,
303
            branchcode  => $recent->branchcode,
304
            lang        => $recent->lang,
305
            tables      => {
306
                borrowers => $recent->borrowernumber,
307
                branches  => $recent->branchcode,
308
            },
309
            message_transport_type => 'sms',
310
        );
311
        if ($smsletter) {
312
            C4::Letters::EnqueueLetter({
313
                letter                 => $smsletter,
314
                borrowernumber         => $recent->borrowernumber,
315
                message_transport_type => 'sms',
316
            });
317
        }
318
    }
319
}
306
}
320
307
321
if ($verbose) {
308
if ($verbose) {
322
- 

Return to bug 30300