X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2Fcust_main.pm;h=7832ecaf981688daaa74751d556abec26f3d2862;hb=67779831c7ac1bb6d65073a0e523453dacf751c6;hp=a5ee2321e66556c4e006505aa49d1dff96988e9e;hpb=0e7c29b192fff137d3b9167b29633a94f94b995f;p=freeside.git diff --git a/FS/FS/cust_main.pm b/FS/FS/cust_main.pm index a5ee2321e..7832ecaf9 100644 --- a/FS/FS/cust_main.pm +++ b/FS/FS/cust_main.pm @@ -1473,6 +1473,11 @@ sub replace { && $self->payby =~ /^(CARD|DCRD)$/ && ( $old->payinfo eq $self->payinfo || $old->paymask eq $self->paymask ); + local($ignore_banned_card) = 1 + if ( $old->payby =~ /^(CARD|DCRD)$/ && $self->payby =~ /^(CARD|DCRD)$/ + || $old->payby =~ /^(CHEK|DCHK)$/ && $self->payby =~ /^(CHEK|DCHK)$/ ) + && ( $old->payinfo eq $self->payinfo || $old->paymask eq $self->paymask ); + local $SIG{HUP} = 'IGNORE'; local $SIG{INT} = 'IGNORE'; local $SIG{QUIT} = 'IGNORE'; @@ -1869,7 +1874,11 @@ sub check { if ( $ban ) { if ( $ban->bantype eq 'warn' ) { #or others depending on value of $ban->reason ? - return '_duplicate_card' unless $self->override_ban_warn; + return '_duplicate_card'. + ': disabled from'. time2str('%a %h %o at %r', $ban->_date). + ' until '. time2str('%a %h %o at %r', $ban->_end_date). + ' (ban# '. $ban->bannum. ')' + unless $self->override_ban_warn; } else { return 'Banned credit card: banned on '. time2str('%a %h %o at %r', $ban->_date). @@ -1924,8 +1933,10 @@ sub check { if ( $conf->exists('cust_main-require-bank-branch') ) { $payinfo =~ /^(\d+)\@(\d+)\.(\d+)$/ or return 'invalid echeck account@branch.bank'; $payinfo = "$1\@$2.$3"; - } - elsif ( $conf->exists('echeck-nonus') ) { + } elsif ( $conf->exists('echeck-no_routing') ) { + $payinfo =~ /^(\d+)\@(\d*)$/ or return 'invalid echeck account'; + $payinfo = "$1\@$2"; + } elsif ( $conf->exists('echeck-nonus') ) { $payinfo =~ /^(\d+)\@(\d+)$/ or return 'invalid echeck account@aba'; $payinfo = "$1\@$2"; } else {