%
my $conf = new FS::Conf;
my($query) = $cgi->keywords;
$query =~ /^(\d+)$/;
my $svcnum = $1;
my $svc_acct = qsearchs('svc_acct',{'svcnum'=>$svcnum});
die "Unknown svcnum" unless $svc_acct;
#false laziness w/all svc_*.cgi
my $cust_svc = qsearchs( 'cust_svc' , { 'svcnum' => $svcnum } );
my $pkgnum = $cust_svc->getfield('pkgnum');
my($cust_pkg, $custnum);
if ($pkgnum) {
  $cust_pkg = qsearchs( 'cust_pkg', { 'pkgnum' => $pkgnum } );
  $custnum = $cust_pkg->custnum;
} else {
  $cust_pkg = '';
  $custnum = '';
}
#eofalse
my $part_svc = qsearchs('part_svc',{'svcpart'=> $cust_svc->svcpart } );
die "Unknown svcpart" unless $part_svc;
my $domain;
if ( $svc_acct->domsvc ) {
  my $svc_domain = qsearchs('svc_domain', { 'svcnum' => $svc_acct->domsvc } );
  die "Unknown domain" unless $svc_domain;
  $domain = $svc_domain->domain;
} else {
  die "No svc_domain.svcnum record for svc_acct.domsvc: ". $cust_svc->domsvc;
}
%>
<%= header('Account View', menubar(
  ( ( $pkgnum || $custnum )
    ? ( "View this package (#$pkgnum)" => "${p}view/cust_pkg.cgi?$pkgnum",
        "View this customer (#$custnum)" => "${p}view/cust_main.cgi?$custnum",
      )
    : ( "Cancel this (unaudited) account" =>
          "javascript:areyousure(\'${p}misc/cancel-unaudited.cgi?$svcnum\')" )
  ),
  "Main menu" => $p,
)) %>
<%
#print qq!
Send account information!;
print qq!Edit this information
!.
      &ntable("#cccccc"). '
| '. &ntable("#cccccc",2).
      " | 
| Service number".
        " | $svcnum | 
".
      "| Service".
        " | ". $part_svc->svc. " | 
".
      "| Username".
        " | ". $svc_acct->username. " | 
"
;
print "| Domain".
        " | ". $domain, " | 
";
print "| Password | ";
my $password = $svc_acct->_password;
if ( $password =~ /^\*\w+\* (.*)$/ ) {
  $password = $1;
  print "(login disabled) ";
}
if ( $conf->exists('showpasswords') ) {
  print ' '. encode_entities($password). '';
} else {
  print "(hidden)";
}
print " | 
";
$password = '';
if ( $conf->exists('security_phrase') ) {
  my $sec_phrase = $svc_acct->sec_phrase;
  print '| Security phrase | '.
        $svc_acct->sec_phrase. ' | 
';
}
my $svc_acct_pop = qsearchs('svc_acct_pop',{'popnum'=>$svc_acct->popnum});
print "| Access number".
      " | ". $svc_acct_pop->text. ' | 
'
  if $svc_acct_pop;
if ($svc_acct->uid ne '') {
  print "| Uid".
          " | ". $svc_acct->uid. " | 
",
        "| Gid".
          " | ". $svc_acct->gid. " | 
",
        "| GECOS".
          " | ". $svc_acct->finger. " | 
",
        "| Home directory".
          " | ". $svc_acct->dir. " | 
",
        "| Shell".
          " | ". $svc_acct->shell. " | 
",
        "| Quota".
          " | ". $svc_acct->quota. " | 
"
  ;
} else {
  print "| (No shell account) | 
|---|
";
}
if ($svc_acct->slipip) {
  print "| IP address | ".
        ( ( $svc_acct->slipip eq "0.0.0.0" || $svc_acct->slipip eq '0e0' )
          ? "(Dynamic)"
          : $svc_acct->slipip
        ). "";
  my($attribute);
  foreach $attribute ( grep /^radius_/, fields('svc_acct') ) {
    #warn $attribute;
    $attribute =~ /^radius_(.*)$/;
    my $pattribute = $FS::raddb::attrib{$1};
    print " | 
| Radius (reply) $pattribute".
          " | ". $svc_acct->getfield($attribute).
          " | 
";
  }
  foreach $attribute ( grep /^rc_/, fields('svc_acct') ) {
    #warn $attribute;
    $attribute =~ /^rc_(.*)$/;
    my $pattribute = $FS::raddb::attrib{$1};
    print "| Radius (check) $pattribute:".
          " | ". $svc_acct->getfield($attribute).
          " | 
";
  }
} else {
  print "| (No SLIP/PPP account) | 
|---|
";
}
print '| RADIUS groups | '.
      join(' ', $svc_acct->radius_groups). '
 | 
';
print "".
      '
'. joblisting({'svcnum'=>$svcnum}, 1).
      "