This commit was manufactured by cvs2svn to create branch
[freeside.git] / FS / FS / cust_bill.pm
index 18b8aa7..8a37ada 100644 (file)
@@ -8,6 +8,7 @@ use vars qw( $xaction $E_NoErr );
 use vars qw( $bop_processor $bop_login $bop_password $bop_action @bop_options );
 use vars qw( $ach_processor $ach_login $ach_password $ach_action @ach_options );
 use vars qw( $invoice_lines @buf ); #yuck
+use vars qw( $quiet );
 use Date::Format;
 use Mail::Internet 1.44;
 use Mail::Header;
@@ -36,6 +37,11 @@ $FS::UID::callback{'FS::cust_bill'} = sub {
   $invoice_from = $conf->config('invoice_from');
   $smtpmachine = $conf->config('smtpmachine');
 
+  ( $bop_processor,$bop_login, $bop_password, $bop_action ) = ( '', '', '', '');
+  @bop_options = ();
+  ( $ach_processor,$ach_login, $ach_password, $ach_action ) = ( '', '', '', '');
+  @ach_options = ();
+
   if ( $conf->exists('cybercash3.2') ) {
     require CCMckLib3_2;
       #qw($MCKversion %Config InitConfig CCError CCDebug CCDebug2);
@@ -680,6 +686,10 @@ sub realtime_lec {
 
 sub realtime_bop {
   my( $self, $method, $processor, $login, $password, $action, $options ) = @_;
+
+  #trim an extraneous blank line
+  pop @$options if scalar(@$options) % 2 && $options->[-1] =~ /^\s*$/;
+
   my $cust_main = $self->cust_main;
   my $amount = $self->owed;
 
@@ -736,6 +746,10 @@ sub realtime_bop {
     ( $content{account_number}, $content{routing_code} ) =
       split('@', $cust_main->payinfo);
     $content{bank_name} = $cust_main->payname;
+    $content{account_type} = 'CHECKING';
+    $content{account_name} = $payname;
+    $content{customer_org} = $self->company ? 'B' : 'I';
+    $content{customer_ssn} = $self->ss;
   } elsif ( $method eq 'LEC' ) {
     $content{phone} = $cust_main->payinfo;
   }
@@ -842,7 +856,7 @@ sub realtime_bop {
     my $perror = "$processor error, invnum #". $self->invnum. ': '.
                  $transaction->result_code. ": ". $transaction->error_message;
 
-    if ( $conf->exists('emaildecline')
+    if ( !$quiet && $conf->exists('emaildecline')
          && grep { $_ ne 'POST' } $cust_main->invoicing_list
     ) {
       my @templ = $conf->config('declinetemplate');
@@ -1124,9 +1138,9 @@ sub print_text {
   or die "cannot load config file $templatefile";
   $invoice_lines = 0;
   my $wasfunc = 0;
-  foreach ( grep /invoice_lines\(\d+\)/, @invoice_template ) { #kludgy
-    /invoice_lines\((\d+)\)/;
-    $invoice_lines += $1;
+  foreach ( grep /invoice_lines\(\d*\)/, @invoice_template ) { #kludgy
+    /invoice_lines\((\d*)\)/;
+    $invoice_lines += $1 || scalar(@buf);
     $wasfunc=1;
   }
   die "no invoice_lines() functions in template?" unless $wasfunc;
@@ -1139,11 +1153,12 @@ sub print_text {
 
   #setup template variables
   package FS::cust_bill::_template; #!
-  use vars qw( $invnum $date $page $total_pages @address $overdue @buf );
+  use vars qw( $invnum $date $page $total_pages @address $overdue @buf $agent );
 
   $invnum = $self->invnum;
   $date = $self->_date;
   $page = 1;
+  $agent = $self->cust_main->agent->agent;
 
   if ( $FS::cust_bill::invoice_lines ) {
     $total_pages =
@@ -1184,16 +1199,14 @@ sub print_text {
        #  );
 
   #and subroutine for the template
-
   sub FS::cust_bill::_template::invoice_lines {
-    my $lines = shift or return @buf;
+    my $lines = shift || scalar(@buf);
     map { 
       scalar(@buf) ? shift @buf : [ '', '' ];
     }
     ( 1 .. $lines );
   }
 
-
   #and fill it in
   $FS::cust_bill::_template::page = 1;
   my $lines;
@@ -1213,7 +1226,7 @@ sub print_text {
 
 =head1 VERSION
 
-$Id: cust_bill.pm,v 1.41.2.12 2002-11-22 12:19:05 ivan Exp $
+$Id: cust_bill.pm,v 1.41.2.21 2003-06-30 18:56:02 ivan Exp $
 
 =head1 BUGS