summaryrefslogtreecommitdiff
path: root/httemplate/edit/process/tower.html
blob: fefa31475a249819228f76d3e5499025c4afc511 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
<& elements/process.html, 
    table       => 'tower',
    viewall_dir => 'browse',
    process_o2m => { 'table'  => 'tower_sector',
                     'fields' => [qw(
                       sectorname ip_addr height freq_mhz direction width
                       downtilt v_width db_high db_low power line_loss
                       antenna_gain hardware_typenum
                       sector_range up_rate_limit down_rate_limit
                     )],
                   },
    'precheck_callback' => sub {
      my ($cgi) = @_;
      my @required_tower_fields;
      my @required_sector_fields;

      foreach my $part_svc_broadband_export ( FS::tower_sector->part_export_svc_broadband ) {
        if ($part_svc_broadband_export and $part_svc_broadband_export->can('tower_sector_required_fields')) {
          my $required_fields = $part_svc_broadband_export->tower_sector_required_fields;
          foreach (keys %$required_fields) {
            my $fields = $required_fields->{$_};
            push @required_tower_fields, keys(%$fields) if $_ eq "tower";
            push @required_sector_fields, keys(%$fields) if $_ eq "sector";
          }
        }
      }

      foreach (@required_tower_fields){
        return "The tower $_ field is required" unless $cgi->param($_);
      }

      foreach (@required_sector_fields){
        foreach my $k ($cgi->param) {
          if ($k =~ /^sectornum\d+$/) {
           if ( $cgi->param($k.'_sectorname') ) {
             return "The sector(".$cgi->param($k.'_sectorname').") $_ field is required" unless $cgi->param($k.'_'.$_);
           }
          }
        }
      }
      '';
    },
&>