[freeside-commits] branch master updated. f35dc3162276739ca95bc380490e83ede5b73393

Mark Wells mark at 420.am
Wed Dec 19 12:07:17 PST 2012


The branch, master has been updated
       via  f35dc3162276739ca95bc380490e83ede5b73393 (commit)
      from  2cec1a0e7dfdb00a866a3c9a2947f61c1e9fbffd (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 f35dc3162276739ca95bc380490e83ede5b73393
Author: Mark Wells <mark at freeside.biz>
Date:   Wed Dec 19 12:06:59 2012 -0800

    fix customer import, #20695

diff --git a/FS/FS/cust_main/Import.pm b/FS/FS/cust_main/Import.pm
index eadcc1a..e5a4485 100644
--- a/FS/FS/cust_main/Import.pm
+++ b/FS/FS/cust_main/Import.pm
@@ -22,6 +22,8 @@ install_callback FS::UID sub {
   $conf = new FS::Conf;
 };
 
+my %is_location = map { $_ => 1 } FS::cust_main::Location->location_fields;
+
 =head1 NAME
 
 FS::cust_main::Import - Batch customer importing
@@ -316,13 +318,14 @@ sub batch_import {
       custbatch => $custbatch,
       agentnum  => $agentnum,
       refnum    => $refnum,
-      country   => $conf->config('countrydefault') || 'US',
       payby     => $payby, #default
       paydate   => '12/2037', #default
     );
     my $billtime = time;
     my %cust_pkg = ( pkgpart => $pkgpart );
     my %svc_x = ();
+    my %bill_location = ();
+    my %ship_location = ();
     foreach my $field ( @fields ) {
 
       if ( $field =~ /^cust_pkg\.(pkgpart|setup|bill|susp|adjourn|expire|cancel)$/ ) {
@@ -351,6 +354,14 @@ sub batch_import {
 
         $svc_x{$1} = shift @columns;
 
+      } elsif ( $is_location{$field} ) {
+
+        $bill_location{$field} = shift @columns;
+
+      } elsif ( $field =~ /^ship_(.*)$/ and $is_location{$1} ) {
+
+        $ship_location{$1} = shift @columns;
+      
       } else {
 
         #refnum interception
@@ -379,6 +390,16 @@ sub batch_import {
         my $value = shift @columns;
         $cust_main{$field} = $value if length($value);
       }
+    } # foreach my $field
+    # finished importing columns
+
+    $bill_location{'country'} ||= $conf->config('countrydefault') || 'US';
+    $cust_main{'bill_location'} = FS::cust_location->new(\%bill_location);
+    if ( grep $_, values(%ship_location) ) {
+      $ship_location{'country'} ||= $conf->config('countrydefault') || 'US';
+      $cust_main{'ship_location'} = FS::cust_location->new(\%ship_location);
+    } else {
+      $cust_main{'ship_location'} = $cust_main{'bill_location'};
     }
 
     if ( defined $cust_main{'payinfo'} && length $cust_main{'payinfo'} ) {

-----------------------------------------------------------------------

Summary of changes:
 FS/FS/cust_main/Import.pm |   23 ++++++++++++++++++++++-
 1 files changed, 22 insertions(+), 1 deletions(-)




More information about the freeside-commits mailing list