summaryrefslogtreecommitdiff
path: root/FS/FS/cust_main
diff options
context:
space:
mode:
authorIvan Kohler <ivan@freeside.biz>2017-08-25 10:05:30 -0700
committerIvan Kohler <ivan@freeside.biz>2017-08-25 10:05:30 -0700
commita32d53ec735523beff800af4ff617f85d5808bd7 (patch)
tree71e1cd6b5cf2e57f724cc3ebc363a096c8097a74 /FS/FS/cust_main
parent3510dde42ea17b789758981118e50dd0fb8b37ce (diff)
fix 4.x cust_payby vs legacy customer import, RT#77221
Diffstat (limited to 'FS/FS/cust_main')
-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 6464761..f9b167c 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;