summaryrefslogtreecommitdiff
path: root/FS/FS/cust_payby.pm
diff options
context:
space:
mode:
authorMark Wells <mark@freeside.biz>2013-10-03 17:29:21 -0700
committerMark Wells <mark@freeside.biz>2013-10-03 17:29:21 -0700
commit5d1f486c543c2e61cea6c050bed86c0c9815085e (patch)
treefaf4aed245c16249ced8f80d3a8587f17c25d16b /FS/FS/cust_payby.pm
parent83a88f9294aa7db638e316df1ed0964901cdb370 (diff)
clean up some cust_payby upgrade issues, #23741
Diffstat (limited to 'FS/FS/cust_payby.pm')
-rw-r--r--FS/FS/cust_payby.pm10
1 files changed, 8 insertions, 2 deletions
diff --git a/FS/FS/cust_payby.pm b/FS/FS/cust_payby.pm
index 5914ab5..d78c574 100644
--- a/FS/FS/cust_payby.pm
+++ b/FS/FS/cust_payby.pm
@@ -7,9 +7,11 @@ use FS::Record qw( qsearchs ); #qsearch;
use FS::payby;
use FS::cust_main;
use Business::CreditCard qw( validate cardtype );
+use FS::Msgcat qw( gettext );
use vars qw( $conf @encrypted_fields
$ignore_expired_card $ignore_banned_card
+ $ignore_invalid_card
);
@encrypted_fields = ('payinfo', 'paycvv');
@@ -17,10 +19,12 @@ sub nohistory_fields { ('payinfo', 'paycvv'); }
$ignore_expired_card = 0;
$ignore_banned_card = 0;
+$ignore_invalid_card = 0;
install_callback FS::UID sub {
$conf = new FS::Conf;
#yes, need it for stuff below (prolly should be cached)
+ $ignore_invalid_card = $conf->exists('allow_invalid_cards');
};
=head1 NAME
@@ -197,7 +201,8 @@ sub check {
# Need some kind of global flag to accept invalid cards, for testing
# on scrubbed data.
#XXX if ( !$import && $check_payinfo && $self->payby =~ /^(CARD|DCRD)$/ ) {
- if ( $check_payinfo && $self->payby =~ /^(CARD|DCRD)$/ ) {
+ if ( !$ignore_invalid_card &&
+ $check_payinfo && $self->payby =~ /^(CARD|DCRD)$/ ) {
my $payinfo = $self->payinfo;
$payinfo =~ s/\D//g;
@@ -269,7 +274,8 @@ sub check {
$self->payissue('');
}
- } elsif ( $check_payinfo && $self->payby =~ /^(CHEK|DCHK)$/ ) {
+ } elsif ( !$ignore_invalid_card &&
+ $check_payinfo && $self->payby =~ /^(CHEK|DCHK)$/ ) {
my $payinfo = $self->payinfo;
$payinfo =~ s/[^\d\@\.]//g;