%
my($ac);
if ( $cgi->param('error') ) {
  $ac = new FS::ac ( {
    map { $_, scalar($cgi->param($_)) } fields('ac')
  } );
} elsif ( $cgi->keywords ) { #editing
  my( $query ) = $cgi->keywords;
  $query =~ /^(\d+)$/;
  $ac=qsearchs('ac',{'acnum'=>$1});
} else { #adding
  $ac = new FS::ac {};
}
my $action = $ac->acnum ? 'Edit' : 'Add';
my $hashref = $ac->hashref;
print header("$action Access Concentrator", menubar(
  'Main Menu' => "$p",
  'View all access concentrators' => "${p}browse/ac.cgi",
));
print qq!Error: !, $cgi->param('error'),
      ""
  if $cgi->param('error');
print '
!;
if ($hashref->{acnum}) {
  print table();
  print <
     | Field Name | Field ValueEND
  #my @ac_fields = qsearch('ac_field', { acnum => $hashref->{acnum} });
  my @ac_fields = $ac->ac_field;
  foreach (@ac_fields) {
    print qq!\n | | !;
    my $part_ac_field = qsearchs('part_ac_field',
                          { acfieldpart => $_->getfield('acfieldpart') });
    print ' | ' . $part_ac_field->getfield('name') .
          ' | ' . $_->getfield('value') . ' | 
';
    print "\n";
  }
  print '
  
END
}
if ($hashref->{acnum}) {
  print qq!
IP Address Blocks:
! . table() .
        qq!|  | Network/Mask! .
        qq! | Gateway Address | Mask length | 
|---|
\n!;
  foreach (qsearch('ac_block', { acnum => $hashref->{acnum} })) {
    my $ip_addr = new NetAddr::IP($_->getfield('ip_gateway'),
                                  $_->getfield('ip_netmask'));
    print qq!|  | ! . $ip_addr->network->addr() . '/' .
          $ip_addr->network->mask() . qq!!;
    print qq! | ! . $_->getfield('ip_gateway') . qq!\n! .
          qq! | ! . $_->getfield('ip_netmask') . qq! | 
!;
  }
  print '
END
}
print <