$conf = new FS::Conf;
};
+my %is_location = map { $_ => 1 } FS::cust_main::Location->location_fields;
+
=head1 NAME
FS::cust_main::Import - Batch customer importing
cust_pkg.pkgpart cust_pkg.bill
svc_acct.username svc_acct._password
);
- push @fields, map "svc_phone.$_", qw(countrycode phonenum sip_password pin);
- push @fields, map "svc_hardware.$_", qw(typenum ip_addr hw_addr serial);
+ 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
+ daytime night
+ ship_last ship_first ship_company ship_address1 ship_address2
+ ship_city ship_state ship_zip ship_country
+ national_id
+ payinfo paycvv paydate
+ invoicing_list
+ cust_pkg.pkgpart cust_pkg.bill
+ svc_acct.username svc_acct._password svc_acct.slipip
+ );
+ push @fields, map "svc_phone.$_", qw(countrycode phonenum sip_password pin);
$payby = 'BILL';
} else {
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)$/ ) {
$cust_pkg{$1} = parse_datetime( shift @columns );
}
- } elsif ( $field =~ /^svc_acct\.(username|_password)$/ ) {
+ } elsif ( $field =~ /^svc_acct\.(username|_password|slipip)$/ ) {
$svc_x{$1} = shift @columns;
$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
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'} ) {
}
$cust_main{$_} = parse_datetime($cust_main{$_})
- foreach grep $cust_main{$_}, qw( birthdate spouse_birthdate );
+ foreach grep $cust_main{$_},
+ qw( birthdate spouse_birthdate anniversary_date );
my $invoicing_list = $cust_main{'invoicing_list'}
? [ delete $cust_main{'invoicing_list'} ]