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 margin
8                        sector_range up_rate_limit down_rate_limit
9                      )],
10                    },
11     'precheck_callback' => sub {
12       my ($cgi) = @_;
13       my @required_tower_fields;
14       my @required_sector_fields;
15
16       foreach my $part_svc_broadband_export ( FS::tower_sector->part_export_svc_broadband ) {
17         if ($part_svc_broadband_export and $part_svc_broadband_export->can('tower_sector_required_fields')) {
18           my $required_fields = $part_svc_broadband_export->tower_sector_required_fields;
19           foreach (keys %$required_fields) {
20             my $fields = $required_fields->{$_};
21             push @required_tower_fields, keys(%$fields) if $_ eq "tower";
22             push @required_sector_fields, keys(%$fields) if $_ eq "sector";
23           }
24         }
25       }
26
27       foreach (@required_tower_fields){
28         return "The tower $_ field is required" unless $cgi->param($_);
29       }
30
31       foreach (@required_sector_fields){
32         foreach my $k ($cgi->param) {
33           if ($k =~ /^sectornum\d+$/) {
34            if ( $cgi->param($k.'_sectorname') ) {
35              return "The sector(".$cgi->param($k.'_sectorname').") $_ field is required" unless $cgi->param($k.'_'.$_);
36            }
37           }
38         }
39       }
40       '';
41     },
42 &>