fix tax edit UI
[freeside.git] / httemplate / browse / part_svc.cgi
index 5c33e68..3fece29 100755 (executable)
@@ -8,7 +8,9 @@ if ( $cgi->param('showdisabled') ) {
   %search = ( 'disabled' => '' );
 }
 
-my @part_svc = qsearch('part_svc', \%search );
+my @part_svc =
+  sort { $a->getfield('svcpart') <=> $b->getfield('svcpart') }
+    qsearch('part_svc', \%search );
 my $total = scalar(@part_svc);
 
 %>
@@ -21,8 +23,18 @@ function part_export_areyousure(href) {
 }
 </SCRIPT>
 
-    Services are items you offer to your customers.<BR><BR>
-<%= $total %> services
+    Service definitions are the templates for items you offer to your customers.<BR><BR>
+
+<FORM METHOD="POST" ACTION="<%= $p %>edit/part_svc.cgi">
+<A HREF="<%= $p %>edit/part_svc.cgi"><I>Add a new service definition</I></A><% if ( @part_svc ) { %>&nbsp;or&nbsp;<SELECT NAME="clone"><OPTION></OPTION>
+<% foreach my $part_svc ( @part_svc ) { %>
+  <OPTION VALUE="<%= $part_svc->svcpart %>"><%= $part_svc->svc %></OPTION>
+<% } %>
+</SELECT><INPUT TYPE="submit" VALUE="Clone existing service">
+<% } %>
+</FORM><BR>
+
+<%= $total %> service definitions
 <%= $cgi->param('showdisabled')
       ? do { $cgi->param('showdisabled', 0);
              '( <a href="'. $cgi->self_url. '">hide disabled services</a> )'; }
@@ -38,17 +50,16 @@ function part_export_areyousure(href) {
     <TH COLSPAN=2>Modifier</TH>
   </TR>
 
-<% foreach my $part_svc ( sort {
-     $a->getfield('svcpart') <=> $b->getfield('svcpart')
-   } @part_svc ) {
+<% foreach my $part_svc ( @part_svc ) {
      my $hashref = $part_svc->hashref;
      my $svcdb = $hashref->{svcdb};
-     my @dfields = fields($svcdb);
+     my $svc_x = "FS::$svcdb"->new( { svcpart => $part_svc->svcpart } );
+     my @dfields = $svc_x->fields;
      push @dfields, 'usergroup' if $svcdb eq 'svc_acct'; #kludge
      my @fields =
-       grep { $_ ne 'svcnum' && $part_svc->part_svc_column($_)->columnflag }
-            @dfields;
-
+       grep { $svc_x->pvf($_)
+           or $_ ne 'svcnum' && $part_svc->part_svc_column($_)->columnflag }
+            @dfields ;
      my $rowspan = scalar(@fields) || 1;
      my $url = "${p}edit/part_svc.cgi?$hashref->{svcpart}";
 %>
@@ -74,7 +85,7 @@ map { qsearchs('part_export', { exportnum => $_->exportnum } ) } qsearch('export
   ) {
 %>
       <TR>
-        <TD><A HREF="<%= $p %>edit/part_export.cgi?<%= $part_export->exportnum %>"><%= $part_export->exporttype %>&nbsp;to&nbsp;<%= $part_export->machine %></A></TD></TR>
+        <TD><A HREF="<%= $p %>edit/part_export.cgi?<%= $part_export->exportnum %>"><%= $part_export->exportnum %>:&nbsp;<%= $part_export->exporttype %>&nbsp;to&nbsp;<%= $part_export->machine %></A></TD></TR>
 <%  } %>
       </TABLE></TD>
 
@@ -86,6 +97,7 @@ map { qsearchs('part_export', { exportnum => $_->exportnum } ) } qsearch('export
 
 <%     if ( $flag eq "D" ) { print "Default"; }
          elsif ( $flag eq "F" ) { print "Fixed"; }
+         elsif ( not $flag ) { }
          else { print "(Unknown!)"; }
 %>
        </TD><TD><%= $part_svc->part_svc_column($field)->columnvalue%></TD>
@@ -94,10 +106,6 @@ map { qsearchs('part_export', { exportnum => $_->exportnum } ) } qsearch('export
 %>
   </TR>
 <% } %>
-
-  <TR>
-    <TD COLSPAN=<%= $cgi->param('showdisabled') ? 7 : 8 %>><A HREF="<%= $p %>edit/part_svc.cgi"><I>Add a new service definition</I></A></TD>
-  </TR>
 </TABLE>
 </BODY>
 </HTML>