1 package FS::part_pkg_fcc_option;
4 use base qw( FS::Record );
5 use FS::Record qw( qsearch qsearchs );
6 use Storable qw(dclone);
9 sub table { 'part_pkg_fcc_option'; }
13 FS::part_pkg_fcc_option - Object methods for part_pkg_fcc_option records
17 use FS::part_pkg_fcc_option;
19 $record = new FS::part_pkg_fcc_option \%hash;
20 $record = new FS::part_pkg_fcc_option { 'column' => 'value' };
22 $error = $record->insert;
24 $error = $new_record->replace($old_record);
26 $error = $record->delete;
28 $error = $record->check;
32 An FS::part_pkg_fcc_option object represents an option that classifies a
33 package definition on the FCC Form 477 report. FS::part_pkg_fcc_option
34 inherits from FS::Record. The following fields are currently supported:
44 A string identifying a report option, as an element of a static data
45 structure found within this module. See the C<part> method.
49 L<FS::part_pkg> foreign key.
53 The value of the report option, as an integer. Boolean options use 1
54 and NULL. Most other options have some kind of lookup table.
64 Checks all fields to make sure this is a valid FCC option. If there is
65 an error, returns the error, otherwise returns false. Called by the insert
74 $self->ut_numbern('num')
75 || $self->ut_alpha('fccoptionname')
76 || $self->ut_number('pkgpart')
77 || $self->ut_foreign_key('pkgpart', 'part_pkg', 'pkgpart')
78 || $self->ut_textn('optionvalue')
80 return $error if $error;
93 Returns a Tie::IxHash hashref of the media type strings (which are not
94 part of the report definition, per se) to arrayrefs of the technology
95 codes included in each one.
97 =item technology_labels
99 Returns a hashref relating each technology code to a label. Unlike the
100 media type strings, the technology codes are part of the formal report
105 tie our %media_types, 'Tie::IxHash', (
106 'Copper' => [ 11, 12, 10, 20, 30 ],
107 'Cable Modem' => [ 41, 42, 40 ],
109 'Satellite' => [ 60 ],
110 'Fixed Wireless' => [ 70 ],
111 'Mobile Wireless' => [ 80, 81, 82, 83, 84, 85, 86, 87, 88 ],
112 'Other' => [ 90, 0 ],
115 tie our %technology_labels, 'Tie::IxHash', (
120 30 => 'Other Copper Wireline',
121 40 => 'Other Cable Modem',
122 41 => 'Cable - DOCSIS 1, 1.1, 2.0',
123 42 => 'Cable - DOCSIS 3.0',
126 70 => 'Terrestrial Fixed Wireless',
128 80 => 'Mobile - WCDMA/UMTS/HSPA',
129 81 => 'Mobile - HSPA+',
130 82 => 'Mobile - EVDO/EVDO Rev A',
131 83 => 'Mobile - LTE',
132 84 => 'Mobile - WiMAX',
133 85 => 'Mobile - CDMA',
134 86 => 'Mobile - GSM',
135 87 => 'Mobile - Analog',
136 88 => 'Other Mobile',
138 90 => 'Electric Power Line',
142 tie our %spectrum_labels, 'Tie::IxHash', (
143 90 => '700 MHz Band',
144 91 => 'Cellular Band',
145 92 => 'Specialized Mobile Radio (SMR) Band',
146 93 => 'Advanced Wireless Services (AWS) 1 Band',
147 94 => 'Broadband Personal Communications Service (PCS) Band',
148 95 => 'Wireless Communications Service (WCS) Band',
149 96 => 'Broadband Radio Service/Educational Broadband Service Band',
150 97 => 'Satellite (e.g. L-band, Big LEO, Little LEO)',
151 98 => 'Unlicensed (including broadcast television "white spaces") Bands',
154 101 => 'Advanced Wireless Services (AWS) 3 Band',
155 102 => 'Advanced Wireless Services (AWS) 4 Band',
160 Storable::dclone(\%media_types);
163 sub technology_labels {
164 Storable::dclone(\%technology_labels);
167 sub spectrum_labels {
168 Storable::dclone(\%spectrum_labels);
175 L<FS::Record>, schema.html from the base documentation.