so Search.tsf and Search.rdf work
[freeside.git] / FS / FS / cust_pay.pm
index 1ceb599..201ada9 100644 (file)
@@ -167,7 +167,7 @@ sub insert {
 
   #my $cust_main = $self->cust_main;
   if ( $conf->exists('payment_receipt_email')
-       && grep { $_ ne 'POST' } $cust_main->invoicing_list
+       && grep { $_ !~ /^(POST|FAX)$/ } $cust_main->invoicing_list
   ) {
 
     my $receipt_template = new Text::Template (
@@ -178,12 +178,13 @@ sub insert {
       return '';
     };
 
-    my @invoicing_list = grep { $_ ne 'POST' } $cust_main->invoicing_list;
+    my @invoicing_list = grep { $_ !~ /^(POST|FAX)$/ } $cust_main->invoicing_list;
 
     my $payby = $self->payby;
     my $payinfo = $self->payinfo;
     $payby =~ s/^BILL$/Check/ if $payinfo;
-    $payinfo = $self->payinfo_masked if $payby eq 'CARD';
+    $payinfo = $self->payinfo_masked if $payby eq 'CARD' || $payby eq 'CHEK';
+    $payby =~ s/^CHEK$/Electronic check/;
 
     my $error = send_email(
       'from'    => $conf->config('invoice_from'), #??? well as good as any
@@ -357,7 +358,7 @@ sub check {
 
   $self->_date(time) unless $self->_date;
 
-  $self->payby =~ /^(CARD|CHEK|LECB|BILL|COMP)$/ or return "Illegal payby";
+  $self->payby =~ /^(CARD|CHEK|LECB|BILL|COMP|PREP)$/ or return "Illegal payby";
   $self->payby($1);
 
   #false laziness with cust_refund::check
@@ -464,8 +465,16 @@ by 'x'es.  Useful for displaying credit cards.
 
 sub payinfo_masked {
   my $self = shift;
-  my $payinfo = $self->payinfo;
-  'x'x(length($payinfo)-4). substr($payinfo,(length($payinfo)-4));
+  #some false laziness w/cust_main::paymask
+  if ( $self->payby eq 'CARD' ) {
+    my $payinfo = $self->payinfo;
+    'x'x(length($payinfo)-4). substr($payinfo,(length($payinfo)-4));
+  } elsif ( $self->payby eq 'CHEK' ) {
+    my( $account, $aba ) = split('@', $self->payinfo );
+    'x'x(length($account)-2). substr($account,(length($account)-2)). "@". $aba;
+  } else {
+    $self->payinfo;
+  }
 }
 
 =back