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

(-)a/misc/cronjobs/overdue_notices.pl (-4 / +39 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 ( @emails && !$nomail ) {
488
                    my $memberinfos = C4::Members::GetMember(borrowernumber => $borrowernumber);
489
                    foreach (@emails) {
490
                        push @emails_to_use, $memberinfos->{$_}
491
                          if ( defined $memberinfos->{$_} );
492
                    }
493
                    $email = 1 if (@emails_to_use);
494
                }
495
                else {
496
                    $email =
497
                      C4::Members::GetFirstValidEmailAddress($borrowernumber);
498
                    push @emails_to_use, $email;
499
                }
500
501
                my $letter = C4::Letters::getletter( 'circulation', $overdue_rules->{"letter$i"}, $branchcode );
502
503
                unless ($letter) {
504
                    $verbose and warn "Message '$overdue_rules->{letter$i}' content not found";
505
    
506
                    # might as well skip while PERIOD, no other borrowers are going to work.
507
                    # FIXME : Does this mean a letter must be defined in order to trigger a debar ?
508
                    next PERIOD;
509
                }
475
    
510
    
476
                if ( $overdue_rules->{"debarred$i"} ) {
511
                if ( $overdue_rules->{"debarred$i"} ) {
477
    
512
    
Lines 501-507 END_SQL Link Here
501
                }
536
                }
502
                $sth2->finish;
537
                $sth2->finish;
503
538
504
                my $letter = parse_letter(
539
                $letter = parse_letter(
505
                    {   letter_code     => $overdue_rules->{"letter$i"},
540
                    {   letter_code     => $overdue_rules->{"letter$i"},
506
                        borrowernumber  => $borrowernumber,
541
                        borrowernumber  => $borrowernumber,
507
                        branchcode      => $branchcode,
542
                        branchcode      => $branchcode,
Lines 551-562 END_SQL Link Here
551
                        }
586
                        }
552
                      );
587
                      );
553
                } else {
588
                } else {
554
                    if ($email) {
589
                    if (scalar(@emails_to_use) > 0 ) {
555
                        C4::Letters::EnqueueLetter(
590
                        C4::Letters::EnqueueLetter(
556
                            {   letter                 => $letter,
591
                            {   letter                 => $letter,
557
                                borrowernumber         => $borrowernumber,
592
                                borrowernumber         => $borrowernumber,
558
                                message_transport_type => 'email',
593
                                message_transport_type => 'email',
559
                                from_address           => $admin_email_address,
594
                                from_address           => $admin_email_address,
595
                                to_address             => join(',', @emails_to_use),
560
                            }
596
                            }
561
                        );
597
                        );
562
                    } else {
598
                    } else {
563
- 

Return to bug 6835