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

(-)a/misc/cronjobs/overdue_notices.pl (-5 / +41 lines)
Lines 47-53 overdue_notices.pl - prepare messages to be sent to patrons for overdue items Link Here
47
47
48
=head1 SYNOPSIS
48
=head1 SYNOPSIS
49
49
50
overdue_notices.pl [ -n ] [ -library <branchcode> ] [ -library <branchcode>...] [ -max <number of days> ] [ -csv [ <filename> ] ] [ -itemscontent <field list> ]
50
overdue_notices.pl
51
  [ -n ][ -library <branchcode> ][ -library <branchcode> ... ]
52
  [ -max <number of days> ][ -csv [<filename>] ][ -itemscontent <field list> ]
53
  [ -email <email_type> ... ]
51
54
52
 Options:
55
 Options:
53
   -help                          brief help message
56
   -help                          brief help message
Lines 60-65 overdue_notices.pl [ -n ] [ -library <branchcode> ] [ -library <branchcode>...] Link Here
60
   -itemscontent <list of fields> item information in templates
63
   -itemscontent <list of fields> item information in templates
61
   -borcat       <categorycode>   category code that must be included
64
   -borcat       <categorycode>   category code that must be included
62
   -borcatout    <categorycode>   category code that must be excluded
65
   -borcatout    <categorycode>   category code that must be excluded
66
   -email        <email_type>     type of email that will be used. Can be 'email', 'emailpro' or 'B_email'. Repeatable.
63
67
64
=head1 OPTIONS
68
=head1 OPTIONS
65
69
Lines 147-152 Choose list-all to include all overdue items in the list (limited by B<-max> set Link Here
147
151
148
use it in order to send overdues on a specific date and not Now.
152
use it in order to send overdues on a specific date and not Now.
149
153
154
=item B<-email>
155
156
Allows to specify which type of email will be used. Can be email, emailpro or B_email. Repeatable.
157
150
=back
158
=back
151
159
152
=head1 DESCRIPTION
160
=head1 DESCRIPTION
Lines 256-261 my $verbose = 0; Link Here
256
my $nomail  = 0;
264
my $nomail  = 0;
257
my $MAX     = 90;
265
my $MAX     = 90;
258
my @branchcodes; # Branch(es) passed as parameter
266
my @branchcodes; # Branch(es) passed as parameter
267
my @emails_to_use;    # Emails to use for messaging
268
my @emails;           # Emails given in command-line parameters
259
my $csvfilename;
269
my $csvfilename;
260
my $htmlfilename;
270
my $htmlfilename;
261
my $triggered = 0;
271
my $triggered = 0;
Lines 280-285 GetOptions( Link Here
280
    'date'           => \$date,
290
    'date'           => \$date,
281
    'borcat=s'       => \@myborcat,
291
    'borcat=s'       => \@myborcat,
282
    'borcatout=s'    => \@myborcatout,
292
    'borcatout=s'    => \@myborcatout,
293
    'email=s'        => \@emails,
283
) or pod2usage(2);
294
) or pod2usage(2);
284
pod2usage(1) if $help;
295
pod2usage(1) if $help;
285
pod2usage( -verbose => 2 ) if $man;
296
pod2usage( -verbose => 2 ) if $man;
Lines 472-477 END_SQL Link Here
472
                    ) = $sth->fetchrow )
483
                    ) = $sth->fetchrow )
473
            {
484
            {
474
                $verbose and warn "borrower $firstname, $lastname ($borrowernumber) has items triggering level $i.";
485
                $verbose and warn "borrower $firstname, $lastname ($borrowernumber) has items triggering level $i.";
486
                @emails_to_use = ();
487
                if ( !$nomail) {
488
                    if ( @emails ) {
489
                        my $memberinfos = C4::Members::GetMember(borrowernumber => $borrowernumber);
490
                        foreach (@emails) {
491
                            push @emails_to_use, $memberinfos->{$_}
492
                              if ($memberinfos->{$_} ne '');
493
                        }
494
                    }
495
                    else {
496
                        $email =
497
                          C4::Members::GetFirstValidEmailAddress($borrowernumber);
498
                        push @emails_to_use, $email if ($email ne '');
499
                    }
500
                }
501
502
                my $letter = C4::Letters::getletter( 'circulation', $overdue_rules->{"letter$i"}, $branchcode );
503
504
                unless ($letter) {
505
                    $verbose and warn "Message '$overdue_rules->{letter$i}' content not found";
506
507
                    # might as well skip while PERIOD, no other borrowers are going to work.
508
                    # FIXME : Does this mean a letter must be defined in order to trigger a debar ?
509
                    next PERIOD;
510
                }
475
    
511
    
476
                if ( $overdue_rules->{"debarred$i"} ) {
512
                if ( $overdue_rules->{"debarred$i"} ) {
477
    
513
    
Lines 489-495 END_SQL Link Here
489
                my $j = 0;
525
                my $j = 0;
490
                my $exceededPrintNoticesMaxLines = 0;
526
                my $exceededPrintNoticesMaxLines = 0;
491
                while ( my $item_info = $sth2->fetchrow_hashref() ) {
527
                while ( my $item_info = $sth2->fetchrow_hashref() ) {
492
                    if ( ( !$email || $nomail ) && $PrintNoticesMaxLines && $j >= $PrintNoticesMaxLines ) {
528
                    if ( ( scalar(@emails_to_use) == 0 || $nomail ) && $PrintNoticesMaxLines && $j >= $PrintNoticesMaxLines ) {
493
                      $exceededPrintNoticesMaxLines = 1;
529
                      $exceededPrintNoticesMaxLines = 1;
494
                      last;
530
                      last;
495
                    }
531
                    }
Lines 501-507 END_SQL Link Here
501
                }
537
                }
502
                $sth2->finish;
538
                $sth2->finish;
503
539
504
                my $letter = parse_letter(
540
                $letter = parse_letter(
505
                    {   letter_code     => $overdue_rules->{"letter$i"},
541
                    {   letter_code     => $overdue_rules->{"letter$i"},
506
                        borrowernumber  => $borrowernumber,
542
                        borrowernumber  => $borrowernumber,
507
                        branchcode      => $branchcode,
543
                        branchcode      => $branchcode,
Lines 552-563 END_SQL Link Here
552
                        }
588
                        }
553
                      );
589
                      );
554
                } else {
590
                } else {
555
                    if ($email) {
591
                    if (scalar(@emails_to_use) > 0 ) {
556
                        C4::Letters::EnqueueLetter(
592
                        C4::Letters::EnqueueLetter(
557
                            {   letter                 => $letter,
593
                            {   letter                 => $letter,
558
                                borrowernumber         => $borrowernumber,
594
                                borrowernumber         => $borrowernumber,
559
                                message_transport_type => 'email',
595
                                message_transport_type => 'email',
560
                                from_address           => $admin_email_address,
596
                                from_address           => $admin_email_address,
597
                                to_address             => join(',', @emails_to_use),
561
                            }
598
                            }
562
                        );
599
                        );
563
                    } else {
600
                    } else {
564
- 

Return to bug 6835