X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=bin%2Ffs-setup;h=8fbc67ef3b26abfb97e2a918f03e59fb1d33171e;hp=a3e067bec9a084c12cac588db7cc77fbcf5bc60c;hb=6412f71a3557249225abf5eb2096ebad1729c585;hpb=4d513ff5a17bd3b697502b54c9516577a0a8d3e4 diff --git a/bin/fs-setup b/bin/fs-setup index a3e067bec..8fbc67ef3 100755 --- a/bin/fs-setup +++ b/bin/fs-setup @@ -1,152 +1,6 @@ #!/usr/bin/perl -Tw # -# $Id: fs-setup,v 1.41 2001-08-12 19:41:25 jeff Exp $ -# -# ivan@sisd.com 97-nov-8,9 -# -# agent_type and type_pkgs added. -# (index need to be declared, & primary keys shoudln't have mysql syntax) -# ivan@sisd.com 97-nov-13 -# -# pulled modified version back out of register.cgi ivan@sisd.com 98-feb-21 -# -# removed extraneous sample data ivan@sisd.com 98-mar-23 -# -# gained the big hash from dbdef.pm, dbdef.pm usage rewrite ivan@sisd.com -# 98-apr-19 - 98-may-11 plus -# -# finished up ivan@sisd.com 98-jun-1 -# -# part_svc fields are all forced NULL, not the opposite -# hmm: also are forced varchar($char_d) as fixed '0' for things like -# uid is Not Good. will this break anything else? -# ivan@sisd.com 98-jun-29 -# -# ss is 11 chars ivan@sisd.com 98-jul-20 -# -# setup of arbitrary radius fields ivan@sisd.com 98-aug-9 -# -# ouch, removed index on company name that wasn't supposed to be there -# ivan@sisd.com 98-sep-4 -# -# fix radius attributes ivan@sisd.com 98-sep-27 -# -# $Log: fs-setup,v $ -# Revision 1.41 2001-08-12 19:41:25 jeff -# merging vpopmail support branch -# -# Revision 1.40 2001/08/11 05:53:42 ivan -# add comments field -# -# Revision 1.39 2001/07/30 07:42:39 ivan -# need an DBIx::DBSchema with delcolumn -# -# Revision 1.38 2001/07/30 07:36:04 ivan -# templates!!! -# -# Revision 1.37 2001/06/03 14:16:11 ivan -# allow empty refund reasons -# -# Revision 1.36 2001/04/15 12:56:31 ivan -# s/dbdef/DBIx::DBSchema/ -# -# Revision 1.35 2001/04/15 09:36:43 ivan -# http://www.sisd.com/freeside/list-archive/msg01450.html -# -# Revision 1.34 2001/04/09 23:05:16 ivan -# Transactions Part I!!! -# -# Revision 1.33 2001/02/03 14:03:50 ivan -# time-based prepaid cards, session monitor. woop! -# -# Revision 1.32 2000/12/04 00:13:02 ivan -# fix nas.last type -# -# Revision 1.31 2000/12/01 18:34:53 ivan -# another tyop -# -# Revision 1.30 2000/12/01 18:33:32 ivan -# tyop -# -# Revision 1.29 2000/11/07 15:00:37 ivan -# session monitor -# -# Revision 1.28 2000/10/30 10:47:26 ivan -# nas.last can't be defined NULL if indexed -# -# Revision 1.26 2000/07/06 08:57:27 ivan -# support for radius check attributes (except importing). poorly documented. -# -# Revision 1.25 2000/06/29 12:00:49 ivan -# support for pre-encrypted md5 passwords. -# -# Revision 1.24 2000/03/02 07:44:07 ivan -# typo forgot closing ' -# -# Revision 1.23 2000/02/03 05:16:52 ivan -# beginning of DNS and Apache support -# -# Revision 1.22 2000/01/31 05:22:23 ivan -# prepaid "internet cards" -# -# Revision 1.21 2000/01/30 06:03:26 ivan -# postgres 6.5 finally supports decimal(10,2) -# -# Revision 1.20 2000/01/28 22:53:33 ivan -# track full phone number -# -# Revision 1.19 1999/07/29 08:50:35 ivan -# wrong type for cust_pay_batch.exp -# -# Revision 1.18 1999/04/15 22:46:30 ivan -# TT isn't a state! -# -# Revision 1.17 1999/04/14 07:58:39 ivan -# export getsecrets from FS::UID instead of calling it explicitly -# -# Revision 1.16 1999/02/28 19:44:16 ivan -# constructors s/create/new/ pointed out by "Bao C. Ha" -# -# Revision 1.15 1999/02/27 21:06:21 ivan -# cust_main.paydate should be varchar(10), not @date_type ; problem reported -# by Ben Leibig -# -# Revision 1.14 1999/02/07 09:59:14 ivan -# more mod_perl fixes, and bugfixes Peter Wemm sent via email -# -# Revision 1.13 1999/02/04 06:09:23 ivan -# add AU provences -# -# Revision 1.12 1999/02/03 10:42:27 ivan -# *** empty log message *** -# -# Revision 1.11 1999/01/17 03:11:52 ivan -# remove preliminary completehost changes -# -# Revision 1.10 1998/12/16 06:05:38 ivan -# add table cust_main_invoice -# -# Revision 1.9 1998/12/15 04:36:29 ivan -# s/croak/die/; #oops -# -# Revision 1.8 1998/12/15 04:33:27 ivan -# dies if it isn't running as the freeside user -# -# Revision 1.7 1998/11/18 09:01:31 ivan -# i18n! i18n! -# -# Revision 1.6 1998/11/15 13:18:02 ivan -# remove debugging -# -# Revision 1.5 1998/11/15 09:43:03 ivan -# update for new config file syntax, new adminsuidsetup -# -# Revision 1.4 1998/10/22 15:51:23 ivan -# also varchar with no length specified - postgresql fix broke mysql. -# -# Revision 1.3 1998/10/22 15:46:28 ivan -# now smallint is illegal, so remove that too. -# +# $Id: fs-setup,v 1.46 2001-09-01 21:52:20 jeff Exp $ #to delay loading dbdef until we're ready BEGIN { $FS::Record::setup_hack = 1; } @@ -238,10 +92,11 @@ my($dbdef) = new DBIx::DBSchema ( map { ); } (keys %tables) ); -#remove ship_ from cust_main -unless ($ship) { - my $cust_main = $dbdef->table('cust_main'); +my $cust_main = $dbdef->table('cust_main'); +unless ($ship) { #remove ship_ from cust_main $cust_main->delcolumn($_) foreach ( grep /^ship_/, $cust_main->columns ); +} else { #add indices on ship_last and ship_company + push @{$cust_main->index->lol_ref}, ( ['ship_last'], ['ship_company'] ) } #add radius attributes to svc_acct @@ -274,7 +129,7 @@ my($part_svc)=$dbdef->table('part_svc'); #because of svc_acct_pop #foreach (grep /^svc_/, $dbdef->tables) { #foreach (qw(svc_acct svc_acct_sm svc_charge svc_domain svc_wo)) { -foreach (qw(svc_acct svc_acct_sm svc_domain svc_forward svc_www)) { +foreach (qw(svc_acct svc_domain svc_forward svc_www)) { my($table)=$dbdef->table($_); my($col); foreach $col ( $table->columns ) { @@ -462,6 +317,18 @@ sub tables_hash_hack { 'index' => [ ['custnum'] ], }, + 'cust_credit_bill' => { + 'columns' => [ + 'crednum', 'int', '', '', + 'invnum', 'int', '', '', + '_date', @date_type, + 'amount', @money_type, + ], + 'primary_key' => 'crednum', + 'unique' => [ [] ], + 'index' => [ ['invnum'] ], + }, + 'cust_main' => { 'columns' => [ 'custnum', 'int', '', '', @@ -504,12 +371,13 @@ sub tables_hash_hack { 'tax', 'char', 'NULL', 1, 'otaker', 'varchar', '', 8, 'refnum', 'int', '', '', + 'referral_custnum', 'int', 'NULL', '', 'comments', 'varchar', 'NULL', '', ], 'primary_key' => 'custnum', 'unique' => [ [] ], #'index' => [ ['last'], ['company'] ], - 'index' => [ ['last'], ], + 'index' => [ ['last'], [ 'company' ], [ 'referral_custnum' ] ], }, 'cust_main_invoice' => { @@ -542,7 +410,7 @@ sub tables_hash_hack { 'cust_pay' => { 'columns' => [ 'paynum', 'int', '', '', - 'invnum', 'int', '', '', + #now cust_bill_pay #'invnum', 'int', '', '', 'paid', @money_type, '_date', @date_type, 'payby', 'char', '', 4, # CARD/BILL/COMP, should be index into @@ -555,6 +423,19 @@ sub tables_hash_hack { 'index' => [ ['invnum'] ], }, + 'cust_bill_pay' => { + 'column' => [ + 'billpaynum', 'int', '', '', + 'invnum', 'int', '', '', + 'paynum', 'int', '', '', + 'amount', @money_type, + '_date', @date_type + ], + 'primary_key' => 'billpaynum' + 'unique' => [ [] ], + 'index' => [ [ 'paynum', 'invnum' ] ], + }, + 'cust_pay_batch' => { #what's this used for again? list of customers #in current CARD batch? (necessarily CARD?) 'columns' => [ @@ -600,7 +481,7 @@ sub tables_hash_hack { 'cust_refund' => { 'columns' => [ 'refundnum', 'int', '', '', - 'crednum', 'int', '', '', + #now cust_credit_refund #'crednum', 'int', '', '', '_date', @date_type, 'refund', @money_type, 'otaker', 'varchar', '', 8, @@ -608,12 +489,27 @@ sub tables_hash_hack { 'payby', 'char', '', 4, # CARD/BILL/COMP, should be index # into payment type table. 'payinfo', 'varchar', 'NULL', 16, #see cust_main above + 'paybatch', 'varchar', 'NULL', $char_d, ], 'primary_key' => 'refundnum', 'unique' => [ [] ], 'index' => [ ['crednum'] ], }, + 'cust_credit_refund' => { + 'column' => [ + 'creditrefundnum', 'int', '', '', + 'crednum', 'int', '', '', + 'refundnum', 'int', '', '', + 'amount', @money_type, + '_date', @date_type + ], + 'primary_key' => 'creditrefundnum' + 'unique' => [ [] ], + 'index' => [ [ 'crednum', 'refundnum' ] ], + }, + + 'cust_svc' => { 'columns' => [ 'svcnum', 'int', '', '', @@ -713,21 +609,21 @@ sub tables_hash_hack { 'domsvc', 'int', '', '', ], 'primary_key' => 'svcnum', - 'unique' => [ [] ], + 'unique' => [ [ 'username', 'domsvc' ] ], 'index' => [ ['username'], ['domsvc'] ], }, - 'svc_acct_sm' => { - 'columns' => [ - 'svcnum', 'int', '', '', - 'domsvc', 'int', '', '', - 'domuid', 'int', '', '', - 'domuser', 'varchar', '', $char_d, - ], - 'primary_key' => 'svcnum', - 'unique' => [ [] ], - 'index' => [ ['domsvc'], ['domuid'] ], - }, +# 'svc_acct_sm' => { +# 'columns' => [ +# 'svcnum', 'int', '', '', +# 'domsvc', 'int', '', '', +# 'domuid', 'int', '', '', +# 'domuser', 'varchar', '', $char_d, +# ], +# 'primary_key' => 'svcnum', +# 'unique' => [ [] ], +# 'index' => [ ['domsvc'], ['domuid'] ], +# }, #'svc_charge' => { # 'columns' => [ @@ -743,7 +639,7 @@ sub tables_hash_hack { 'columns' => [ 'svcnum', 'int', '', '', 'domain', 'varchar', '', $char_d, - 'catchall', 'int', '', '', + 'catchall', 'int', 'NULL', '', ], 'primary_key' => 'svcnum', 'unique' => [ ['domain'] ],