order package from self-service
[freeside.git] / FS / FS / Schema.pm
index e23ae73..99f8873 100644 (file)
@@ -16,14 +16,6 @@ use FS::UID qw(datasrc);
 $DEBUG = 0;
 $me = '[FS::Schema]';
 
-#hardcoded now...
-##ask FS::UID to run this stuff for us later
-#FS::UID->install_callback( sub {
-#  #$conf = new FS::Conf; 
-#  &reload_dbdef("/usr/local/etc/freeside/dbdef.". datasrc)
-#    unless $setup_hack; #$setup_hack needed now?
-#} );
-
 =head1 NAME
 
 FS::Schema - Freeside database schema
@@ -59,7 +51,7 @@ sub reload_dbdef {
   unless ( exists $dbdef_cache{$file} ) {
     warn "[debug]$me loading dbdef for $file\n" if $DEBUG;
     $dbdef_cache{$file} = DBIx::DBSchema->load( $file )
-                            or die "can't load database schema from $file";
+      or die "can't load database schema from $file: $DBIx::DBSchema::errstr\n";
   } else {
     warn "[debug]$me re-using cached dbdef for $file\n" if $DEBUG;
   }
@@ -327,6 +319,7 @@ sub tables_hashref {
         'weight',      'int', '', '', '', '', 
         'plan',       'varchar', 'NULL', $char_d, '', '', 
         'plandata',   'text', 'NULL', '', '', '', 
+        'reason',     'int', 'NULL', '', '', '', 
         'disabled',     'char', 'NULL', 1, '', '', 
       ],
       'primary_key' => 'eventpart',
@@ -390,15 +383,33 @@ sub tables_hashref {
       'index' => [ ['crednum'], ['invnum'] ],
     },
 
+    'cust_credit_bill_pkg' => {
+      'columns' => [
+        'creditbillpkgnum', 'serial', '',      '', '', '',
+        'creditbillnum',       'int', '',      '', '', '',
+        'billpkgnum',          'int', '',      '', '', '',
+        'amount',            @money_type,          '', '',
+        'setuprecur',      'varchar', '', $char_d, '', '',
+        'sdate',   @date_type, '', '', 
+        'edate',   @date_type, '', '', 
+      ],
+      'primary_key' => 'creditbillpkgnum',
+      'unique'      => [],
+      'index'       => [ [ 'creditbillnum' ], [ 'billpkgnum' ], ],
+    },
+
     'cust_main' => {
       'columns' => [
         'custnum',  'serial',  '',     '', '', '', 
         'agentnum', 'int',  '',     '', '', '', 
+        'agent_custid', 'varchar', 'NULL', $char_d, '', '',
 #        'titlenum', 'int',  'NULL',   '', '', '', 
         'last',     'varchar', '',     $char_d, '', '', 
 #        'middle',   'varchar', 'NULL', $char_d, '', '', 
         'first',    'varchar', '',     $char_d, '', '', 
         'ss',       'varchar', 'NULL', 11, '', '', 
+        'birthdate' ,@date_type, '', '', 
+        'signupdate',@date_type, '', '', 
         'company',  'varchar', 'NULL', $char_d, '', '', 
         'address1', 'varchar', '',     $char_d, '', '', 
         'address2', 'varchar', 'NULL', $char_d, '', '', 
@@ -443,7 +454,7 @@ sub tables_hashref {
         'spool_cdr','char', 'NULL', 1, '', '', 
       ],
       'primary_key' => 'custnum',
-      'unique' => [],
+      'unique' => [ [ 'agentnum', 'agent_custid' ] ],
       #'index' => [ ['last'], ['company'] ],
       'index' => [ ['last'], [ 'company' ], [ 'referral_custnum' ],
                    [ 'daytime' ], [ 'night' ], [ 'fax' ], [ 'refnum' ],
@@ -465,6 +476,19 @@ sub tables_hashref {
       'index' => [ ['custnum'], ],
     },
 
+    'cust_main_note' => {
+      'columns' => [
+        'notenum',  'serial',  '',     '', '', '', 
+        'custnum',  'int',  '',     '', '', '', 
+        '_date',    @date_type, '', '', 
+        'otaker',   'varchar', '',    32, '', '', 
+        'comments', 'text', 'NULL', '', '', '', 
+      ],
+      'primary_key' => 'notenum',
+      'unique' => [],
+      'index' => [ [ 'custnum' ], [ '_date' ], ],
+    },
+
     'cust_main_county' => { #county+state+country are checked off the
                             #cust_main_county for validation and to provide
                             # a tax rate.
@@ -539,9 +563,38 @@ sub tables_hashref {
       'index' => [ [ 'paynum' ], [ 'invnum' ] ],
     },
 
+    'cust_bill_pay_batch' => {
+      'columns' => [
+        'billpaynum', 'serial',     '',   '', '', '', 
+        'invnum',  'int',     '',   '', '', '', 
+        'paybatchnum',  'int',     '',   '', '', '', 
+        'amount',  @money_type, '', '', 
+        '_date',   @date_type, '', '', 
+      ],
+      'primary_key' => 'billpaynum',
+      'unique' => [],
+      'index' => [ [ 'paybatchnum' ], [ 'invnum' ] ],
+    },
+
+    'cust_bill_pay_pkg' => {
+      'columns' => [
+        'billpaypkgnum', 'serial', '', '', '', '',
+        'billpaynum',       'int', '', '', '', '',
+        'billpkgnum',       'int', '', '', '', '',
+        'amount',         @money_type,     '', '',
+        'setuprecur',      'varchar', '', $char_d, '', '',
+       'sdate',   @date_type, '', '', 
+        'edate',   @date_type, '', '', 
+      ],
+      'primary_key' => 'billpaypkgnum',
+      'unique'      => [],
+      'index'       => [ [ 'billpaynum' ], [ 'billpkgnum' ], ],
+    },
+
     'pay_batch' => { #batches of payments to an external processor
       'columns' => [
         'batchnum',   'serial',    '',   '', '', '', 
+       'payby',      'char',      '',    4, '', '', # CARD/CHEK
         'status',     'char', 'NULL',     1, '', '', 
         'download',   @date_type, '', '', 
         'upload',     @date_type, '', '', 
@@ -599,6 +652,19 @@ sub tables_hashref {
       'index' => [ ['custnum'], ['pkgpart'] ],
     },
 
+    'cust_pkg_reason' => {
+      'columns' => [
+        'num',      'serial',    '',   '', '', '', 
+        'pkgnum',   'int',    '',   '', '', '', 
+        'reasonnum','int',    '',   '', '', '', 
+        'otaker',   'varchar', '', 32, '', '', 
+        'date',     @date_type, '', '', 
+      ],
+      'primary_key' => 'num',
+      'unique' => [],
+      'index' => [],
+    },
+
     'cust_refund' => {
       'columns' => [
         'refundnum',    'serial',    '',   '', '', '', 
@@ -1301,17 +1367,6 @@ sub tables_hashref {
       'index'       => [],
     },
 
-    'cancel_reason' => {
-      'columns' => [
-        'reasonnum', 'serial',  '',     '', '', '', 
-        'reason',    'varchar', '',     $char_d, '', '', 
-        'disabled',  'char',    'NULL', 1, '', '', 
-      ],
-      'primary_key' => 'reasonnum',
-      'unique' => [],
-      'index'  => [ [ 'disabled' ] ],
-    },
-
     'pkg_class' => {
       'columns' => [
         'classnum',   'serial',  '', '', '', '', 
@@ -1556,7 +1611,30 @@ sub tables_hashref {
       'index'  => [ [ 'countrycode', 'phonenum' ] ],
     },
 
-  };
+    'reason_type' => {
+      'columns' => [
+        'typenum',   'serial',  '', '', '', '', 
+        'class',     'char', '', 1, '', '', 
+        'type',     'varchar', '', $char_d, '', '', 
+      ],
+      'primary_key' => 'typenum',
+      'unique' => [],
+      'index' => [],
+    },
+
+    'reason' => {
+      'columns' => [
+        'reasonnum',     'serial',  '', '', '', '', 
+        'reason_type',   'int',  '', '', '', '', 
+        'reason',        'varchar', '', $char_d, '', '', 
+        'disabled',      'char',    'NULL', 1, '', '', 
+      ],
+      'primary_key' => 'reasonnum',
+      'unique' => [],
+      'index' => [],
+    },
+
+    # name type nullability length default local
 
     #'new_table' => {
     #  'columns' => [
@@ -1567,6 +1645,8 @@ sub tables_hashref {
     #  'index'  => [],
     #},
 
+  };
+
 }
 
 =back