recommend HTML::Mason
[freeside.git] / FS / bin / freeside-expiration-alerter
index 365b964..691fd3a 100755 (executable)
@@ -80,22 +80,24 @@ $alerter->compile() or die "can't compile template:  Text::Template::ERROR";
 # Now I can start looping
 foreach my $customer (@customers)
 {
+  my $paydate = $customer->getfield('paydate');
+  next if $paydate =~ /^\s*$/; #skip empty expiration dates
+
   my $custnum = $customer->getfield('custnum');
   my $first = $customer->getfield('first');
   my $last = $customer->getfield('last');
   my $company = $customer->getfield('company');
   my $payby = $customer->getfield('payby');
   my $payinfo = $customer->getfield('payinfo');
-  my $paydate = $customer->getfield('paydate');
   my $daytime = $customer->getfield('daytime');
   my $night = $customer->getfield('night');
-       
+
   my ($payyear,$paymonth,$payday) = split (/-/,$paydate);
 
   my $expire_time = timelocal(0,0,0,$payday,--$paymonth,$payyear);
 
   #credit cards expire at the end of the month/year of their exp date
-  if ($payby eq 'CARD') {
+  if ($payby eq 'CARD' || $payby eq 'DCRD') {
     ($paymonth < 11) ? $paymonth++ : ($paymonth=0, $payyear++);
     $expire_time = timelocal(0,0,0,$payday,$paymonth,$payyear);
     $expire_time--;
@@ -125,7 +127,7 @@ foreach my $customer (@customers)
         $FS::alerter::_template::first = $first;
         $FS::alerter::_template::last = $last;
         $FS::alerter::_template::company = $company;
-        if ($payby eq 'CARD') {
+        if ($payby eq 'CARD' || $payby eq 'DCRD') {
           $FS::alerter::_template::payby = "credit card (" .
             substr($payinfo, 0, 2) . "xxxxxxxxxx" .
             substr($payinfo, -4) . ")";
@@ -142,7 +144,8 @@ foreach my $customer (@customers)
         );
         $!=0;
         $message->smtpsend( Host => $smtpmachine )
-          or die "Can't send expiration email!: $!"; #die?  warn?
+          or $message->smtpsend( Host => $smtpmachine, Debug => 1 )
+            or die "Can't send expiration email: $!";
 
       } elsif ( ! @invoicing_list || grep { $_ eq 'POST' } @invoicing_list ) { 
         push @body, sprintf(qq{%5d %-32.32s %4s %10s %12s %12s},
@@ -166,8 +169,8 @@ if (scalar(@body)) {
   $!=0;
   $message->smtpsend( Host => $smtpmachine )
     or $message->smtpsend( Host => $smtpmachine, Debug => 1 )
-      or return "can't send alerter failure email to $failure_recipient".
-              " via server $smtpmachine with SMTP: $!";
+      or die "can't send alerter failure email to $failure_recipient".
+             " via server $smtpmachine with SMTP: $!";
 }
 
 # subroutines
@@ -199,7 +202,7 @@ user: From the mapsecrets file - see config.html from the base documentation
 
 =head1 VERSION
 
-$Id: freeside-expiration-alerter,v 1.2 2002-03-07 19:50:24 jeff Exp $
+$Id: freeside-expiration-alerter,v 1.5 2003-04-21 20:53:57 ivan Exp $
 
 =head1 BUGS