[freeside-commits] branch FREESIDE_4_BRANCH updated. 4ea12e50d3057cf2e6c2145579ac71dfefa6aeb0
Ivan
ivan at 420.am
Tue Nov 3 08:57:35 PST 2015
The branch, FREESIDE_4_BRANCH has been updated
via 4ea12e50d3057cf2e6c2145579ac71dfefa6aeb0 (commit)
from 4ccd59593b88405762c05018565385bfc9bda6a3 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 4ea12e50d3057cf2e6c2145579ac71dfefa6aeb0
Author: Ivan Kohler <ivan at freeside.biz>
Date: Tue Nov 3 08:57:33 2015 -0800
fix self-service signup with payment information in 4.x, RT#388881
diff --git a/FS/FS/ClientAPI/Signup.pm b/FS/FS/ClientAPI/Signup.pm
index e166d40..5d719c4 100644
--- a/FS/FS/ClientAPI/Signup.pm
+++ b/FS/FS/ClientAPI/Signup.pm
@@ -26,6 +26,7 @@ use FS::reg_code;
use FS::payby;
use FS::banned_pay;
use FS::part_tag;
+use FS::cust_payby;
$DEBUG = 1;
$me = '[FS::ClientAPI::Signup]';
@@ -175,7 +176,7 @@ sub signup_info {
'nomadix' => $conf->exists('signup_server-nomadix'),
'payby' => [ $conf->config('signup_server-payby') ],
'card_types' => card_types(),
- 'paytypes' => [ @FS::cust_main::paytypes ],
+ 'paytypes' => [ FS::cust_payby->paytypes ],
'cvv_enabled' => 1,
'require_cvv' => $conf->exists('signup-require_cvv'),
'stateid_enabled' => $conf->exists('show_stateid'),
@@ -533,20 +534,27 @@ sub new_customer {
( map { $_ => $packet->{$_} } qw(
salesnum
ss stateid stateid_state
-
- payby
- payinfo paycvv paydate payname paystate paytype
- paystart_month paystart_year payissue
- payip
-
locale
-
referral_custnum comments
)
),
);
+ my %insert_options = ();
+ if ( $packet->{payby} =~ /^(CARD|DCRD|CHEK|DCHK)$/ ) {
+ $insert_options{cust_payby} = [
+ new FS::cust_payby {
+ map { $_ => $packet->{$_} } qw(
+ payby
+ payinfo paycvv paydate payname paystate paytype
+ paystart_month paystart_year payissue
+ payip
+ ),
+ }
+ ];
+ }
+
my $template_custnum = $conf->config('signup_server-prepaid-template-custnum');
my $cust_main;
if ( $template_custnum && $packet->{prepaid_shortform} ) {
@@ -644,8 +652,6 @@ sub new_customer {
? split( /\s*\,\s*/, $packet->{'invoicing_list'} )
: ();
- my %insert_options = ();
-
my @exempt_groups = grep /\S/, $conf->config('tax-cust_exempt-groups');
my @tax_exempt = grep { $packet->{"tax_$_"} eq 'Y' } @exempt_groups;
$insert_options{'tax_exemption'} = {
@@ -948,16 +954,25 @@ sub new_customer_minimal {
last first company daytime night fax mobile
ss stateid stateid_state
- payby
- payinfo paycvv paydate payname paystate paytype
- paystart_month paystart_year payissue
- payip
-
locale
),
} );
+ my %opt = ();
+ if ( $packet->{payby} =~ /^(CARD|DCRD|CHEK|DCHK)$/ ) {
+ $opt{cust_payby} = [
+ new FS::cust_payby {
+ map { $_ => $packet->{$_} } qw(
+ payby
+ payinfo paycvv paydate payname paystate paytype
+ paystart_month paystart_year payissue
+ payip
+ ),
+ }
+ ];
+ }
+
if ( grep length($packet->{$_}), FS::cust_main->location_fields ) {
my $bill_hash;
foreach my $f (FS::cust_main->location_fields) {
@@ -1041,7 +1056,6 @@ sub new_customer_minimal {
}
- my %opt = ();
if ( $invoicing_list[0] && $packet->{'_password'} ) {
$opt{'contact'} = [
new FS::contact { 'first' => $cust_main->first,
diff --git a/FS/FS/cust_main.pm b/FS/FS/cust_main.pm
index 2d6d459..1f64b9e 100644
--- a/FS/FS/cust_main.pm
+++ b/FS/FS/cust_main.pm
@@ -599,7 +599,18 @@ sub insert {
warn " setting cust_payby\n"
if $DEBUG > 1;
- if ( my $cust_payby_params = delete $options{'cust_payby_params'} ) {
+ if ( $options{cust_payby} ) {
+
+ foreach my $cust_payby ( @{ $options{cust_payby} } ) {
+ $cust_payby->custnum($self->custnum);
+ my $error = $cust_payby->insert;
+ if ( $error ) {
+ $dbh->rollback if $oldAutoCommit;
+ return $error;
+ }
+ }
+
+ } elsif ( my $cust_payby_params = delete $options{'cust_payby_params'} ) {
my $error = $self->process_o2m(
'table' => 'cust_payby',
-----------------------------------------------------------------------
Summary of changes:
FS/FS/ClientAPI/Signup.pm | 46 +++++++++++++++++++++++++++++----------------
FS/FS/cust_main.pm | 13 ++++++++++++-
2 files changed, 42 insertions(+), 17 deletions(-)
More information about the freeside-commits
mailing list