projects
/
freeside.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
0731f30
)
add an import format for external services, including next bill date (cust_pkg.bill...
author
ivan
<ivan>
Tue, 14 Oct 2008 00:50:34 +0000
(
00:50
+0000)
committer
ivan
<ivan>
Tue, 14 Oct 2008 00:50:34 +0000
(
00:50
+0000)
FS/FS/cust_main.pm
patch
|
blob
|
history
httemplate/misc/cust_main-import.cgi
patch
|
blob
|
history
diff --git
a/FS/FS/cust_main.pm
b/FS/FS/cust_main.pm
index
c048482
..
61cb75d
100644
(file)
--- a/
FS/FS/cust_main.pm
+++ b/
FS/FS/cust_main.pm
@@
-6392,6
+6392,9
@@
sub process_batch_import {
=cut
=cut
+use FS::svc_acct;
+use FS::svc_external;
+
#some false laziness w/cdr.pm now
sub batch_import {
my $param = shift;
#some false laziness w/cdr.pm now
sub batch_import {
my $param = shift;
@@
-6439,6
+6442,18
@@
sub batch_import {
svc_acct.username svc_acct._password
);
$payby = 'BILL';
svc_acct.username svc_acct._password
);
$payby = 'BILL';
+ } elsif ( $format eq 'svc_external' ) {
+ @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
+ svc_external.id svc_external.title
+ );
+ $payby = 'BILL';
} else {
die "unknown format $format";
}
} else {
die "unknown format $format";
}
@@
-6527,7
+6542,7
@@
sub batch_import {
);
my $billtime = time;
my %cust_pkg = ( pkgpart => $pkgpart );
);
my $billtime = time;
my %cust_pkg = ( pkgpart => $pkgpart );
- my %svc_
acct
= ();
+ my %svc_
x
= ();
foreach my $field ( @fields ) {
if ( $field =~ /^cust_pkg\.(pkgpart|setup|bill|susp|adjourn|expire|cancel)$/ ) {
foreach my $field ( @fields ) {
if ( $field =~ /^cust_pkg\.(pkgpart|setup|bill|susp|adjourn|expire|cancel)$/ ) {
@@
-6543,7
+6558,11
@@
sub batch_import {
} elsif ( $field =~ /^svc_acct\.(username|_password)$/ ) {
} elsif ( $field =~ /^svc_acct\.(username|_password)$/ ) {
- $svc_acct{$1} = shift @columns;
+ $svc_x{$1} = shift @columns;
+
+ } elsif ( $field =~ /^svc_external\.(id|title)$/ ) {
+
+ $svc_x{$1} = shift @columns;
} else {
} else {
@@
-6591,18
+6610,25
@@
sub batch_import {
if ( $cust_pkg{'pkgpart'} ) {
my $cust_pkg = new FS::cust_pkg ( \%cust_pkg );
if ( $cust_pkg{'pkgpart'} ) {
my $cust_pkg = new FS::cust_pkg ( \%cust_pkg );
- my @svc_acct = ();
- if ( $svc_acct{'username'} ) {
+ my @svc_x = ();
+ my $svcdb = '';
+ if ( $svc_x{'username'} ) {
+ $svcdb = 'svc_acct';
+ } elsif ( $svc_x{'id'} || $svc_x{'title'} ) {
+ $svcdb = 'svc_external';
+ }
+ if ( $svcdb ) {
my $part_pkg = $cust_pkg->part_pkg;
unless ( $part_pkg ) {
$dbh->rollback if $oldAutoCommit;
return "unknown pkgpart: ". $cust_pkg{'pkgpart'};
}
my $part_pkg = $cust_pkg->part_pkg;
unless ( $part_pkg ) {
$dbh->rollback if $oldAutoCommit;
return "unknown pkgpart: ". $cust_pkg{'pkgpart'};
}
- $svc_acct{svcpart} = $part_pkg->svcpart( 'svc_acct' );
- push @svc_acct, new FS::svc_acct ( \%svc_acct )
+ $svc_x{svcpart} = $part_pkg->svcpart( $svcdb );
+ my $class = "FS::$svcdb";
+ push @svc_x, $class->new( \%svc_x );
}
}
- $hash{$cust_pkg} = \@svc_
acct
;
+ $hash{$cust_pkg} = \@svc_
x
;
}
my $error = $cust_main->insert( \%hash, $invoicing_list );
}
my $error = $cust_main->insert( \%hash, $invoicing_list );
diff --git
a/httemplate/misc/cust_main-import.cgi
b/httemplate/misc/cust_main-import.cgi
index
bbeaa51
..
066f891
100644
(file)
--- a/
httemplate/misc/cust_main-import.cgi
+++ b/
httemplate/misc/cust_main-import.cgi
@@
-31,6
+31,7
@@
Import a file containing customer records.
<!-- <OPTION VALUE="simple">Simple -->
<OPTION VALUE="extended" SELECTED>Extended
<OPTION VALUE="extended-plus_company">Extended plus company
<!-- <OPTION VALUE="simple">Simple -->
<OPTION VALUE="extended" SELECTED>Extended
<OPTION VALUE="extended-plus_company">Extended plus company
+ <OPTION VALUE="svc_external">External service
</SELECT>
</TD>
</TR>
</SELECT>
</TD>
</TR>
@@
-90,6
+91,9
@@
Uploaded files can be CSV (comma-separated value) files or Excel spreadsheets.
<b>Extended plus company</b> format has the following field order: <i>agent_custid, refnum<%$req%>, last<%$req%>, first<%$req%>, company, address1<%$req%>, address2, city<%$req%>, state<%$req%>, zip<%$req%>, 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, pkgpart, username, _password</i>
<BR><BR>
<b>Extended plus company</b> format has the following field order: <i>agent_custid, refnum<%$req%>, last<%$req%>, first<%$req%>, company, address1<%$req%>, address2, city<%$req%>, state<%$req%>, zip<%$req%>, 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, pkgpart, username, _password</i>
<BR><BR>
+<b>External service</b> format has the following field order: <i>agent_custid, refnum<%$req%>, last<%$req%>, first<%$req%>, company, address1<%$req%>, address2, city<%$req%>, state<%$req%>, zip<%$req%>, 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, pkgpart, next_bill_date, id, title</i>
+<BR><BR>
+
<%$req%> Required fields
<BR><BR>
<%$req%> Required fields
<BR><BR>
@@
-113,7
+117,12
@@
advertising source table.
<li><i>pkgpart</i>: Package definition. Configuration -> Provisioning, services and packages -> View/Edit package definitions
<li><i>pkgpart</i>: Package definition. Configuration -> Provisioning, services and packages -> View/Edit package definitions
- <li><i>username</i> and <i>_password</i> are required if <i>pkgpart</i> is specified.
+ <li><i>username</i> and <i>_password</i> are required if <i>pkgpart</i> is specified. (Extended and Extended plus company formats)
+
+ <li><i>id</i>: External service id, integer
+
+ <li><i>title</i>: External service identifier, text
+
</ul>
<BR>
</ul>
<BR>