allow null svc_broadband.ip_addr
[freeside.git] / FS / FS / Schema.pm
index 69a96a9..19e1c66 100644 (file)
@@ -513,6 +513,7 @@ sub tables_hashref {
         'sdate',               @date_type,              '', '', 
         'edate',               @date_type,              '', '', 
         'itemdesc',         'varchar', 'NULL', $char_d, '', '', 
+        'itemcomment',      'varchar', 'NULL', $char_d, '', '', 
         'section',          'varchar', 'NULL', $char_d, '', '', 
         'quantity',             'int', 'NULL',      '', '', '',
         'unitsetup',           @money_typen,            '', '', 
@@ -520,7 +521,7 @@ sub tables_hashref {
       ],
       'primary_key' => 'billpkgnum',
       'unique' => [],
-      'index' => [ ['invnum'], [ 'pkgnum' ] ],
+      'index' => [ ['invnum'], [ 'pkgnum' ], [ 'itemdesc' ], ],
     },
 
     'cust_bill_pkg_detail' => {
@@ -685,6 +686,7 @@ sub tables_hashref {
         'paytype',  'varchar', 'NULL', $char_d, '', '', 
         'payip',    'varchar', 'NULL', 15, '', '', 
         'geocode',  'varchar', 'NULL', 20,  '', '',
+        'censustract', 'varchar', 'NULL', 20,  '', '', # 7 to save space?
         'tax',      'char', 'NULL', 1, '', '', 
         'otaker',   'varchar', '',    32, '', '', 
         'refnum',   'int',  '',     '', '', '', 
@@ -692,6 +694,7 @@ sub tables_hashref {
         'comments', 'text', 'NULL', '', '', '', 
         'spool_cdr','char', 'NULL', 1, '', '', 
         'squelch_cdr','char', 'NULL', 1, '', '', 
+        'cdr_termination_percentage', 'decimal', 'NULL', '', '', '',
         'invoice_terms', 'varchar', 'NULL', $char_d, '', '',
         'archived', 'char', 'NULL', 1, '', '',
       ],
@@ -788,6 +791,33 @@ sub tables_hashref {
       'index' => [ [ 'custnum' ], [ '_date' ], ],
     },
 
+    'cust_main_exemption' => {
+      'columns' => [
+        'exemptionnum', 'serial', '',      '', '', '',
+        'custnum',         'int', '',      '', '', '', 
+        'taxname',     'varchar', '', $char_d, '', '',
+        #start/end dates?  for reporting?
+      ],
+      'primary_key' => 'exemptionnum',
+      'unique'      => [],
+      'index'       => [ [ 'custnum' ] ],
+    },
+
+    'cust_tax_adjustment' => {
+      'columns' => [
+        'adjustmentnum', 'serial',     '',      '', '', '',
+        'custnum',          'int',     '',      '', '', '',
+        'taxname',      'varchar',     '', $char_d, '', '',
+        'amount',    @money_type,                   '', '', 
+        'comment',     'varchar',  'NULL', $char_d, '', '', 
+        'billpkgnum',       'int', 'NULL',      '', '', '',
+        #more?  no cust_bill_pkg_tax_location?
+      ],
+      'primary_key' => 'adjustmentnum',
+      'unique'      => [],
+      'index'       => [ [ 'custnum' ], [ 'billpkgnum' ] ],
+    },
+
     'cust_main_county' => { #county+state+country are checked off the
                             #cust_main_county for validation and to provide
                             # a tax rate.
@@ -1056,6 +1086,7 @@ sub tables_hashref {
         'pkgpart',             'int',     '', '', '', '', 
         'locationnum',         'int', 'NULL', '', '', '',
         'otaker',          'varchar',     '', 32, '', '', 
+        'start_date',     @date_type,             '', '', 
         'setup',          @date_type,             '', '', 
         'bill',           @date_type,             '', '', 
         'last_bill',      @date_type,             '', '', 
@@ -1073,8 +1104,8 @@ sub tables_hashref {
       'primary_key' => 'pkgnum',
       'unique' => [],
       'index' => [ ['custnum'], ['pkgpart'], [ 'locationnum' ],
-                   ['setup'], ['last_bill'], ['bill'], ['susp'], ['adjourn'],
-                   ['expire'], ['cancel'],
+                   [ 'start_date' ], ['setup'], ['last_bill'], ['bill'],
+                   ['susp'], ['adjourn'], ['expire'], ['cancel'],
                    ['change_date'],
                  ],
     },
@@ -1223,10 +1254,11 @@ sub tables_hashref {
       'columns' => [
         'taxclassnum',  'serial', '',       '', '', '',
         'taxclass',     'varchar', '', $char_d, '', '', 
+        'disabled', 'char',   'NULL',         1, '', '', 
       ],
       'primary_key' => 'taxclassnum',
       'unique'      => [ [ 'taxclass' ] ],
-      'index'       => [],
+      'index'       => [ [ 'disabled' ] ],
     },
 
     'part_pkg_taxproduct' => {
@@ -1731,7 +1763,7 @@ sub tables_hashref {
         'blocknum', 'int', '', '', '', '', 
         'speed_up', 'int', '', '', '', '', 
         'speed_down', 'int', '', '', '', '', 
-        'ip_addr', 'varchar', '', 15, '', '', 
+        'ip_addr', 'varchar', 'NULL', 15, '', '', 
         'mac_addr', 'varchar', 'NULL', 12, '', '', 
         'authkey',  'varchar', 'NULL', 32, '', '', 
         'latitude', 'decimal', 'NULL', '', '', '', 
@@ -1822,6 +1854,17 @@ sub tables_hashref {
       'index'       => [ [ 'pkgpart' ], [ 'optionname' ] ],
     },
 
+    'part_pkg_report_option' => {
+      'columns' => [
+        'num',      'serial',   '',      '', '', '', 
+        'name',     'varchar',  '', $char_d, '', '', 
+        'disabled', 'char', 'NULL',       1, '', '', 
+      ],
+      'primary_key' => 'num',
+      'unique' => [ [ 'name' ] ],
+      'index' => [ [ 'disabled' ] ],
+    },
+
     'rate' => {
       'columns' => [
         'ratenum',  'serial', '', '', '', '', 
@@ -2099,9 +2142,40 @@ sub tables_hashref {
       ],
       'primary_key' => 'acctid',
       'unique' => [],
-      'index' => [ [ 'calldate' ], [ 'src' ], [ 'dst' ], [ 'charged_party' ], [ 'accountcode' ], [ 'freesidestatus' ], [ 'freesiderewritestatus' ], [ 'cdrbatch' ], ],
+      'index' => [ [ 'calldate' ],
+                   [ 'src' ], [ 'dst' ], [ 'dcontext' ], [ 'charged_party' ],
+                   [ 'accountcode' ], [ 'carrierid' ],
+                   [ 'freesidestatus' ], [ 'freesiderewritestatus' ],
+                   [ 'cdrbatch' ],
+                 ],
     },
 
+    'cdr_termination' => {
+      'columns' => [
+        'cdrtermnum', 'bigserial', '',   '', '', '',
+        'acctid',        'bigint', '',   '', '', '', 
+        'termpart',         'int', '',   '', '', '',#future expansion, see below
+        'rated_price',  @money_typen,        '', '',
+        'status',     'varchar', 'NULL', 32, '', '',
+      ],
+      'primary_key' => 'cdrtermnum',
+      'unique'      => [ [ 'acctid', 'termpart' ] ],
+      'index'       => [ [ 'acctid' ], [ 'status' ], ],
+    },
+
+    #to handle multiple termination/settlement passes...
+   # 'part_termination' => {
+   #   'columns' => [
+   #     'termpart',       'int', '',      '', '', '',
+   #     'termname',   'varchar', '', $char_d, '', '',
+   #     'cdr_column', 'varchar', '', $char_d, '', '', #maybe set it here instead of in the price plan?
+   #   ],
+   #   'primary_key' => 'termpart',
+   #   'unique' => [],
+   #   'index'  => [],
+   # },
+
+    #the remaining cdr_ tables are not really used
     'cdr_calltype' => {
       'columns' => [
         'calltypenum',   'serial',  '', '', '', '', 
@@ -2266,6 +2340,29 @@ sub tables_hashref {
       'index'  => [ [ 'countrycode', 'phonenum' ] ],
     },
 
+    'phone_device' => {
+      'columns' => [
+        'devicenum', 'serial',     '', '', '', '',
+        'devicepart',   'int',     '', '', '', '',
+        'svcnum',       'int',     '', '', '', '', 
+        'mac_addr', 'varchar', 'NULL', 12, '', '', 
+      ],
+      'primary_key' => 'devicenum',
+      'unique' => [ [ 'mac_addr' ], ],
+      'index'  => [ [ 'devicepart' ], [ 'svcnum' ], ],
+    },
+
+    'part_device' => {
+      'columns' => [
+        'devicepart', 'serial',  '',      '', '', '',
+        'devicename', 'varchar', '', $char_d, '', '',
+        #'classnum', #tie to an inventory class?
+      ],
+      'primary_key' => 'devicepart',
+      'unique' => [ [ 'devicename' ] ], #?
+      'index'  => [],
+    },
+
     'phone_avail' => {
       'columns' => [
         'availnum',    'serial',      '',      '', '', '',