From: Ivan Kohler
Date: Sun, 15 Oct 2017 00:04:23 +0000 (-0700)
Subject: Merge branch 'master' of git.freeside.biz:/home/git/freeside
X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=commitdiff_plain;h=5dabafc5e63ae7559ca6d2867e653660b981e639;hp=5ac72e74de9e105c8952eee7cf905ab9116926e1
Merge branch 'master' of git.freeside.biz:/home/git/freeside
---
diff --git a/FS/FS/ClientAPI/MyAccount.pm b/FS/FS/ClientAPI/MyAccount.pm
index a10a45285..ce887efcd 100644
--- a/FS/FS/ClientAPI/MyAccount.pm
+++ b/FS/FS/ClientAPI/MyAccount.pm
@@ -882,6 +882,7 @@ sub payment_info {
if ($cust_payby) {
$return{payname} = $cust_payby->payname
|| ( $cust_main->first. ' '. $cust_main->get('last') );
+ $return{custpaybynum} = $cust_payby->custpaybynum;
if ( $cust_payby->payby =~ /^(CARD|DCRD)$/ ) {
$return{card_type} = cardtype($cust_payby->payinfo);
@@ -1674,14 +1675,15 @@ sub insert_payby {
#XXX payinfo1 + payinfo2 for CHEK?
#or take the opportunity to use separate, more well- named fields?
- # my $payinfo;
- # $p->{'payinfo1'} =~ /^([\dx]+)$/
- # or return { 'error' => "illegal account number ". $p->{'payinfo1'} };
- # my $payinfo1 = $1;
- # $p->{'payinfo2'} =~ /^([\dx\.]+)$/ # . turned on by echeck-country CA ?
- # or return { 'error' => "illegal ABA/routing number ". $p->{'payinfo2'} };
- # my $payinfo2 = $1;
- # $payinfo = $payinfo1. '@'. $payinfo2;
+ if ($p->{'payby'} eq 'CHEK') {
+ $p->{'payinfo1'} =~ /^([\dx]+)$/
+ or return { 'error' => "illegal account number ". $p->{'payinfo1'} };
+ my $payinfo1 = $1;
+ $p->{'payinfo2'} =~ /^([\dx\.]+)$/ # . turned on by echeck-country CA ?
+ or return { 'error' => "illegal ABA/routing number ". $p->{'payinfo2'} };
+ my $payinfo2 = $1;
+ $p->{'payinfo'} = $payinfo1. '@'. $payinfo2;
+ }
my $cust_payby = new FS::cust_payby {
'custnum' => $custnum,
@@ -1705,6 +1707,16 @@ sub update_payby {
my($context, $session, $custnum) = _custoragent_session_custnum($p);
return { 'error' => $session } if $context eq 'error';
+ if ($p->{'payby'} eq 'CHEK') {
+ $p->{'payinfo1'} =~ /^([\dx]+)$/
+ or return { 'error' => "illegal account number ". $p->{'payinfo1'} };
+ my $payinfo1 = $1;
+ $p->{'payinfo2'} =~ /^([\dx\.]+)$/ # . turned on by echeck-country CA ?
+ or return { 'error' => "illegal ABA/routing number ". $p->{'payinfo2'} };
+ my $payinfo2 = $1;
+ $p->{'payinfo'} = $payinfo1. '@'. $payinfo2;
+ }
+
my $cust_payby = qsearchs('cust_payby', {
'custnum' => $custnum,
'custpaybynum' => $p->{'custpaybynum'},
diff --git a/FS/FS/cust_payby.pm b/FS/FS/cust_payby.pm
index fd90597bf..704741f3d 100644
--- a/FS/FS/cust_payby.pm
+++ b/FS/FS/cust_payby.pm
@@ -159,8 +159,9 @@ sub insert {
local $FS::UID::AutoCommit = 0;
my $dbh = dbh;
- my $error = $self->check_payinfo_cardtype
- || $self->SUPER::insert;
+ my $error = $self->check_payinfo_cardtype if $self->payby =~/^(CARD|DCRD)$/;
+ $self->SUPER::insert unless $error;
+
if ( $error ) {
$dbh->rollback if $oldAutoCommit;
return $error;
diff --git a/fs_selfservice/FS-SelfService/cgi/change_check_pay.html b/fs_selfservice/FS-SelfService/cgi/change_check_pay.html
new file mode 100644
index 000000000..7dd2583c4
--- /dev/null
+++ b/fs_selfservice/FS-SelfService/cgi/change_check_pay.html
@@ -0,0 +1,23 @@
+<%= include('header', 'Change ach payment information') %>
+
+<%= if ( $error ) {
+ $OUT .= qq!Error: $error
!;
+ } ''; %>
+
+
+
@@ -79,6 +75,11 @@ local $SIG{__DIE__}; #disable Mason error trap
my $DEBUG = 0;
+my $head = '
+
+
+';
+
my $census_year = $cgi->param('census_year');
my $pre = $cgi->param('pre');
my $zip_code = $cgi->param('zip_code');
|