ignore card type for upgrades, RT#32043
[freeside.git] / FS / FS / cust_payby.pm
index 79a1468..030aed6 100644 (file)
@@ -19,6 +19,7 @@ sub nohistory_fields { ('payinfo', 'paycvv'); }
 our $ignore_expired_card = 0;
 our $ignore_banned_card = 0;
 our $ignore_invalid_card = 0;
+our $ignore_cardtype = 0;
 
 our $conf;
 install_callback FS::UID sub { 
@@ -496,6 +497,10 @@ sub check {
 sub check_payinfo_cardtype {
   my $self = shift;
 
+  return '' if $ignore_cardtype;
+
+  return '' unless $self->payby =~ /^(CARD|CHEK)$/;
+
   my $payinfo = $self->payinfo;
   $payinfo =~ s/\D//g;
 
@@ -558,6 +563,39 @@ sub paydate_mon_year {
 
 }
 
+=item label
+
+Returns a one line text label for this payment type.
+
+=cut
+
+my %weight = (
+  1 => 'Primary',
+  2 => 'Secondary',
+  3 => 'Tertiary',
+  4 => 'Fourth',
+  5 => 'Fifth',
+  6 => 'Sixth',
+  7 => 'Seventh',
+);
+
+sub label {
+  my $self = shift;
+
+  my $name = $self->payby =~ /^(CARD|DCRD)$/
+              && cardtype($self->paymask) || FS::payby->shortname($self->payby);
+
+  ( $self->payby =~ /^(CARD|CHEK)$/  ? $weight{$self->weight}. ' automatic '
+                                     : 'Manual '
+  ).
+  "$name: ". $self->paymask.
+  ( $self->payby =~ /^(CARD|DCRD)$/
+      ? ' Exp '. join('/', $self->paydate_mon_year)
+      : ''
+  );
+
+}
+
 =item realtime_bop
 
 =cut