X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=FS%2FFS%2Fsvc_broadband.pm;h=d05ae72d08748afc82ed9eb57052f82605140e47;hp=b9c89cef7188643ae13f2df23e17010240db2e43;hb=20f03d52cc6c930f610c0b4466eeeeda54fdbb40;hpb=c2c351d0bf1e8c930290510c0ffcf3d455dad871 diff --git a/FS/FS/svc_broadband.pm b/FS/FS/svc_broadband.pm index b9c89cef7..d05ae72d0 100755 --- a/FS/FS/svc_broadband.pm +++ b/FS/FS/svc_broadband.pm @@ -2,10 +2,11 @@ package FS::svc_broadband; use base qw( FS::svc_Radius_Mixin FS::svc_Tower_Mixin + FS::svc_Torrus_Mixin FS::svc_IP_Mixin - FS::svc_MAC_Mixin + FS::MAC_Mixin FS::svc_Common - ); +); use strict; use vars qw($conf); @@ -95,6 +96,8 @@ points to. You can ask the object for a copy with the I method. =cut sub table_info { + my $conf = new FS::Conf; + my $ip_addr_required = $conf->exists('svc_broadband-allow_null_ip_addr') ? '' : '1'; { 'name' => 'Wireless broadband', 'name_plural' => 'Wireless broadband services', @@ -102,18 +105,30 @@ sub table_info { 'display_weight' => 50, 'cancel_weight' => 70, 'ip_field' => 'ip_addr', + 'manual_require' => 1, 'fields' => { 'svcnum' => 'Service', 'description' => 'Descriptive label', - 'speed_down' => 'Download speed (Kbps)', - 'speed_up' => 'Upload speed (Kbps)', - 'ip_addr' => 'IP address', - 'blocknum' => - { 'label' => 'Address block', - 'type' => 'select', - 'select_table' => 'addr_block', - 'select_key' => 'blocknum', - 'select_label' => 'cidr', + 'speed_up' => { + 'label' => 'Upload speed (Kbps)', + 'type' => 'fcc_477_speed', + 'def_info' => 'both upload and download speed must be set to FCC 477 information if using that modifier', + }, + 'speed_down' => { + 'label' => 'Download speed (Kbps)', + 'type' => 'fcc_477_speed', + 'def_info' => 'both upload and download speed must be set to FCC 477 information if using that modifier', + }, + 'ip_addr' => { + 'label' => 'IP address', + 'required' => $ip_addr_required, + }, + 'blocknum' => { + 'label' => 'Address block', + 'type' => 'select', + 'select_table' => 'addr_block', + 'select_key' => 'blocknum', + 'select_label' => 'cidr', 'disable_inventory' => 1, }, 'plan_id' => 'Service Plan Id', @@ -132,6 +147,7 @@ sub table_info { #select_table => 'radius_group', #select_key => 'groupnum', #select_label => 'groupname', + disable_select => 1, disable_inventory => 1, multiple => 1, }, @@ -144,6 +160,10 @@ sub table_info { type => 'search-svc_broadband', disable_inventory => 1, }, + 'serviceid' => 'Torrus serviceid', #but is should be hidden + 'speed_test_up' => { 'label' => 'Speed test upload (Kbps)' }, + 'speed_test_down' => { 'label' => 'Speed test download (Kbps)' }, + 'speed_test_latency' => 'Speed test latency (ms)', }, }; } @@ -349,6 +369,8 @@ sub check { || $self->ut_textn('description') || $self->ut_numbern('speed_up') || $self->ut_numbern('speed_down') + || $self->ut_numbern('speed_test_up') + || $self->ut_numbern('speed_test_down') || $self->ut_ipn('ip_addr') || $self->ut_hexn('mac_addr') || $self->ut_hexn('auth_key') @@ -363,6 +385,7 @@ sub check { || $self->ut_snumbern('rssi') || $self->ut_numbern('suid') || $self->ut_foreign_keyn('shared_svcnum', 'svc_broadband', 'svcnum') + || $self->ut_textn('serviceid') #too lenient? ; return $error if $error; @@ -497,6 +520,11 @@ sub _upgrade_data { #next SVC; } + require FS::Misc::FixIPFormat; + FS::Misc::FixIPFormat::fix_bad_addresses_in_table( + 'svc_broadband', 'svcnum', 'ip_addr', + ); + ''; } @@ -519,4 +547,3 @@ FS::part_svc, schema.html from the base documentation. =cut 1; -