%
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 Value |
END
#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 <