[freeside-commits] branch FREESIDE_4_BRANCH updated. 46907b7fcf2c3b51d9080d806a0e54e0cf2c8a63
Christopher Burger
burgerc at freeside.biz
Tue Jun 12 12:44:38 PDT 2018
The branch, FREESIDE_4_BRANCH has been updated
via 46907b7fcf2c3b51d9080d806a0e54e0cf2c8a63 (commit)
from a21c042fccdbd38eaa73e4374d2fdf9c91789fb7 (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 46907b7fcf2c3b51d9080d806a0e54e0cf2c8a63
Author: Christopher Burger <burgerc at freeside.biz>
Date: Mon Sep 18 09:35:02 2017 -0400
RT# 77498 - Customer Import now uses contact/Import.pm rather than contact_import.pm
diff --git a/FS/FS.pm b/FS/FS.pm
index 2d297f9e3..88563887c 100644
--- a/FS/FS.pm
+++ b/FS/FS.pm
@@ -67,6 +67,8 @@ L<FS::cust_main::Search> - Customer searching
L<FS::cust_main::Import> - Batch customer importing
+L<FS::contact::Import> - Batch contact importing
+
=head2 Database record classes
L<FS::Record> - Database record base class
diff --git a/FS/FS/contact.pm b/FS/FS/contact.pm
index a429c2d80..02c6d0659 100644
--- a/FS/FS/contact.pm
+++ b/FS/FS/contact.pm
@@ -10,6 +10,7 @@ use FS::Record qw( qsearch qsearchs dbh );
use FS::Cursor;
use FS::contact_phone;
use FS::contact_email;
+use FS::contact::Import;
use FS::queue;
use FS::phone_type; #for cgi_contact_fields
use FS::cust_contact;
diff --git a/FS/FS/contact_import.pm b/FS/FS/contact_import.pm
deleted file mode 100644
index d6cd690bf..000000000
--- a/FS/FS/contact_import.pm
+++ /dev/null
@@ -1,161 +0,0 @@
-package FS::contact_import;
-
-use strict;
-use vars qw( $DEBUG ); #$conf );
-use Data::Dumper;
-use FS::Misc::DateTime qw( parse_datetime );
-use FS::Record qw( qsearchs );
-use FS::contact;
-use FS::cust_main;
-
-$DEBUG = 0;
-
-=head1 NAME
-
-FS::contact_import - Batch contact importing
-
-=head1 SYNOPSIS
-
- use FS::contact_import;
-
- #import
- FS::contact_import::batch_import( {
- file => $file, #filename
- type => $type, #csv or xls
- format => $format, #default
- agentnum => $agentnum,
- job => $job, #optional job queue job, for progressbar updates
- pkgbatch => $pkgbatch, #optional batch unique identifier
- } );
- die $error if $error;
-
- #ajax helper
- use FS::UI::Web::JSRPC;
- my $server =
- new FS::UI::Web::JSRPC 'FS::contact_import::process_batch_import', $cgi;
- print $server->process;
-
-=head1 DESCRIPTION
-
-Batch contact importing.
-
-=head1 SUBROUTINES
-
-=item process_batch_import
-
-Load a batch import as a queued JSRPC job
-
-=cut
-
-sub process_batch_import {
- my $job = shift;
- my $param = shift;
- warn Dumper($param) if $DEBUG;
-
- my $files = $param->{'uploaded_files'}
- or die "No files provided.\n";
-
- my (%files) = map { /^(\w+):([\.\w]+)$/ ? ($1,$2):() } split /,/, $files;
-
- my $dir = '%%%FREESIDE_CACHE%%%/cache.'. $FS::UID::datasrc. '/';
-
- my $file = $dir. $files{'file'};
-
- my $type;
- if ( $file =~ /\.(\w+)$/i ) {
- $type = lc($1);
- } else {
- #or error out???
- warn "can't parse file type from filename $file; defaulting to CSV";
- $type = 'csv';
- }
-
- my $error =
- FS::contact_import::batch_import( {
- job => $job,
- file => $file,
- type => $type,
- agentnum => $param->{'agentnum'},
- 'format' => $param->{'format'},
- } );
-
- unlink $file;
-
- die "$error\n" if $error;
-
-}
-
-=item batch_import
-
-=cut
-
-my %formatfields = (
- 'default' => [ qw( custnum last first title comment selfservice_access emailaddress phonetypenum1 phonetypenum3 phonetypenum2 ) ],
-);
-
-sub _formatfields {
- \%formatfields;
-}
-
-## not tested but maybe allow 2nd format to attach location in the future
-my %import_options = (
- 'table' => 'contact',
-
- '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});
- }
-
- my $error = $cust_location->find_or_insert; # this avoids duplicates
- return "error creating location: $error" if $error;
- $record->set('locationnum', $cust_location->locationnum);
- }
- '';
- },
-
-);
-
-sub _import_options {
- \%import_options;
-}
-
-sub batch_import {
- my $opt = shift;
-
- my $iopt = _import_options;
- $opt->{$_} = $iopt->{$_} foreach keys %$iopt;
-
- my $format = delete $opt->{'format'};
-
- my $formatfields = _formatfields();
- die "unknown format $format" unless $formatfields->{$format};
-
- my @fields;
- foreach my $field ( @{ $formatfields->{$format} } ) {
- push @fields, $field;
- }
-
- $opt->{'fields'} = \@fields;
-
- FS::Record::batch_import( $opt );
-
-}
-
-=head1 BUGS
-
-Not enough documentation.
-
-=head1 SEE ALSO
-
-L<FS::contact>
-
-=cut
-
-1;
\ No newline at end of file
diff --git a/FS/MANIFEST b/FS/MANIFEST
index e86f273fa..4ccb7d3c2 100644
--- a/FS/MANIFEST
+++ b/FS/MANIFEST
@@ -510,6 +510,7 @@ t/class_Common.t
FS/category_Common.pm
t/category_Common.t
FS/contact.pm
+FS/contact/Import.pm
t/contact.t
FS/contact_phone.pm
t/contact_phone.t
diff --git a/Makefile b/Makefile
index bf3945b58..216cea0f0 100644
--- a/Makefile
+++ b/Makefile
@@ -235,7 +235,7 @@ perl-modules:
" blib/lib/FS/part_export/*.pm;\
perl -p -i -e "\
s|%%%FREESIDE_CACHE%%%|${FREESIDE_CACHE}|g;\
- " blib/lib/FS/cust_main/*.pm blib/lib/FS/cust_pkg/*.pm;\
+ " blib/lib/FS/cust_main/*.pm blib/lib/FS/cust_pkg/*.pm blib/lib/FS/contact/*.pm;\
perl -p -i -e "\
s|%%%FREESIDE_LOG%%%|${FREESIDE_LOG}|g;\
" blib/lib/FS/Daemon/*.pm;\
diff --git a/httemplate/misc/process/contact-import.cgi b/httemplate/misc/process/contact-import.cgi
index cbdcad455..108ee93e9 100644
--- a/httemplate/misc/process/contact-import.cgi
+++ b/httemplate/misc/process/contact-import.cgi
@@ -5,6 +5,6 @@ die "access denied"
unless $FS::CurrentUser::CurrentUser->access_right('Import');
my $server =
- new FS::UI::Web::JSRPC 'FS::contact_import::process_batch_import', $cgi;
+ new FS::UI::Web::JSRPC 'FS::contact::Import::process_batch_import', $cgi;
</%init>
-----------------------------------------------------------------------
Summary of changes:
FS/FS.pm | 2 +
FS/FS/contact.pm | 1 +
FS/FS/contact_import.pm | 161 -----------------------------
FS/MANIFEST | 1 +
Makefile | 2 +-
httemplate/misc/process/contact-import.cgi | 2 +-
6 files changed, 6 insertions(+), 163 deletions(-)
delete mode 100644 FS/FS/contact_import.pm
More information about the freeside-commits
mailing list