X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=FS%2Fbin%2Ffreeside-setup;h=a2ef31eb1220b915d8a17e15f502d108806f4ffe;hp=522c0a1a2733b52ec1b3c169ff4368a5a467e0d1;hb=c2146ae32fdef80049abfa13098db2d45f3ebdd5;hpb=db1025e6dcb7b5d68c08a455db0b0326bf8ecc62 diff --git a/FS/bin/freeside-setup b/FS/bin/freeside-setup index 522c0a1a2..a2ef31eb1 100755 --- a/FS/bin/freeside-setup +++ b/FS/bin/freeside-setup @@ -9,7 +9,7 @@ use Getopt::Std; use Locale::Country; use Locale::SubCountry; use DBI; -use DBIx::DBSchema 0.21; +use DBIx::DBSchema 0.25; use DBIx::DBSchema::Table; use DBIx::DBSchema::Column; use DBIx::DBSchema::ColGroup::Unique; @@ -142,7 +142,11 @@ foreach $attribute (@check_attributes) { } #create history tables (false laziness w/create-history-tables) -foreach my $table ( grep { ! /^h_/ } $dbdef->tables ) { +foreach my $table ( + grep { ! /^clientapi_session/ } + grep { ! /^h_/ } + $dbdef->tables +) { my $tableobj = $dbdef->table($table) or die "unknown table $table"; @@ -270,7 +274,7 @@ foreach my $country ( sort map uc($_), all_country_codes ) { #billing events foreach my $aref ( - [ 'COMP', 'Comp invoice', '$cust_bill->comp();', 30, 'comp' ], + #[ 'COMP', 'Comp invoice', '$cust_bill->comp();', 30, 'comp' ], [ 'CARD', 'Batch card', '$cust_bill->batch_card();', 40, 'batch-card' ], [ 'BILL', 'Send invoice', '$cust_bill->send();', 50, 'send' ], [ 'DCRD', 'Send invoice', '$cust_bill->send();', 50, 'send' ], @@ -339,10 +343,11 @@ sub tables_hash_hack { 'type_pkgs' => { 'columns' => [ + 'typepkgnum', 'serial', '', '', 'typenum', 'int', '', '', 'pkgpart', 'int', '', '', ], - 'primary_key' => '', + 'primary_key' => 'typepkgnum', 'unique' => [ ['typenum', 'pkgpart'] ], 'index' => [ ['typenum'] ], }, @@ -395,6 +400,7 @@ sub tables_hash_hack { 'cust_bill_pkg' => { 'columns' => [ + 'billpkgnum', 'serial', '', '', 'pkgnum', 'int', '', '', 'invnum', 'int', '', '', 'setup', @money_type, @@ -403,7 +409,7 @@ sub tables_hash_hack { 'edate', @date_type, 'itemdesc', 'varchar', 'NULL', $char_d, ], - 'primary_key' => '', + 'primary_key' => 'billpkgnum', 'unique' => [], 'index' => [ ['invnum'] ], }, @@ -463,7 +469,7 @@ sub tables_hash_hack { 'city', 'varchar', '', $char_d, 'county', 'varchar', 'NULL', $char_d, 'state', 'varchar', 'NULL', $char_d, - 'zip', 'varchar', '', 10, + 'zip', 'varchar', 'NULL', 10, 'country', 'char', '', 2, 'daytime', 'varchar', 'NULL', 20, 'night', 'varchar', 'NULL', 20, @@ -483,8 +489,9 @@ sub tables_hash_hack { 'ship_night', 'varchar', 'NULL', 20, 'ship_fax', 'varchar', 'NULL', 12, 'payby', 'char', '', 4, - 'payinfo', 'varchar', 'NULL', $char_d, - 'paycvv', 'varchar', 'NULL', 4, + 'payinfo', 'varchar', 'NULL', 512, + 'paycvv', 'varchar', 'NULL', 512, + 'paymask', 'varchar', 'NULL', $char_d, #'paydate', @date_type, 'paydate', 'varchar', 'NULL', 10, 'payname', 'varchar', 'NULL', $char_d, @@ -498,7 +505,7 @@ sub tables_hash_hack { 'unique' => [], #'index' => [ ['last'], ['company'] ], 'index' => [ ['last'], [ 'company' ], [ 'referral_custnum' ], - [ 'daytime' ], [ 'night' ], [ 'fax' ], + [ 'daytime' ], [ 'night' ], [ 'fax' ], [ 'refnum' ], ], }, @@ -552,6 +559,26 @@ sub tables_hash_hack { 'index' => [ [ 'custnum' ], [ 'paybatch' ], [ 'payby' ], [ '_date' ] ], }, + 'cust_pay_void' => { + 'columns' => [ + 'paynum', 'int', '', '', + 'custnum', 'int', '', '', + 'paid', @money_type, + '_date', @date_type, + 'payby', 'char', '', 4, # CARD/BILL/COMP, should be index into + # payment type table. + 'payinfo', 'varchar', 'NULL', $char_d, #see cust_main above + 'paybatch', 'varchar', 'NULL', $char_d, #for auditing purposes. + 'closed', 'char', 'NULL', 1, + 'void_date', @date_type, + 'reason', 'varchar', 'NULL', $char_d, + 'otaker', 'varchar', '', 32, + ], + 'primary_key' => 'paynum', + 'unique' => [], + 'index' => [ [ 'custnum' ] ], + }, + 'cust_bill_pay' => { 'columns' => [ 'billpaynum', 'serial', '', '', @@ -577,7 +604,7 @@ sub tables_hash_hack { 'address2', 'varchar', 'NULL', $char_d, 'city', 'varchar', '', $char_d, 'state', 'varchar', 'NULL', $char_d, - 'zip', 'varchar', '', 10, + 'zip', 'varchar', 'NULL', 10, 'country', 'char', '', 2, # 'trancode', 'int', '', '', 'cardnum', 'varchar', '', 16, @@ -660,6 +687,7 @@ sub tables_hash_hack { 'pkgpart', 'serial', '', '', 'pkg', 'varchar', '', $char_d, 'comment', 'varchar', '', $char_d, + 'promo_code', 'varchar', 'NULL', $char_d, 'setup', @perl_type, 'freq', 'varchar', '', $char_d, #billing frequency 'recur', @perl_type, @@ -672,7 +700,7 @@ sub tables_hash_hack { ], 'primary_key' => 'pkgpart', 'unique' => [], - 'index' => [ [ 'disabled' ], ], + 'index' => [ [ 'promo_code' ], [ 'disabled' ] ], }, # 'part_title' => { @@ -687,12 +715,13 @@ sub tables_hash_hack { 'pkg_svc' => { 'columns' => [ + 'pkgsvcnum', 'serial', '', '', 'pkgpart', 'int', '', '', 'svcpart', 'int', '', '', 'quantity', 'int', '', '', 'primary_svc','char', 'NULL', 1, ], - 'primary_key' => '', + 'primary_key' => 'pkgsvcnum', 'unique' => [ ['pkgpart', 'svcpart'] ], 'index' => [ ['pkgpart'] ], }, @@ -865,6 +894,7 @@ sub tables_hash_hack { 'identifier', 'varchar', '', $char_d, 'amount', @money_type, 'seconds', 'int', 'NULL', '', + 'agentnum', 'int', 'NULL', '', ], 'primary_key' => 'prepaynum', 'unique' => [ ['identifier'] ], @@ -1031,10 +1061,11 @@ sub tables_hash_hack { 'part_svc_router' => { 'columns' => [ + 'svcrouternum', 'serial', '', '', 'svcpart', 'int', '', '', 'routernum', 'int', '', '', ], - 'primary_key' => '', + 'primary_key' => 'svcrouternum', 'unique' => [], 'index' => [], }, @@ -1081,11 +1112,12 @@ sub tables_hash_hack { 'virtual_field' => { 'columns' => [ + 'vfieldnum', 'serial', '', '', 'recnum', 'int', '', '', 'vfieldpart', 'int', '', '', 'value', 'varchar', '', 128, ], - 'primary_key' => '', + 'primary_key' => 'vfieldnum', 'unique' => [ [ 'vfieldpart', 'recnum' ] ], 'index' => [], }, @@ -1107,7 +1139,7 @@ sub tables_hash_hack { 'svc_external' => { 'columns' => [ 'svcnum', 'int', '', '', - 'id', 'int', '', '', + 'id', 'int', 'NULL', '', 'title', 'varchar', 'NULL', $char_d, ], 'primary_key' => 'svcnum', @@ -1115,6 +1147,125 @@ sub tables_hash_hack { 'index' => [], }, + 'cust_pay_refund' => { + 'columns' => [ + 'payrefundnum', 'serial', '', '', + 'paynum', 'int', '', '', + 'refundnum', 'int', '', '', + '_date', @date_type, + 'amount', @money_type, + ], + 'primary_key' => 'payrefundnum', + 'unique' => [], + 'index' => [ ['paynum'], ['refundnum'] ], + }, + + 'part_pkg_option' => { + 'columns' => [ + 'optionnum', 'serial', '', '', + 'pkgpart', 'int', '', '', + 'optionname', 'varchar', '', $char_d, + 'optionvalue', 'text', 'NULL', '', + ], + 'primary_key' => 'optionnum', + 'unique' => [], + 'index' => [ [ 'pkgpart' ], [ 'optionname' ] ], + }, + + 'rate' => { + 'columns' => [ + 'ratenum', 'serial', '', '', + 'ratename', 'varchar', '', $char_d, + ], + 'primary_key' => 'ratenum', + 'unique' => [], + 'index' => [], + }, + + 'rate_detail' => { + 'columns' => [ + 'ratedetailnum', 'serial', '', '', + 'ratenum', 'int', '', '', + 'orig_regionnum', 'int', 'NULL', '', + 'dest_regionnum', 'int', '', '', + 'min_included', 'int', '', '', + 'min_charge', @money_type, + 'sec_granularity', 'int', '', '', + #time period (link to table of periods)? + ], + 'primary_key' => 'ratedetailnum', + 'unique' => [ [ 'ratenum', 'orig_regionnum', 'dest_regionnum' ] ], + 'index' => [], + }, + + 'rate_region' => { + 'columns' => [ + 'regionnum', 'serial', '', '', + 'regionname', 'varchar', '', $char_d, + ], + 'primary_key' => 'regionnum', + 'unique' => [], + 'index' => [], + }, + + 'rate_prefix' => { + 'columns' => [ + 'prefixnum', 'serial', '', '', + 'regionnum', 'int', '', '',, + 'countrycode', 'varchar', '', 3, + 'npa', 'varchar', 'NULL', 6, + 'nxx', 'varchar', 'NULL', 3, + ], + 'primary_key' => 'prefixnum', + 'unique' => [], + 'index' => [ [ 'countrycode' ], [ 'regionnum' ] ], + }, + + 'reg_code' => { + 'columns' => [ + 'codenum', 'serial', '', '', + 'code', 'varchar', '', $char_d, + 'agentnum', 'int', '', '', + ], + 'primary_key' => 'codenum', + 'unique' => [ [ 'agentnum', 'code' ] ], + 'index' => [ [ 'agentnum' ] ], + }, + + 'reg_code_pkg' => { + 'columns' => [ + 'codepkgnum', 'serial', '', '', + 'codenum', 'int', '', '', + 'pkgpart', 'int', '', '', + ], + 'primary_key' => 'codepkgnum', + 'unique' => [ [ 'codenum', 'pkgpart' ] ], + 'index' => [ [ 'codenum' ] ], + }, + + 'clientapi_session' => { + 'columns' => [ + 'sessionnum', 'serial', '', '', + 'sessionid', 'varchar', '', $char_d, + 'namespace', 'varchar', '', $char_d, + ], + 'primary_key' => 'sessionnum', + 'unique' => [ [ 'sessionid', 'namespace' ] ], + 'index' => [], + }, + + 'clientapi_session_field' => { + 'columns' => [ + 'fieldnum', 'serial', '', '', + 'sessionnum', 'int', '', '', + 'fieldname', 'varchar', '', $char_d, + 'fieldvalue', 'text', 'NULL', '', + ], + 'primary_key' => 'fieldnum', + 'unique' => [ [ 'sessionnum', 'fieldname' ] ], + 'index' => [], + }, + ); %tables;