merging vpopmail support branch
[freeside.git] / bin / fs-setup
index 545c6a4..a3e067b 100755 (executable)
@@ -1,6 +1,6 @@
 #!/usr/bin/perl -Tw
 #
-# $Id: fs-setup,v 1.36 2001-04-15 12:56:31 ivan Exp $
+# $Id: fs-setup,v 1.41 2001-08-12 19:41:25 jeff Exp $
 #
 # ivan@sisd.com 97-nov-8,9
 #
 # fix radius attributes ivan@sisd.com 98-sep-27
 #
 # $Log: fs-setup,v $
-# Revision 1.36  2001-04-15 12:56:31  ivan
+# 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
@@ -138,7 +153,7 @@ BEGIN { $FS::Record::setup_hack = 1; }
 
 use strict;
 use DBI;
-use DBIx::DBSchema;
+use DBIx::DBSchema 0.18;
 use DBIx::DBSchema::Table;
 use DBIx::DBSchema::Column;
 use DBIx::DBSchema::ColGroup::Unique;
@@ -174,12 +189,24 @@ separated by whitespace.
 END
 my @attributes = map { s/\-/_/g; $_; } split(" ",&getvalue);
 
+print "\n\n", <<END, ":";
+Do you wish to enable the tracking of a second, separate shipping/service
+address?
+END
+my $ship = &_yesno;
+
 sub getvalue {
   my($x)=scalar(<STDIN>);
   chop $x;
   $x;
 }
 
+sub _yesno {
+  print " [y/N]:";
+  my $x = scalar(<STDIN>);
+  $x =~ /^y/i;
+}
+
 ###
 
 my($char_d) = 80; #default maxlength for text fields
@@ -211,6 +238,12 @@ my($dbdef) = new DBIx::DBSchema ( map {
   );
 } (keys %tables) );
 
+#remove ship_ from cust_main
+unless ($ship) {
+  my $cust_main = $dbdef->table('cust_main');
+  $cust_main->delcolumn($_) foreach ( grep /^ship_/, $cust_main->columns );
+}
+
 #add radius attributes to svc_acct
 
 my($svc_acct)=$dbdef->table('svc_acct');
@@ -241,7 +274,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_www)) {
+foreach (qw(svc_acct svc_acct_sm svc_domain svc_forward svc_www)) {
   my($table)=$dbdef->table($_);
   my($col);
   foreach $col ( $table->columns ) {
@@ -422,7 +455,7 @@ sub tables_hash_hack {
         '_date',    @date_type,
         'amount',   @money_type,
         'otaker',   'varchar', '', 8,
-        'reason',   'varchar', '', 255,
+        'reason',   'varchar', 'NULL', 255,
       ],
       'primary_key' => 'crednum',
       'unique' => [ [] ],
@@ -449,6 +482,20 @@ sub tables_hash_hack {
         'daytime',  'varchar', 'NULL', 20,
         'night',    'varchar', 'NULL', 20,
         'fax',      'varchar', 'NULL', 12,
+        'ship_last',     'varchar', 'NULL', $char_d,
+#        'ship_middle',   'varchar', 'NULL', $char_d,
+        'ship_first',    'varchar', 'NULL', $char_d,
+        'ship_company',  'varchar', 'NULL', $char_d,
+        'ship_address1', 'varchar', 'NULL', $char_d,
+        'ship_address2', 'varchar', 'NULL', $char_d,
+        'ship_city',     'varchar', 'NULL', $char_d,
+        'ship_county',   'varchar', 'NULL', $char_d,
+        'ship_state',    'varchar', 'NULL', $char_d,
+        'ship_zip',      'varchar', 'NULL', 10,
+        'ship_country',  'char', 'NULL', 2,
+        'ship_daytime',  'varchar', 'NULL', 20,
+        'ship_night',    'varchar', 'NULL', 20,
+        'ship_fax',      'varchar', 'NULL', 12,
         'payby',    'char', '',     4,
         'payinfo',  'varchar', 'NULL', 16,
         #'paydate',  @date_type,
@@ -457,6 +504,7 @@ sub tables_hash_hack {
         'tax',      'char', 'NULL', 1,
         'otaker',   'varchar', '',     8,
         'refnum',   'int',  '',     '',
+        'comments', 'varchar', 'NULL', '',
       ],
       'primary_key' => 'custnum',
       'unique' => [ [] ],
@@ -662,10 +710,11 @@ sub tables_hash_hack {
         'quota',     'varchar',   'NULL',   $char_d,
         'slipip',    'varchar',   'NULL',   15, #four TINYINTs, bah.
         'seconds',   'int', 'NULL',   '', #uhhhh
+        'domsvc',    'int', '',   '',
       ],
       'primary_key' => 'svcnum',
       'unique' => [ [] ],
-      'index' => [ ['username'] ],
+      'index' => [ ['username'], ['domsvc'] ],
     },
 
     'svc_acct_sm' => {
@@ -694,6 +743,7 @@ sub tables_hash_hack {
       'columns' => [
         'svcnum',    'int',    '',   '',
         'domain',    'varchar',    '',   $char_d,
+        'catchall',  'int',    '',    '',
       ],
       'primary_key' => 'svcnum',
       'unique' => [ ['domain'] ],
@@ -714,6 +764,18 @@ sub tables_hash_hack {
       'index'       => [ ['svcnum'] ],
     },
 
+    'svc_forward' => {
+      'columns' => [
+        'svcnum',   'int',    '',  '',
+        'srcsvc',   'int',    '',  '',
+        'dstsvc',   'int',    '',  '',
+        'dst',      'varchar',    'NULL',  $char_d,
+      ],
+      'primary_key' => 'svcnum',
+      'unique'      => [ [] ],
+      'index'       => [ ['srcsvc'], ['dstsvc'] ],
+    },
+
     'svc_www' => {
       'columns' => [
         'svcnum',   'int',    '',  '',