diff options
Diffstat (limited to 'FS')
-rw-r--r-- | FS/FS/Schema.pm | 352 | ||||
-rw-r--r-- | FS/FS/svc_phone.pm | 32 |
2 files changed, 217 insertions, 167 deletions
diff --git a/FS/FS/Schema.pm b/FS/FS/Schema.pm index 5f1611cf7..71d84cc68 100644 --- a/FS/FS/Schema.pm +++ b/FS/FS/Schema.pm @@ -554,10 +554,11 @@ sub tables_hashref { 'cust_bill' => { 'columns' => [ #regular fields - 'invnum', 'serial', '', '', '', '', - 'custnum', 'int', '', '', '', '', - '_date', @date_type, '', '', - 'charged', @money_type, '', '', + 'invnum', 'serial', '', '', '', '', + 'custnum', 'int', '', '', '', '', + '_date', @date_type, '', '', + 'charged', @money_type, '', '', + 'currency', 'char', 'NULL', 3, '', '', 'invoice_terms', 'varchar', 'NULL', $char_d, '', '', #customer balance info at invoice generation time @@ -581,10 +582,11 @@ sub tables_hashref { 'cust_bill_void' => { 'columns' => [ #regular fields - 'invnum', 'int', '', '', '', '', - 'custnum', 'int', '', '', '', '', - '_date', @date_type, '', '', - 'charged', @money_type, '', '', + 'invnum', 'int', '', '', '', '', + 'custnum', 'int', '', '', '', '', + '_date', @date_type, '', '', + 'charged', @money_type, '', '', + 'currency', 'char', 'NULL', 3, '', '', 'invoice_terms', 'varchar', 'NULL', $char_d, '', '', #customer balance info at invoice generation time @@ -616,6 +618,7 @@ sub tables_hashref { 'custnum', 'int', '', '', '', '', '_date', @date_type, '', '', 'charged', @money_type, '', '', + 'currency', 'char', 'NULL', 3, '', '', 'content_pdf', 'blob', 'NULL', '', '', '', 'content_html', 'text', 'NULL', '', '', '', 'locale', 'varchar', 'NULL', 16, '', '', @@ -760,6 +763,8 @@ sub tables_hashref { 'pkgpart_override', 'int', 'NULL', '', '', '', 'setup', @money_type, '', '', 'recur', @money_type, '', '', + #XXX a currency for a line item? or just one for the entire invoice + #'currency', 'char', 'NULL', 3, '', '', 'sdate', @date_type, '', '', 'edate', @date_type, '', '', 'itemdesc', 'varchar', 'NULL', $char_d, '', '', @@ -815,14 +820,16 @@ sub tables_hashref { 'cust_bill_pkg_tax_location' => { 'columns' => [ - 'billpkgtaxlocationnum', 'serial', '', '', '', '', - 'billpkgnum', 'int', '', '', '', '', - 'taxnum', 'int', '', '', '', '', - 'taxtype', 'varchar', '', $char_d, '', '', - 'pkgnum', 'int', '', '', '', '', #redundant - 'locationnum', 'int', '', '', '', '', #redundant - 'amount', @money_type, '', '', - 'taxable_billpkgnum', 'int', 'NULL', '', '', '', + 'billpkgtaxlocationnum', 'serial', '', '', '', '', + 'billpkgnum', 'int', '', '', '', '', + 'taxnum', 'int', '', '', '', '', + 'taxtype', 'varchar', '', $char_d, '', '', + 'pkgnum', 'int', '', '', '', '', #redundant + 'locationnum', 'int', '', '', '', '', #redundant + 'amount', @money_type, '', '', + 'currency', 'char', 'NULL', 3, '', '', + 'amount', @money_type, '', '', + 'taxable_billpkgnum', 'int', 'NULL', '', '', '', ], 'primary_key' => 'billpkgtaxlocationnum', 'unique' => [], @@ -836,14 +843,15 @@ sub tables_hashref { 'cust_bill_pkg_tax_rate_location' => { 'columns' => [ - 'billpkgtaxratelocationnum', 'serial', '', '', '', '', - 'billpkgnum', 'int', '', '', '', '', - 'taxnum', 'int', '', '', '', '', + 'billpkgtaxratelocationnum', 'serial', '', '', '', '', + 'billpkgnum', 'int', '', '', '', '', + 'taxnum', 'int', '', '', '', '', 'taxtype', 'varchar', '', $char_d, '', '', 'locationtaxid', 'varchar', 'NULL', $char_d, '', '', - 'taxratelocationnum', 'int', '', '', '', '', - 'amount', @money_type, '', '', - 'taxable_billpkgnum', 'int', 'NULL', '', '', '', + 'taxratelocationnum', 'int', '', '', '', '', + 'amount', @money_type, '', '', + 'currency', 'char', 'NULL', 3, '', '', + 'taxable_billpkgnum', 'int', 'NULL', '', '', '', ], 'primary_key' => 'billpkgtaxratelocationnum', 'unique' => [], @@ -859,6 +867,8 @@ sub tables_hashref { 'pkgpart_override', 'int', 'NULL', '', '', '', 'setup', @money_type, '', '', 'recur', @money_type, '', '', + #XXX a currency for a line item? or just one for the entire invoice + #'currency', 'char', 'NULL', 3, '', '', 'sdate', @date_type, '', '', 'edate', @date_type, '', '', 'itemdesc', 'varchar', 'NULL', $char_d, '', '', @@ -918,13 +928,14 @@ sub tables_hashref { 'cust_bill_pkg_tax_location_void' => { 'columns' => [ - 'billpkgtaxlocationnum', 'int', '', '', '', '', - 'billpkgnum', 'int', '', '', '', '', - 'taxnum', 'int', '', '', '', '', - 'taxtype', 'varchar', '', $char_d, '', '', - 'pkgnum', 'int', '', '', '', '', - 'locationnum', 'int', '', '', '', '', #redundant? - 'amount', @money_type, '', '', + 'billpkgtaxlocationnum', 'int', '', '', '', '', + 'billpkgnum', 'int', '', '', '', '', + 'taxnum', 'int', '', '', '', '', + 'taxtype', 'varchar', '', $char_d, '', '', + 'pkgnum', 'int', '', '', '', '', + 'locationnum', 'int', '', '', '', '', #redundant? + 'amount', @money_type, '', '', + 'currency', 'char', 'NULL', 3, '', '', ], 'primary_key' => 'billpkgtaxlocationnum', 'unique' => [], @@ -933,13 +944,14 @@ sub tables_hashref { 'cust_bill_pkg_tax_rate_location_void' => { 'columns' => [ - 'billpkgtaxratelocationnum', 'int', '', '', '', '', - 'billpkgnum', 'int', '', '', '', '', - 'taxnum', 'int', '', '', '', '', - 'taxtype', 'varchar', '', $char_d, '', '', - 'locationtaxid', 'varchar', 'NULL', $char_d, '', '', - 'taxratelocationnum', 'int', '', '', '', '', - 'amount', @money_type, '', '', + 'billpkgtaxratelocationnum', 'int', '', '', '', '', + 'billpkgnum', 'int', '', '', '', '', + 'taxnum', 'int', '', '', '', '', + 'taxtype', 'varchar', '', $char_d, '', '', + 'locationtaxid', 'varchar', 'NULL', $char_d, '', '', + 'taxratelocationnum', 'int', '', '', '', '', + 'amount', @money_type, '', '', + 'currency', 'char', 'NULL', 3, '', '', ], 'primary_key' => 'billpkgtaxratelocationnum', 'unique' => [], @@ -948,18 +960,19 @@ sub tables_hashref { 'cust_credit' => { 'columns' => [ - 'crednum', 'serial', '', '', '', '', - 'custnum', 'int', '', '', '', '', - '_date', @date_type, '', '', - 'amount', @money_type, '', '', - 'otaker', 'varchar', 'NULL', 32, '', '', - 'usernum', 'int', 'NULL', '', '', '', - 'reason', 'text', 'NULL', '', '', '', - 'reasonnum', 'int', 'NULL', '', '', '', - 'addlinfo', 'text', 'NULL', '', '', '', - 'closed', 'char', 'NULL', 1, '', '', - 'pkgnum', 'int', 'NULL', '', '', '', #desired pkgnum for pkg-balances - 'eventnum', 'int', 'NULL', '', '', '', #triggering event for commission + 'crednum', 'serial', '', '', '', '', + 'custnum', 'int', '', '', '', '', + '_date', @date_type, '', '', + 'amount',@money_type, '', '', + 'currency', 'char', 'NULL', 3, '', '', + 'otaker', 'varchar', 'NULL', 32, '', '', + 'usernum', 'int', 'NULL', '', '', '', + 'reason', 'text', 'NULL', '', '', '', + 'reasonnum', 'int', 'NULL', '', '', '', + 'addlinfo', 'text', 'NULL', '', '', '', + 'closed', 'char', 'NULL', 1, '', '', + 'pkgnum', 'int', 'NULL', '', '','',#desired pkgnum for pkg-balances + 'eventnum', 'int', 'NULL', '', '','',#triggering event for commission #'commission_agentnum', 'int', 'NULL', '', '', '', # ], 'primary_key' => 'crednum', @@ -1085,6 +1098,7 @@ sub tables_hashref { 'cdr_termination_percentage', 'decimal', 'NULL', '7,4', '', '', 'invoice_terms', 'varchar', 'NULL', $char_d, '', '', 'credit_limit', @money_typen, '', '', + 'credit_limit_currency', 'char', 'NULL', 3, '', '', 'archived', 'char', 'NULL', 1, '', '', 'email_csv_cdr', 'char', 'NULL', 1, '', '', 'accountcode_cdr', 'char', 'NULL', 1, '', '', @@ -1404,8 +1418,9 @@ sub tables_hashref { 'adjustmentnum', 'serial', '', '', '', '', 'custnum', 'int', '', '', '', '', 'taxname', 'varchar', '', $char_d, '', '', - 'amount', @money_type, '', '', - 'comment', 'varchar', 'NULL', $char_d, '', '', + 'amount', @money_type, '', '', + 'currency', 'char', 'NULL', 3, '', '', + 'comment', 'varchar', 'NULL', $char_d, '', '', 'billpkgnum', 'int', 'NULL', '', '', '', #more? no cust_bill_pkg_tax_location? ], @@ -1418,18 +1433,19 @@ sub tables_hashref { #off the cust_main_county for validation and to #provide a tax rate. 'columns' => [ - 'taxnum', 'serial', '', '', '', '', - 'district', 'varchar', 'NULL', 20, '', '', - 'city', 'varchar', 'NULL', $char_d, '', '', - 'county', 'varchar', 'NULL', $char_d, '', '', - 'state', 'varchar', 'NULL', $char_d, '', '', - 'country', 'char', '', 2, '', '', - 'taxclass', 'varchar', 'NULL', $char_d, '', '', - 'exempt_amount', @money_type, '', '', - 'tax', 'real', '', '', '', '', #tax % - 'taxname', 'varchar', 'NULL', $char_d, '', '', - 'setuptax', 'char', 'NULL', 1, '', '', # Y = setup tax exempt - 'recurtax', 'char', 'NULL', 1, '', '', # Y = recur tax exempt + 'taxnum', 'serial', '', '', '', '', + 'district', 'varchar', 'NULL', 20, '', '', + 'city', 'varchar', 'NULL', $char_d, '', '', + 'county', 'varchar', 'NULL', $char_d, '', '', + 'state', 'varchar', 'NULL', $char_d, '', '', + 'country', 'char', '', 2, '', '', + 'taxclass', 'varchar', 'NULL', $char_d, '', '', + 'exempt_amount', @money_type, '', '', + 'exempt_amount_currency', 'char', 'NULL', 3, '', '', + 'tax', 'real', '', '', '', '', #tax % + 'taxname', 'varchar', 'NULL', $char_d, '', '', + 'setuptax', 'char', 'NULL', 1, '', '', # Y = setup tax exempt + 'recurtax', 'char', 'NULL', 1, '', '', # Y = recur tax exempt ], 'primary_key' => 'taxnum', 'unique' => [], @@ -1526,19 +1542,17 @@ sub tables_hashref { 'cust_pay_pending' => { 'columns' => [ - 'paypendingnum','serial', '', '', '', '', - 'custnum', 'int', '', '', '', '', - 'paid', @money_type, '', '', - '_date', @date_type, '', '', - 'payby', 'char', '', 4, '', '', #CARD/BILL/COMP, should - # be index into payby - # table eventually - 'payinfo', 'varchar', 'NULL', 512, '', '', #see cust_main above - 'paymask', 'varchar', 'NULL', $char_d, '', '', - 'paydate', 'varchar', 'NULL', 10, '', '', + 'paypendingnum', 'serial', '', '', '', '', + 'custnum', 'int', '', '', '', '', + 'paid', @money_type, '', '', + 'currency', 'char', 'NULL', 3, '', '', + '_date', @date_type, '', '', + 'payby', 'char', '', 4, '', '', + 'payinfo', 'varchar', 'NULL', 512, '', '', + 'paymask', 'varchar', 'NULL', $char_d, '', '', + 'paydate', 'varchar', 'NULL', 10, '', '', 'recurring_billing', 'varchar', 'NULL', $char_d, '', '', - #'paybatch', 'varchar', 'NULL', $char_d, '', '', #for auditing purposes. - 'payunique', 'varchar', 'NULL', $char_d, '', '', #separate paybatch "unique" functions from current usage + 'payunique', 'varchar', 'NULL', $char_d, '', '', #separate paybatch "unique" functions from current usage 'pkgnum', 'int', 'NULL', '', '', '', #desired pkgnum for pkg-balances 'status', 'varchar', '', $char_d, '', '', @@ -1556,35 +1570,35 @@ sub tables_hashref { 'cust_pay' => { 'columns' => [ - 'paynum', 'serial', '', '', '', '', - 'custnum', 'int', '', '', '', '', - '_date', @date_type, '', '', - 'paid', @money_type, '', '', - 'otaker', 'varchar', 'NULL', 32, '', '', - 'usernum', 'int', 'NULL', '', '', '', - 'payby', 'char', '', 4, '', '', # CARD/BILL/COMP, should be - # index into payby table - # eventually - 'payinfo', 'varchar', 'NULL', 512, '', '', #see cust_main above - 'paymask', 'varchar', 'NULL', $char_d, '', '', - 'paydate', 'varchar', 'NULL', 10, '', '', - 'paybatch', 'varchar', 'NULL', $char_d, '', '', #for auditing purposes. - 'payunique', 'varchar', 'NULL', $char_d, '', '', #separate paybatch "unique" functions from current usage - 'closed', 'char', 'NULL', 1, '', '', + 'paynum', 'serial', '', '', '', '', + 'custnum', 'int', '', '', '', '', + '_date', @date_type, '', '', + 'paid', @money_type, '', '', + 'currency', 'char', 'NULL', 3, '', '', + 'otaker', 'varchar', 'NULL', 32, '', '', + 'usernum', 'int', 'NULL', '', '', '', + 'payby', 'char', '', 4, '', '', + 'payinfo', 'varchar', 'NULL', 512, '', '', + 'paymask', 'varchar', 'NULL', $char_d, '', '', + 'paydate', 'varchar', 'NULL', 10, '', '', + 'paybatch', 'varchar', 'NULL', $char_d, '', '',#for auditing purposes + 'payunique', 'varchar', 'NULL', $char_d, '', '',#separate paybatch "unique" functions from current usage + 'closed', 'char', 'NULL', 1, '', '', 'pkgnum', 'int', 'NULL', '', '', '', #desired pkgnum for pkg-balances + # cash/check deposit info fields - 'bank', 'varchar', 'NULL', $char_d, '', '', - 'depositor', 'varchar', 'NULL', $char_d, '', '', - 'account', 'varchar', 'NULL', 20, '', '', - 'teller', 'varchar', 'NULL', 20, '', '', + 'bank', 'varchar', 'NULL', $char_d, '', '', + 'depositor', 'varchar', 'NULL', $char_d, '', '', + 'account', 'varchar', 'NULL', 20, '', '', + 'teller', 'varchar', 'NULL', 20, '', '', - 'batchnum', 'int', 'NULL', '', '', '', #pay_batch foreign key + 'batchnum', 'int', 'NULL', '', '', '',#pay_batch foreign key # credit card/EFT fields (formerly in paybatch) - 'gatewaynum', 'int', 'NULL', '', '', '', # payment_gateway FK - 'processor', 'varchar', 'NULL', $char_d, '', '', # module name - 'auth', 'varchar','NULL',16, '', '', # CC auth number - 'order_number','varchar','NULL',$char_d, '', '', # transaction number + 'gatewaynum', 'int', 'NULL', '', '', '', # payment_gateway FK + 'processor', 'varchar', 'NULL', $char_d, '', '', # module name + 'auth', 'varchar', 'NULL', 16, '', '', # CC auth number + 'order_number','varchar', 'NULL', $char_d, '', '', # transaction number ], 'primary_key' => 'paynum', #i guess not now, with cust_pay_pending, if we actually make it here, we _do_ want to record it# 'unique' => [ [ 'payunique' ] ], @@ -1593,38 +1607,38 @@ sub tables_hashref { 'cust_pay_void' => { 'columns' => [ - 'paynum', 'int', '', '', '', '', - 'custnum', 'int', '', '', '', '', - '_date', @date_type, '', '', - 'paid', @money_type, '', '', - 'otaker', 'varchar', 'NULL', 32, '', '', - 'usernum', 'int', 'NULL', '', '', '', - 'payby', 'char', '', 4, '', '', # CARD/BILL/COMP, should be - # index into payby table - # eventually - 'payinfo', 'varchar', 'NULL', 512, '', '', #see cust_main above - 'paymask', 'varchar', 'NULL', $char_d, '', '', + 'paynum', 'int', '', '', '', '', + 'custnum', 'int', '', '', '', '', + '_date', @date_type, '', '', + 'paid', @money_type, '', '', + 'currency', 'char', 'NULL', 3, '', '', + 'otaker', 'varchar', 'NULL', 32, '', '', + 'usernum', 'int', 'NULL', '', '', '', + 'payby', 'char', '', 4, '', '', + 'payinfo', 'varchar', 'NULL', 512, '', '', + 'paymask', 'varchar', 'NULL', $char_d, '', '', #'paydate' ? - 'paybatch', 'varchar', 'NULL', $char_d, '', '', #for auditing purposes. - 'closed', 'char', 'NULL', 1, '', '', - 'pkgnum', 'int', 'NULL', '', '', '', #desired pkgnum for pkg-balances + 'paybatch', 'varchar', 'NULL', $char_d, '', '', #for auditing purposes. + 'closed', 'char', 'NULL', 1, '', '', + 'pkgnum', 'int', 'NULL', '', '', '', #desired pkgnum for pkg-balances + # cash/check deposit info fields 'bank', 'varchar', 'NULL', $char_d, '', '', 'depositor', 'varchar', 'NULL', $char_d, '', '', - 'account', 'varchar', 'NULL', 20, '', '', - 'teller', 'varchar', 'NULL', 20, '', '', - 'batchnum', 'int', 'NULL', '', '', '', #pay_batch foreign key + 'account', 'varchar', 'NULL', 20, '', '', + 'teller', 'varchar', 'NULL', 20, '', '', + 'batchnum', 'int', 'NULL', '', '', '', #pay_batch foreign key # credit card/EFT fields (formerly in paybatch) - 'gatewaynum', 'int', 'NULL', '', '', '', # payment_gateway FK - 'processor', 'varchar', 'NULL', $char_d, '', '', # module name - 'auth', 'varchar','NULL',16, '', '', # CC auth number - 'order_number', 'varchar','NULL',$char_d, '', '', # transaction number + 'gatewaynum', 'int', 'NULL', '', '', '', # payment_gateway FK + 'processor', 'varchar', 'NULL', $char_d, '', '', # module name + 'auth', 'varchar', 'NULL', 16, '', '', # CC auth number + 'order_number','varchar', 'NULL', $char_d, '', '', # transaction number #void fields - 'void_date', @date_type, '', '', - 'reason', 'varchar', 'NULL', $char_d, '', '', - 'void_usernum', 'int', 'NULL', '', '', '', + 'void_date', @date_type, '', '', + 'reason', 'varchar', 'NULL', $char_d, '', '', + 'void_usernum', 'int', 'NULL', '', '', '', ], 'primary_key' => 'paynum', 'unique' => [], @@ -1692,27 +1706,27 @@ sub tables_hashref { 'cust_pay_batch' => { #list of customers in current CARD/CHEK batch 'columns' => [ - 'paybatchnum', 'serial', '', '', '', '', - 'batchnum', 'int', '', '', '', '', - 'invnum', 'int', '', '', '', '', - 'custnum', 'int', '', '', '', '', - 'last', 'varchar', '', $char_d, '', '', - 'first', 'varchar', '', $char_d, '', '', - 'address1', 'varchar', '', $char_d, '', '', - 'address2', 'varchar', 'NULL', $char_d, '', '', - 'city', 'varchar', '', $char_d, '', '', - 'state', 'varchar', 'NULL', $char_d, '', '', - 'zip', 'varchar', 'NULL', 10, '', '', - 'country', 'char', '', 2, '', '', - # 'trancode', 'int', '', '', '', '' - 'payby', 'char', '', 4, '', '', - 'payinfo', 'varchar', 'NULL', 512, '', '', - #'exp', @date_type, '', '' - 'exp', 'varchar', 'NULL', 11, '', '', - 'payname', 'varchar', 'NULL', $char_d, '', '', - 'amount', @money_type, '', '', - 'status', 'varchar', 'NULL', $char_d, '', '', - 'error_message', 'varchar', 'NULL', $char_d, '', '', + 'paybatchnum', 'serial', '', '', '', '', + 'batchnum', 'int', '', '', '', '', + 'invnum', 'int', '', '', '', '', + 'custnum', 'int', '', '', '', '', + 'last', 'varchar', '', $char_d, '', '', + 'first', 'varchar', '', $char_d, '', '', + 'address1', 'varchar', '', $char_d, '', '', + 'address2', 'varchar', 'NULL', $char_d, '', '', + 'city', 'varchar', '', $char_d, '', '', + 'state', 'varchar', 'NULL', $char_d, '', '', + 'zip', 'varchar', 'NULL', 10, '', '', + 'country', 'char', '', 2, '', '', + 'payby', 'char', '', 4, '', '', + 'payinfo', 'varchar', 'NULL', 512, '', '', + #'exp', @date_type, '', '', + 'exp', 'varchar', 'NULL', 11, '', '', + 'payname', 'varchar', 'NULL', $char_d, '', '', + 'amount', @money_type, '', '', + 'currency', 'char', 'NULL', 3, '', '', + 'status', 'varchar', 'NULL', $char_d, '', '', + 'error_message', 'varchar', 'NULL', $char_d, '', '', ], 'primary_key' => 'paybatchnum', 'unique' => [], @@ -3559,8 +3573,9 @@ sub tables_hashref { 'cdr_carrier' => { 'columns' => [ - 'carrierid' => 'serial', '', '', '', '', - 'carriername' => 'varchar', '', $char_d, '', '', + 'carrierid' => 'serial', '', '', '', '', + 'carriername' => 'varchar', '', $char_d, '', '', + 'disabled' => 'char', 'NULL', 1, '', '', ], 'primary_key' => 'carrierid', 'unique' => [], @@ -3705,31 +3720,34 @@ sub tables_hashref { 'svc_phone' => { 'columns' => [ - 'svcnum', 'int', '', '', '', '', - 'countrycode', 'varchar', '', 3, '', '', - 'phonenum', 'varchar', '', 25, '', '', #12 ? - 'sim_imsi', 'varchar', 'NULL', 15, '', '', - 'pin', 'varchar', 'NULL', $char_d, '', '', - 'sip_password', 'varchar', 'NULL', $char_d, '', '', - 'phone_name', 'varchar', 'NULL', $char_d, '', '', - 'pbxsvc', 'int', 'NULL', '', '', '', - 'domsvc', 'int', 'NULL', '', '', '', - 'locationnum', 'int', 'NULL', '', '', '', - 'forwarddst', 'varchar', 'NULL', 15, '', '', - 'email', 'varchar', 'NULL', 255, '', '', - 'lnp_status', 'varchar', 'NULL', $char_d, '', '', - 'portable', 'char', 'NULL', 1, '', '', - 'lrn', 'char', 'NULL', 10, '', '', - 'lnp_desired_due_date', 'int', 'NULL', '', '', '', - 'lnp_due_date', 'int', 'NULL', '', '', '', - 'lnp_other_provider', 'varchar', 'NULL', $char_d, '', '', - 'lnp_other_provider_account', 'varchar', 'NULL', $char_d, '', '', - 'lnp_reject_reason', 'varchar', 'NULL', $char_d, '', '', + 'svcnum', 'int', '', '', '', '', + 'countrycode', 'varchar', '', 3, '', '', + 'phonenum', 'varchar', '', 25, '', '', #12 ? + 'sim_imsi', 'varchar', 'NULL', 15, '', '', + 'pin', 'varchar', 'NULL', $char_d, '', '', + 'sip_password', 'varchar', 'NULL', $char_d, '', '', + 'phone_name', 'varchar', 'NULL', $char_d, '', '', + 'pbxsvc', 'int', 'NULL', '', '', '', + 'domsvc', 'int', 'NULL', '', '', '', + 'locationnum', 'int', 'NULL', '', '', '', + 'forwarddst', 'varchar', 'NULL', 15, '', '', + 'email', 'varchar', 'NULL', 255, '', '', + 'lnp_status', 'varchar', 'NULL', $char_d, '', '', + 'portable', 'char', 'NULL', 1, '', '', + 'lrn', 'char', 'NULL', 10, '', '', + 'lnp_desired_due_date', 'int', 'NULL', '', '', '', + 'lnp_due_date', 'int', 'NULL', '', '', '', + 'lnp_other_provider', 'varchar', 'NULL', $char_d, '', '', + 'lnp_other_provider_account', 'varchar', 'NULL', $char_d, '', '', + 'lnp_reject_reason', 'varchar', 'NULL', $char_d, '', '', + 'sms_carrierid', 'int', 'NULL', '', '', '', + 'sms_account', 'varchar', 'NULL', '', '', '', + 'max_simultaneous', 'int', 'NULL', '', '', '', ], 'primary_key' => 'svcnum', - 'unique' => [], + 'unique' => [ [ 'sms_carrierid', 'sms_account'] ], 'index' => [ ['countrycode', 'phonenum'], ['pbxsvc'], ['domsvc'], - ['locationnum'], + ['locationnum'], ['sms_carrierid'], ], }, diff --git a/FS/FS/svc_phone.pm b/FS/FS/svc_phone.pm index ee25740c3..65a98d25a 100644 --- a/FS/FS/svc_phone.pm +++ b/FS/FS/svc_phone.pm @@ -173,6 +173,15 @@ sub table_info { select_label => 'domain', disable_inventory => 1, }, + 'sms_carrierid' => { label => 'SMS Carrier', + type => 'select', + select_table => 'cdr_carrier', + select_key => 'carrierid', + select_label => 'carriername', + disable_inventory => 1, + }, + 'sms_account' => { label => 'SMS Carrier Account', }, + 'max_simultaneous' => { label=>'Maximum number of simultaneous users' }, 'locationnum' => { label => 'E911 location', disable_inventory => 1, @@ -475,6 +484,9 @@ sub check { || $self->ut_textn('phone_name') || $self->ut_foreign_keyn('pbxsvc', 'svc_pbx', 'svcnum' ) || $self->ut_foreign_keyn('domsvc', 'svc_domain', 'svcnum' ) + || $self->ut_foreign_keyn('sms_carrierid', 'cdr_carrier', 'carrierid' ) + || $self->ut_alphan('sms_account') + || $self->ut_numbern('max_simultaneous') || $self->ut_foreign_keyn('locationnum', 'cust_location', 'locationnum') || $self->ut_numbern('forwarddst') || $self->ut_textn('email') @@ -635,6 +647,26 @@ sub radius_groups { (); } +=item sms_cdr_carrier + +=cut + +sub sms_cdr_carrier { + my $self = shift; + return '' unless $self->sms_carrierid; + qsearchs('cdr_carrier', { 'carrierid' => $self->sms_carrierid } ); +} + +=item sms_carriername + +=cut + +sub sms_carriername { + my $self = shift; + my $cdr_carrier = $self->sms_cdr_carrier or return ''; + $cdr_carrier->carriername; +} + =item phone_device Returns any FS::phone_device records associated with this service. |