invoice_sections_with_taxes per-agent, RT#79636
[freeside.git] / httemplate / edit / deploy_zone-mobile.html
1 <& elements/edit.html,
2     'name_singular' => 'deployment zone',
3     'table'         => 'deploy_zone',
4     'post_url'      => popurl(1).'process/deploy_zone-mobile.html',
5     'viewall_dir'   => 'browse',
6     'labels'        => {
7         'description'     => 'Description',
8         'agentnum'        => 'Agent',
9         'dbaname'         => 'Business name (if different from agent)',
10         'technology'      => 'Technology',
11         'spectrum'        => 'Spectrum',
12         'is_broadband',   => 'Broadband Internet',
13         'adv_speed_up'    => 'Upstream',
14         'adv_speed_down'  => 'Downstream',
15         'is_voice',       => 'Voice',
16         'vertexnum'       => '',
17         'active_date'     => 'Active since',
18     },
19     'fields'        => [
20         { field         => 'zonetype',
21           type          => 'hidden',
22           value         => 'P'
23         },
24         'description',
25         { field         => 'active_date',
26           type          => 'input-date-field',
27           curr_value_callback => sub {
28             my ($cgi, $object) = @_;
29             $cgi->param('active_date') || $object->active_date || time;
30           },
31         },
32         { field         => 'agentnum',
33           type          => 'select-agent',
34           disable_empty => 1,
35           viewall_right => 'Edit FCC report configuration for all agents',
36         },
37         'dbaname',
38         { field         => 'technology',
39           type          => 'select',
40           options       => $media_types->{'Mobile Wireless'},
41           labels        => $technology_labels,
42         },
43         { field         => 'spectrum',
44           type          => 'select',
45           options       => [ keys %$spectrum_labels ],
46           labels        => $spectrum_labels,
47         },
48         { field         => 'is_broadband', type => 'checkbox', value=>'Y' },
49         { field         => 'is_voice', type => 'checkbox', value=>'Y' },
50         { type => 'tablebreak-tr-title',
51           value => 'Advertised minimum speed (Mbps)' },
52         'adv_speed_down',
53         'adv_speed_up',
54         { type => 'tablebreak-tr-title', value => 'Footprint'},
55         { field               => 'vertices',
56           type                => 'polygon',
57           curr_value_callback => sub {
58             my ($cgi, $object) = @_;
59             $cgi->param('vertices') || $object->vertices_json;
60           },
61         }
62
63 #        { field => 'vertexnum',
64 #          type              => 'deploy_zone_vertex',
65 #          o2m_table         => 'deploy_zone_vertex',
66 #          m2_label          => ' ',
67 #          m2_error_callback => $m2_error_callback,
68 #        },
69     ],
70 &>
71 <%init>
72 my $curuser = $FS::CurrentUser::CurrentUser;
73 die "access denied"
74   unless $curuser->access_right([
75     'Edit FCC report configuration',
76     'Edit FCC report configuration for all agents',
77   ]);
78
79 my $technology_labels = FS::part_pkg_fcc_option->technology_labels;
80 my $spectrum_labels = FS::part_pkg_fcc_option->spectrum_labels;
81 my $media_types = FS::part_pkg_fcc_option->media_types;
82
83 my $m2_error_callback = sub {
84   my ($cgi, $deploy_zone) = @_;
85   my @vertexnums = sort { $a <=> $b } grep {
86     /^vertexnum\d+/ and length($cgi->param($_.'_latitude'))
87   } $cgi->param;
88
89   map {
90     my $k = $_;
91     my $s = 0;
92     FS::deploy_zone_vertex->new({
93       vertexnum   => scalar($cgi->param($k)),
94       zonenum     => $deploy_zone->zonenum,
95       latitude    => scalar($cgi->param($k.'_latitude')),
96       longitude   => scalar($cgi->param($k.'_longitude')),
97     })
98   } @vertexnums;
99 };
100
101 </%init>