From dc8839e9577e51f29ff963183f324dd060cf6276 Mon Sep 17 00:00:00 2001 From: ivan Date: Wed, 20 Jul 2011 21:16:23 +0000 Subject: [PATCH] better error message for signup duplicate cards, allow editing of those customer records, RT#13744 --- FS/FS/cust_main.pm | 11 ++++++++++- fs_selfservice/FS-SelfService/cgi/signup.cgi | 2 +- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/FS/FS/cust_main.pm b/FS/FS/cust_main.pm index d0a071cc3..5fce743fc 100644 --- a/FS/FS/cust_main.pm +++ b/FS/FS/cust_main.pm @@ -1440,6 +1440,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'; @@ -1835,7 +1840,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). diff --git a/fs_selfservice/FS-SelfService/cgi/signup.cgi b/fs_selfservice/FS-SelfService/cgi/signup.cgi index 5c9d11c01..17255613b 100755 --- a/fs_selfservice/FS-SelfService/cgi/signup.cgi +++ b/fs_selfservice/FS-SelfService/cgi/signup.cgi @@ -255,7 +255,7 @@ if ( $magic eq 'process' || $action eq 'process_signup' ) { 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; -- 2.11.0