never blank an existing paycardtype inadvertantly
authorIvan Kohler <ivan@freeside.biz>
Wed, 1 Feb 2017 22:49:03 +0000 (14:49 -0800)
committerIvan Kohler <ivan@freeside.biz>
Wed, 1 Feb 2017 22:49:03 +0000 (14:49 -0800)
FS/FS/cust_payby.pm
FS/FS/payinfo_Mixin.pm

index e25d73e..136acf1 100644 (file)
@@ -357,14 +357,14 @@ sub check {
       or return gettext('invalid_card'); # . ": ". $self->payinfo;
 
     # see parallel checks in check_payinfo_cardtype & payinfo_Mixin::payinfo_check
-    my $cardtype = '';
+    my $cardtype = $self->paycardtype;
     if ( $self->tokenized ) {
       if ( $self->paymask =~ /^\d+x/ ) {
         $cardtype = cardtype($self->paymask);
       } else {
-        $cardtype = '';
         #return "paycardtype required ".
-        #       "(can't derive from a token and no paymask w/prefix provided)";
+        #       "(can't derive from a token and no paymask w/prefix provided)"
+        #  unless $cardtype;
       }
     } else {
       $cardtype = cardtype($self->payinfo);
index cb9b723..84759cc 100644 (file)
@@ -202,7 +202,7 @@ sub payinfo_check {
       if ( $self->paymask =~ /^\d+x/ ) {
         $self->set('paycardtype', cardtype($self->paymask));
       } else {
-        $self->set('paycardtype', '');
+        $self->set('paycardtype', '') unless $self->paycardtype;
         #return "paycardtype required ".
         #       "(can't derive from a token and no paymask w/prefix provided)";
       }
@@ -233,7 +233,7 @@ sub payinfo_check {
       # if we can't decrypt the card, at least detect the cardtype
       $self->set('paycardtype', cardtype($self->paymask));
     } else {
-      $self->set('paycardtype', '');
+      $self->set('paycardtype', '') unless $self->paycardtype;
       # return "paycardtype required ".
       #        "(can't derive from a token and no paymask w/prefix provided)";
     }