&& $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';
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).
no strict 'refs';
${$_} = $cgi->param($_) foreach grep { /^snarf_/ } $cgi->param;
- if ( $error =~ /^_duplicate_(card|ach)$/ ) {
+ if ( $error =~ /^_duplicate_(card|ach)/ ) {
my $what = ($1 eq 'card') ? 'Credit card' : 'Electronic check';
$error = "Warning: $what already used to sign up recently";
$init_data->{'override_ban_warn'} = 1;