summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIvan Kohler <ivan@freeside.biz>2017-08-25 10:05:37 -0700
committerIvan Kohler <ivan@freeside.biz>2017-08-25 10:05:37 -0700
commitac8d0caed938fb4dda9340e83397cb8daed43a8a (patch)
tree34fda1f9759a37d6974e8c914230bcc2d20fbe78
parentf9ecf57e5bba89dbbc6f39b9b336a8a5549e1352 (diff)
fix 4.x cust_payby vs legacy customer import, RT#77221
-rw-r--r--FS/FS/cust_main/Import.pm24
1 files changed, 14 insertions, 10 deletions
diff --git a/FS/FS/cust_main/Import.pm b/FS/FS/cust_main/Import.pm
index 646476162..f9b167c82 100644
--- a/FS/FS/cust_main/Import.pm
+++ b/FS/FS/cust_main/Import.pm
@@ -325,6 +325,7 @@ sub batch_import {
my %svc_x = ();
my %bill_location = ();
my %ship_location = ();
+ my $cust_payby = '';
foreach my $field ( @fields ) {
if ( $field =~ /^cust_pkg\.(pkgpart|setup|bill|susp|adjourn|expire|cancel)$/ ) {
@@ -409,17 +410,17 @@ sub batch_import {
if ( $cust_main{'payinfo'} =~ /^\s*(\d+\@[\d\.]+)\s*$/ ) {
- $cust_main{'payby'} = 'CHEK';
- $cust_main{'payinfo'} = $1;
+ $cust_payby = new FS::cust_payby {
+ 'payby' => 'CHEK',
+ 'payinfo' => $1,
+ };
- } else {
-
- $cust_main{'payby'} = 'CARD';
+ } elsif ($cust_main{'payinfo'} =~ /^\s*([AD]?)(.*)\s*$/) {
- if ($cust_main{'payinfo'} =~ /^\s*([AD]?)(.*)\s*$/) {
- $cust_main{'payby'} = 'DCRD' if $1 eq 'D';
- $cust_main{'payinfo'} = $2;
- }
+ $cust_payby = new FS::cust_payby {
+ 'payby' => ($1 eq 'D') ? 'DCRD' : 'CARD',
+ 'payinfo' => $2,
+ };
}
@@ -502,7 +503,10 @@ sub batch_import {
$hash{$cust_pkg} = \@svc_x;
}
- my $error = $cust_main->insert( \%hash, $invoicing_list );
+ my %options = ('invoicing_list' => $invoicing_list);
+ $options{'cust_payby'} = $cust_payby if $cust_payby;
+
+ my $error = $cust_main->insert( \%hash, %options );
if ( $error ) {
$dbh->rollback if $oldAutoCommit;