X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2Fcust_main%2FImport.pm;h=f9b167c829c9f9805b7375d14f82312fc98457dc;hb=ac8d0caed938fb4dda9340e83397cb8daed43a8a;hp=b5fb2746c80c7f5360df3b07ebea80cba0952be9;hpb=2c94fadec581ea4decc7eb425ce78f6013703860;p=freeside.git diff --git a/FS/FS/cust_main/Import.pm b/FS/FS/cust_main/Import.pm index b5fb2746c..f9b167c82 100644 --- a/FS/FS/cust_main/Import.pm +++ b/FS/FS/cust_main/Import.pm @@ -9,6 +9,7 @@ use FS::UID qw( dbh ); use FS::Record qw( qsearchs ); use FS::cust_main; use FS::svc_acct; +use FS::svc_broadband; use FS::svc_external; use FS::svc_phone; use FS::svc_hardware; @@ -128,11 +129,9 @@ sub batch_import { my $format = $param->{'format'}; my @fields; - my $payby; if ( $format eq 'simple' ) { @fields = qw( cust_pkg.setup dayphone first last address1 address2 city state zip comments ); - $payby = 'BILL'; } elsif ( $format eq 'extended' ) { @fields = qw( agent_custid refnum last first address1 address2 city state zip country @@ -144,7 +143,6 @@ sub batch_import { cust_pkg.pkgpart svc_acct.username svc_acct._password ); - $payby = 'BILL'; } elsif ( $format eq 'extended-plus_options' ) { @fields = qw( agent_custid refnum last first address1 address2 city state zip country @@ -157,7 +155,6 @@ sub batch_import { svc_acct.username svc_acct._password customer_options ); - $payby = 'BILL'; } elsif ( $format eq 'extended-plus_company' ) { @fields = qw( agent_custid refnum last first company address1 address2 city state zip country @@ -169,7 +166,6 @@ sub batch_import { cust_pkg.pkgpart svc_acct.username svc_acct._password ); - $payby = 'BILL'; } elsif ( $format eq 'extended-plus_company_and_options' ) { @fields = qw( agent_custid refnum last first company address1 address2 city state zip country @@ -182,7 +178,17 @@ sub batch_import { svc_acct.username svc_acct._password customer_options ); - $payby = 'BILL'; + } elsif ( $format =~ /^svc_broadband/ ) { + @fields = qw( agent_custid refnum + last first company address1 address2 city state zip country + daytime night + ship_last ship_first ship_company ship_address1 ship_address2 + ship_city ship_state ship_zip ship_country + payinfo paycvv paydate + invoicing_list + cust_pkg.pkgpart cust_pkg.bill + ); + push @fields, map "svc_broadband.$_", qw( ip_addr mac_addr sectornum ); } elsif ( $format =~ /^svc_external/ ) { @fields = qw( agent_custid refnum last first company address1 address2 city state zip country @@ -196,7 +202,6 @@ sub batch_import { ); push @fields, map "svc_phone.$_", qw( countrycode phonenum sip_password pin) if $format eq 'svc_external_svc_phone'; - $payby = 'BILL'; } elsif ( $format eq 'birthdates-acct_phone_hardware') { @fields = qw( agent_custid refnum last first company address1 address2 city state zip country @@ -212,7 +217,6 @@ sub batch_import { push @fields, map "svc_phone.$_", qw(countrycode phonenum sip_password pin); push @fields, map "svc_hardware.$_", qw(typenum ip_addr hw_addr serial); - $payby = 'BILL'; } elsif ( $format eq 'national_id-acct_phone') { @fields = qw( agent_custid refnum last first company address1 address2 city state zip country @@ -227,7 +231,6 @@ sub batch_import { ); push @fields, map "svc_phone.$_", qw(countrycode phonenum sip_password pin); - $payby = 'BILL'; } else { die "unknown format $format"; } @@ -315,7 +318,6 @@ sub batch_import { custbatch => $custbatch, agentnum => $agentnum, refnum => $refnum, - payby => $payby, #default paydate => '12/2037', #default ); my $billtime = time; @@ -323,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)$/ ) { @@ -340,6 +343,10 @@ sub batch_import { $svc_x{$1} = shift @columns; + } elsif ( $field =~ /^svc_broadband\.(ip_addr|mac_addr|sectornum)$/ ) { + + $svc_x{$1} = shift @columns; + } elsif ( $field =~ /^svc_external\.(id|title)$/ ) { $svc_x{$1} = shift @columns; @@ -403,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, + }; } @@ -451,6 +458,8 @@ sub batch_import { $svcdb = 'svc_acct'; } elsif ( $svc_x{'id'} || $svc_x{'title'} ) { $svcdb = 'svc_external'; + } elsif ( $svc_x{ip_addr} || $svc_x{mac_addr} ) { + $svcdb = 'svc_broadband'; } my $svc_phone = ''; @@ -494,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;