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);
=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',
'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',
#select_table => 'radius_group',
#select_key => 'groupnum',
#select_label => 'groupname',
+ disable_select => 1,
disable_inventory => 1,
multiple => 1,
},
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)',
},
};
}
|| $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')
|| $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;
#next SVC;
}
+ require FS::Misc::FixIPFormat;
+ FS::Misc::FixIPFormat::fix_bad_addresses_in_table(
+ 'svc_broadband', 'svcnum', 'ip_addr',
+ );
+
'';
}
=cut
1;
-