better fix for using new payment duplicate stuff with cc encryption :)
[freeside.git] / FS / FS / payinfo_Mixin.pm
index 15c4e39..f2edbd2 100644 (file)
@@ -216,7 +216,7 @@ sub payinfo_check {
   FS::payby->can_payby($self->table, $self->payby)
     or return "Illegal payby: ". $self->payby;
 
-  if ( $self->payby eq 'CARD' ) {
+  if ( $self->payby eq 'CARD' && ! $self->is_encrypted($self->payinfo) ) {
     my $payinfo = $self->payinfo;
     $payinfo =~ s/\D//g;
     $self->payinfo($payinfo);
@@ -227,11 +227,17 @@ sub payinfo_check {
       validate($self->payinfo) or return "Illegal credit card number";
       return "Unknown card type" if cardtype($self->payinfo) eq "Unknown";
     } else {
-      $self->payinfo('N/A');
+      $self->payinfo('N/A'); #???
     }
   } else {
-    my $error = $self->ut_textn('payinfo');
-    return $error if $error;
+    if ( $self->is_encrypted($self->payinfo) ) {
+      #something better?  all it would cause is a decryption error anyway?
+      my $error = $self->ut_anythingn('payinfo');
+      return $error if $error;
+    } else {
+      my $error = $self->ut_textn('payinfo');
+      return $error if $error;
+    }
   }
 }