X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=eg%2FTEMPLATE_cust_main.import;fp=eg%2FTEMPLATE_cust_main.import;h=0000000000000000000000000000000000000000;hb=430b17ca457bc8f83fdbc9f34a552bf70be355a7;hp=448186991238b0e723d9fe50815e9e1dd4985948;hpb=339da5e73898ade0fcd1e67e55fc17d334fb7a3c;p=freeside.git diff --git a/eg/TEMPLATE_cust_main.import b/eg/TEMPLATE_cust_main.import deleted file mode 100755 index 448186991..000000000 --- a/eg/TEMPLATE_cust_main.import +++ /dev/null @@ -1,208 +0,0 @@ -#!/usr/bin/perl -w - -# Template for importing legacy customer data -# -# $Id: TEMPLATE_cust_main.import,v 1.3 1999-03-26 13:15:56 ivan Exp $ -# -# ivan@sisd.com 98-aug-17 - 20 -# -# $Log: TEMPLATE_cust_main.import,v $ -# Revision 1.3 1999-03-26 13:15:56 ivan -# s/create/new/, use all necessary FS::table_names to avoid warnings -# -# Revision 1.2 1998/12/16 05:29:45 ivan -# adminsuidsetup now need user -# - -use strict; -use Date::Parse; -use FS::UID qw(adminsuidsetup datasrc); -use FS::Record qw(fields qsearch qsearchs); -use FS::cust_main; -use FS::cust_pkg; -use FS::cust_svc; -use FS::svc_acct; -use FS::pkg_svc; - -my $user = shift or die &usage; -adminsuidsetup $user; - -# use these for the imported cust_main records (unless you have these in legacy -# data) -my($agentnum)=4; -my($refnum)=5; - -# map from legacy billing data to pkgpart, maps imported field -# LegacyBillingData to pkgpart. your names and pkgparts will be different -my(%pkgpart)=( - 'Employee' => 10, - 'Business' => 11, - 'Individual' => 12, - 'Basic PPP' => 13, - 'Slave' => 14, - 'Co-Located Server' => 15, - 'Virtual Web' => 16, - 'Perk Mail' => 17, - 'Credit Hold' => 18, -); - -my($file)="legacy_file"; - -open(CLIENT,$file) - or die "Can't open $file: $!"; - -# put a tab-separated header atop the file, or define @fields -# (use these names or change them below) -# -# for cust_main -# custnum - unique -# last - (name) -# first - (name) -# company -# address1 -# address2 -# city -# state -# zip -# country -# daytime - (phone) -# night - (phone) -# fax -# payby - CARD, BILL or COMP -# payinfo - Credit card #, P.O. # or COMP authorization -# paydate - Expiration -# tax - 'Y' for tax exempt -# for cust_pkg -# LegacyBillingData - maps via %pkgpart above to a pkgpart -# for svc_acct -# username - -my($header); -$header=; -chop $header; -my(@fields)=map { /^\s*(.*[^\s]+)\s*$/; $1 } split(/\t/,$header); -#print join("\n",@fields); - -my($error); -my($link,$line)=(0,0); -while () { - chop; - next if /^[\s\t]*$/; #skip any blank lines - - #define %svc hash for this record - my(@record)=split(/\t/); - my(%svc); - foreach (@fields) { - $svc{$_}=shift @record; - } - - # might need to massage some data like this - $svc{'payby'} =~ s/^Credit Card$/CARD/io; - $svc{'payby'} =~ s/^Check$/BILL/io; - $svc{'payby'} =~ s/^Cash$/BILL/io; - $svc{'payby'} =~ s/^$/BILL/o; - $svc{'First'} =~ s/&/and/go; - $svc{'Zip'} =~ s/\s+$//go; - - my($cust_main) = new FS::cust_main ( { - 'custnum' => $svc{'custnum'}, - 'agentnum' => $agentnum, - 'last' => $svc{'last'}, - 'first' => $svc{'first'}, - 'company' => $svc{'company'}, - 'address1' => $svc{'address1'}, - 'address2' => $svc{'address2'}, - 'city' => $svc{'city'}, - 'state' => $svc{'state'}, - 'zip' => $svc{'zip'}, - 'country' => $svc{'country'}, - 'daytime' => $svc{'daytime'}, - 'night' => $svc{'night'}, - 'fax' => $svc{'fax'}, - 'payby' => $svc{'payby'}, - 'payinfo' => $svc{'payinfo'}, - 'paydate' => $svc{'paydate'}, - 'payname' => $svc{'payname'}, - 'tax' => $svc{'tax'}, - 'refnum' => $refnum, - } ); - - $error=$cust_main->insert; - - if ( $error ) { - warn $cust_main->_dump; - warn map "$_: ". $svc{$_}. "|\n", keys %svc; - die $error; - } - - my($cust_pkg)=new FS::cust_pkg ( { - 'custnum' => $svc{'custnum'}, - 'pkgpart' => $pkgpart{$svc{'LegacyBillingData'}}, - 'setup' => '', - 'bill' => '', - 'susp' => '', - 'expire' => '', - 'cancel' => '', - } ); - - $error=$cust_pkg->insert; - if ( $error ) { - warn $svc{'LegacyBillingData'}; - die $error; - } - - unless ( $svc{'username'} ) { - warn "Empty login"; - } else { - #find svc_acct record (imported with bin/svc_acct.import) for this username - my($svc_acct)=qsearchs('svc_acct',{'username'=>$svc{'username'}}); - unless ( $svc_acct ) { - warn "username ", $svc{'username'}, " not found\n"; - } else { - #link to the cust_pkg record we created above - - #find cust_svc record for this svc_acct record - my($o_cust_svc)=qsearchs('cust_svc',{ - 'svcnum' => $svc_acct->svcnum, - 'pkgnum' => '', - } ); - unless ( $o_cust_svc ) { - warn "No unlinked cust_svc for svcnum ", $svc_acct->svcnum; - } else { - - #make sure this svcpart is in pkgpart - my($pkg_svc)=qsearchs('pkg_svc',{ - 'pkgpart' => $pkgpart{$svc{'LegacyBillingData'}}, - 'svcpart' => $o_cust_svc->svcpart, - 'quantity' => 1, - }); - unless ( $pkg_svc ) { - warn "login ", $svc{'username'}, ": No svcpart ", $o_cust_svc->svcpart, - " for pkgpart ", $pkgpart{$svc{'Acct. Type'}}, "\n" ; - } else { - - #create new cust_svc record linked to cust_pkg record - my($n_cust_svc) = new FS::cust_svc ({ - 'svcnum' => $o_cust_svc->svcnum, - 'pkgnum' => $cust_pkg->pkgnum, - 'svcpart' => $pkg_svc->svcpart, - }); - my($error) = $n_cust_svc->replace($o_cust_svc); - die $error if $error; - $link++; - } - } - } - } - - $line++; - -} - -warn "\n$link of $line lines linked\n"; - -# --- - -sub usage { - die "Usage:\n\n cust_main.import user\n"; -}