From 3d62ec9362d0b22c17a17da6197f8b2fc219a54e Mon Sep 17 00:00:00 2001 From: ivan Date: Sat, 6 Aug 2011 00:50:59 +0000 Subject: echeck options to hide routing number and add account owner name, RT#13885 --- FS/FS/Conf.pm | 7 +++++++ FS/FS/cust_main.pm | 6 ++++-- FS/FS/payinfo_Mixin.pm | 3 ++- 3 files changed, 13 insertions(+), 3 deletions(-) (limited to 'FS') diff --git a/FS/FS/Conf.pm b/FS/FS/Conf.pm index 633d5c5ee..b3fdfdcf4 100644 --- a/FS/FS/Conf.pm +++ b/FS/FS/Conf.pm @@ -2958,6 +2958,13 @@ and customer address. Include units.', 'type' => 'checkbox', }, + { + 'key' => 'echeck-no_routing', + 'section' => 'billing', + 'description' => 'Disable the routing number entirely for Electronic Check payment info.', + 'type' => 'checkbox', + }, + { 'key' => 'voip-cust_accountcode_cdr', 'section' => 'telephony', diff --git a/FS/FS/cust_main.pm b/FS/FS/cust_main.pm index 97b117285..7832ecaf9 100644 --- a/FS/FS/cust_main.pm +++ b/FS/FS/cust_main.pm @@ -1933,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 { diff --git a/FS/FS/payinfo_Mixin.pm b/FS/FS/payinfo_Mixin.pm index 84264c966..d03391f68 100644 --- a/FS/FS/payinfo_Mixin.pm +++ b/FS/FS/payinfo_Mixin.pm @@ -165,7 +165,8 @@ sub mask_payinfo { # Checks (Show last 2 @ bank) my( $account, $aba ) = split('@', $payinfo ); return 'x'x(length($account)-2). - substr($account,(length($account)-2))."@".$aba; + substr($account,(length($account)-2)). + ( length($aba) ? "@".$aba : ''); } else { # Tie up loose ends return $payinfo; -- cgit v1.2.1