X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2Fcust_pkg%2FImport.pm;h=6c8703c9db79691e6d507e5ed8a6de866ce15f1a;hb=8dd41f364aaba88969dfd0908feb22709025e7f6;hp=fe69f82fd1d7c325b20e661e89e92bb3cedcbdf8;hpb=b5c4237a34aef94976bc343c8d9e138664fc3984;p=freeside.git diff --git a/FS/FS/cust_pkg/Import.pm b/FS/FS/cust_pkg/Import.pm index fe69f82fd..6c8703c9d 100644 --- a/FS/FS/cust_pkg/Import.pm +++ b/FS/FS/cust_pkg/Import.pm @@ -2,9 +2,7 @@ package FS::cust_pkg::Import; use strict; use vars qw( $DEBUG ); #$conf ); -use Storable qw(thaw); use Data::Dumper; -use MIME::Base64; use FS::Misc::DateTime qw( parse_datetime ); use FS::Record qw( qsearchs ); use FS::cust_pkg; @@ -60,8 +58,7 @@ Load a batch import as a queued JSRPC job sub process_batch_import { my $job = shift; - - my $param = thaw(decode_base64(shift)); + my $param = shift; warn Dumper($param) if $DEBUG; my $files = $param->{'uploaded_files'} @@ -106,6 +103,7 @@ my %formatfields = ( 'svc_acct' => [qw( username _password domsvc )], 'svc_phone' => [qw( countrycode phonenum sip_password pin )], 'svc_external' => [qw( id title )], + 'location' => [qw( address1 address2 city state zip country )], ); sub _formatfields { @@ -115,11 +113,31 @@ sub _formatfields { my %import_options = ( 'table' => 'cust_pkg', + 'preinsert_callback' => sub { + my($record, $param) = @_; + my @location_params = grep /^location\./, keys %$param; + if (@location_params) { + my $cust_location = FS::cust_location->new({ + 'custnum' => $record->custnum, + }); + foreach my $p (@location_params) { + $p =~ /^location.(\w+)$/; + $cust_location->set($1, $param->{$p}); + } + +warn Dumper $cust_location; # XXX + my $error = $cust_location->find_or_insert; # this avoids duplicates + return "error creating location: $error" if $error; + $record->set('locationnum', $cust_location->locationnum); + } + ''; + }, + 'postinsert_callback' => sub { my( $record, $param ) = @_; my $formatfields = _formatfields; - foreach my $svc_x ( grep { $_ ne 'default' } keys %$formatfields ) { + foreach my $svc_x ( grep /^svc/, keys %$formatfields ) { my $ff = $formatfields->{$svc_x};