show service name and fully-qualified address on service add
[freeside.git] / httemplate / edit / svc_www.cgi
index d2c9ade..e13bb44 100644 (file)
@@ -29,12 +29,12 @@ if ( $cgi->param('error') ) {
 
   } else { #adding
 
-    $svc_www = new FS::svc_www({});
-
     foreach $_ (split(/-/,$query)) { #get & untaint pkgnum & svcpart
       $pkgnum=$1 if /^pkgnum(\d+)$/;
       $svcpart=$1 if /^svcpart(\d+)$/;
     }
+    $svc_www = new FS::svc_www { svcpart => $svcpart };
+
     $part_svc=qsearchs('part_svc',{'svcpart'=>$svcpart});
     die "No part_svc entry!" unless $part_svc;
 
@@ -53,7 +53,7 @@ if ( $cgi->param('error') ) {
 }
 my $action = $svc_www->svcnum ? 'Edit' : 'Add';
 
-my( %username, %arec );
+my( %svc_acct, %arec );
 if ($pkgnum) {
 
   my($u_part_svc,@u_acct_svcparts);
@@ -73,7 +73,8 @@ if ($pkgnum) {
       my($i_cust_svc);
       foreach $i_cust_svc ( qsearch('cust_svc',{'pkgnum'=>$cust_pkgnum,'svcpart'=>$acct_svcpart}) ) {
         my($svc_acct)=qsearchs('svc_acct',{'svcnum'=>$i_cust_svc->getfield('svcnum')});
-        $username{$svc_acct->getfield('svcnum')}=$svc_acct->getfield('username');
+        $svc_acct{$svc_acct->getfield('svcnum')}=
+          $svc_acct->part-svc->svc. ': '. $svc_acct->email;
       }  
     }
   }
@@ -161,12 +162,20 @@ foreach $_ (keys %arec) {
 print "</SELECT></TD></TR>";
 
 print '<TR><TD ALIGN="right">Username</TD><TD><SELECT NAME="usersvc" SIZE=1>';
-foreach $_ (keys %username) {
+foreach $_ (keys %svc_acct) {
   print "<OPTION", ($_ eq $usersvc) ? " SELECTED" : "",
-        qq! VALUE="$_">$username{$_}!;
+        qq! VALUE="$_">$svc_acct{$_}!;
 }
 print "</SELECT></TD></TR>";
 
+foreach my $field ($svc_www->virtual_fields) {
+  if ( $part_svc->part_svc_column($field)->columnflag ne 'F' ) {
+    # If the flag is X, it won't even show up in $svc_acct->virtual_fields.
+    print $svc_www->pvf($field)->widget('HTML', 'edit', 
+        $svc_www->getfield($field));
+  }
+}
+
 print '</TABLE><BR><INPUT TYPE="submit" VALUE="Submit">';
 
 print <<END;