fix upgrades, fix bogus "Tokenized" paycardtype, RT#71513
[freeside.git] / FS / FS / cust_payby.pm
index 626fc9f..36f90df 100644 (file)
@@ -276,7 +276,7 @@ sub replace {
 
   if ( $self->payby =~ /^(CARD|CHEK)$/
        && ( ( $self->get('payinfo') ne $old->get('payinfo')
-              && $self->get('payinfo') !~ /^99\d{14}$/ 
+              && !$self->tokenized 
             )
             || grep { $self->get($_) ne $old->get($_) } qw(paydate payname)
           )
@@ -356,8 +356,7 @@ sub check {
     validate($payinfo)
       or return gettext('invalid_card'); # . ": ". $self->payinfo;
 
-    my $cardtype = cardtype($payinfo);
-    $cardtype = 'Tokenized' if $self->payinfo =~ /^99\d{14}$/; #token
+    my $cardtype = $self->paycardtype || cardtype($payinfo);
     
     return gettext('unknown_card_type') if $cardtype eq "Unknown";
     
@@ -546,8 +545,7 @@ sub check_payinfo_cardtype {
   my $payinfo = $self->payinfo;
   $payinfo =~ s/\D//g;
 
-  if ( $payinfo =~ /^99\d{14}$/ ) {
-    $self->set('paycardtype', 'Tokenized');
+  if ( $self->tokenized($payinfo) ) {
     return '';
   }