RT# 83259 - adding/editing tower sector will no check for required fields prior to...
[freeside.git] / httemplate / edit / process / tower.html
1 <& elements/process.html, 
2     table       => 'tower',
3     viewall_dir => 'browse',
4     process_o2m => { 'table'  => 'tower_sector',
5                      'fields' => [qw(
6                        sectorname ip_addr height freq_mhz direction width
7                        downtilt v_width db_high db_low power line_loss
8                        antenna_gain hardware_typenum
9                        sector_range up_rate_limit down_rate_limit
10                      )],
11                    },
12     'precheck_callback' => sub {
13       my ($cgi) = @_;
14       my @required_tower_fields;
15       my @required_sector_fields;
16
17       foreach my $part_svc_broadband_export ( FS::tower_sector->part_export_svc_broadband ) {
18         if ($part_svc_broadband_export and $part_svc_broadband_export->can('tower_sector_required_fields')) {
19           my $required_fields = $part_svc_broadband_export->tower_sector_required_fields;
20           foreach (keys %$required_fields) {
21             my $fields = $required_fields->{$_};
22             push @required_tower_fields, keys(%$fields) if $_ eq "tower";
23             push @required_sector_fields, keys(%$fields) if $_ eq "sector";
24           }
25         }
26       }
27
28       foreach (@required_tower_fields){
29         return "The tower $_ field is required" unless $cgi->param($_);
30       }
31
32       foreach (@required_sector_fields){
33         foreach my $k ($cgi->param) {
34           if ($k =~ /^sectornum\d+$/) {
35            if ( $cgi->param($k.'_sectorname') ) {
36              return "The sector(".$cgi->param($k.'_sectorname').") $_ field is required" unless $cgi->param($k.'_'.$_);
37            }
38           }
39         }
40       }
41       '';
42     },
43 &>