fixes: bug #348 - adds the ability to email on deleted payments.
[freeside.git] / FS / FS / cust_bill.pm
index 00135af..092c174 100644 (file)
@@ -19,6 +19,7 @@ use FS::cust_pay;
 use FS::cust_pkg;
 use FS::cust_credit_bill;
 use FS::cust_pay_batch;
+use FS::cust_bill_event;
 
 @ISA = qw( FS::Record );
 
@@ -251,6 +252,19 @@ sub cust_bill_pkg {
   qsearch( 'cust_bill_pkg', { 'invnum' => $self->invnum } );
 }
 
+=item cust_bill_event
+
+Returns the completed invoice events (see L<FS::cust_bill_event>) for this
+invoice.
+
+=cut
+
+sub cust_bill_event {
+  my $self = shift;
+  qsearch( 'cust_bill_event', { 'invnum' => $self->invnum } );
+}
+
+
 =item cust_main
 
 Returns the customer (see L<FS::cust_main>) for this invoice.
@@ -374,7 +388,8 @@ sub send {
   #my @print_text = $cust_bill->print_text; #( date )
   my @invoicing_list = $self->cust_main->invoicing_list;
   if ( grep { $_ ne 'POST' } @invoicing_list ) { #email invoice
-    $ENV{SMTPHOSTS} = $smtpmachine;
+    #false laziness w/FS::cust_pay::delete
+    #$ENV{SMTPHOSTS} = $smtpmachine;
     $ENV{MAILADDRESS} = $invoice_from;
     my $header = new Mail::Header ( [
       "From: $invoice_from",
@@ -388,8 +403,12 @@ sub send {
       'Header' => $header,
       'Body' => [ $self->print_text ], #( date)
     );
-    $message->smtpsend
-      or return "Can't send invoice email to server $smtpmachine!";
+    $!=0;
+    $message->smtpsend( Host => $smtpmachine )
+      or $message->smtpsend( Host => $smtpmachine, Debug => 1 )
+        or return "(customer # ". $self->custnum. ") can't send invoice email".
+                  " to ". join(', ', grep { $_ ne 'POST' } @invoicing_list ).
+                  " via server $smtpmachine with SMTP: $!";
 
   #} elsif ( grep { $_ eq 'POST' } @invoicing_list ) {
   } elsif ( ! @invoicing_list || grep { $_ eq 'POST' } @invoicing_list ) {
@@ -454,7 +473,7 @@ sub realtime_card {
   my($payname, $payfirst, $paylast);
   if ( $cust_main->payname ) {
     $payname = $cust_main->payname;
-    $payname =~ /^\s*([\w \,\.\-\']*\w)?\s+([\w\,\.\-\']+)$/
+    $payname =~ /^\s*([\w \,\.\-\']*)?\s+([\w\,\.\-\']+)$/
       or do {
               #$dbh->rollback if $oldAutoCommit;
               return "Illegal payname $payname";
@@ -864,7 +883,7 @@ sub print_text {
 
 =head1 VERSION
 
-$Id: cust_bill.pm,v 1.16 2002-02-04 16:44:48 ivan Exp $
+$Id: cust_bill.pm,v 1.23 2002-03-18 19:49:10 ivan Exp $
 
 =head1 BUGS
 
@@ -878,7 +897,7 @@ or something similar so the look can be completely customized?)
 
 =head1 SEE ALSO
 
-L<FS::Record>, L<FS::cust_main>, L<FS::cust_bill_pay>, L<FS:;cust_pay>,
+L<FS::Record>, L<FS::cust_main>, L<FS::cust_bill_pay>, L<FS::cust_pay>,
 L<FS::cust_bill_pkg>, L<FS::cust_bill_credit>, schema.html from the base
 documentation.