5 if ( $cgi->param('showdisabled') ) {
8 %search = ( 'disabled' => '' );
12 sort { $a->getfield('svcpart') <=> $b->getfield('svcpart') }
13 qsearch('part_svc', \%search );
14 my $total = scalar(@part_svc);
16 my %num_active_cust_svc = ();
17 if ( $cgi->param('active') ) {
18 my $active_sth = dbh->prepare(
19 'SELECT COUNT(*) FROM cust_svc WHERE svcpart = ?'
21 foreach my $part_svc ( @part_svc ) {
22 $active_sth->execute($part_svc->svcpart) or die $active_sth->errstr;
23 $num_active_cust_svc{$part_svc->svcpart} =
24 $active_sth->fetchrow_arrayref->[0];
26 @part_svc = sort { $num_active_cust_svc{$b->svcpart} <=>
27 $num_active_cust_svc{$a->svcpart} } @part_svc;
31 <%= header('Service Definition Listing', menubar( 'Main Menu' => $p) ) %>
34 function part_export_areyousure(href) {
35 if (confirm("Are you sure you want to delete this export?") == true)
36 window.location.href = href;
40 Service definitions are the templates for items you offer to your customers.<BR><BR>
42 <FORM METHOD="POST" ACTION="<%= $p %>edit/part_svc.cgi">
43 <A HREF="<%= $p %>edit/part_svc.cgi"><I>Add a new service definition</I></A><% if ( @part_svc ) { %> or <SELECT NAME="clone"><OPTION></OPTION>
44 <% foreach my $part_svc ( @part_svc ) { %>
45 <OPTION VALUE="<%= $part_svc->svcpart %>"><%= $part_svc->svc %></OPTION>
47 </SELECT><INPUT TYPE="submit" VALUE="Clone existing service">
51 <%= $total %> service definitions
52 <%= $cgi->param('showdisabled')
53 ? do { $cgi->param('showdisabled', 0);
54 '( <a href="'. $cgi->self_url. '">hide disabled services</a> )'; }
55 : do { $cgi->param('showdisabled', 1);
56 '( <a href="'. $cgi->self_url. '">show disabled services</a> )'; }
60 <TH COLSPAN=<%= $cgi->param('showdisabled') ? 2 : 3 %>>Service</TH>
62 <% if ( $cgi->param('active') ) { %>
63 <TH><FONT SIZE=-1>Customer<BR>Services</FONT></TH>
67 <TH COLSPAN=2>Modifier</TH>
70 <% foreach my $part_svc ( @part_svc ) {
71 my $hashref = $part_svc->hashref;
72 my $svcdb = $hashref->{svcdb};
73 my @dfields = fields($svcdb);
74 push @dfields, 'usergroup' if $svcdb eq 'svc_acct'; #kludge
76 grep { $_ ne 'svcnum' && $part_svc->part_svc_column($_)->columnflag }
79 my $rowspan = scalar(@fields) || 1;
80 my $url = "${p}edit/part_svc.cgi?$hashref->{svcpart}";
84 <TD ROWSPAN=<%= $rowspan %>><A HREF="<%= $url %>">
85 <%= $hashref->{svcpart} %></A></TD>
86 <% unless ( $cgi->param('showdisabled') ) { %>
87 <TD ROWSPAN=<%= $rowspan %>>
88 <%= $hashref->{disabled} ? 'DISABLED' : '' %></TD>
90 <TD ROWSPAN=<%= $rowspan %>><A HREF="<%= $url %>">
91 <%= $hashref->{svc} %></A></TD>
92 <TD ROWSPAN=<%= $rowspan %>>
93 <%= $hashref->{svcdb} %></TD>
94 <% if ( $cgi->param('active') ) { %>
95 <TD ROWSPAN=<%= $rowspan %>>
96 <FONT COLOR="#00CC00"><B><%= $num_active_cust_svc{$hashref->{svcpart}} %></B></FONT> <A HREF="<%=$p%>search/<%= $hashref->{svcdb} %>.cgi?svcpart=<%= $hashref->{svcpart} %>">active</A>
99 <TD ROWSPAN=<%= $rowspan %>><%= itable() %>
102 map { qsearchs('part_export', { exportnum => $_->exportnum } ) } qsearch('export_svc', { svcpart => $part_svc->svcpart } ) ;
103 foreach my $part_export (
104 map { qsearchs('part_export', { exportnum => $_->exportnum } ) }
105 qsearch('export_svc', { svcpart => $part_svc->svcpart } )
109 <TD><A HREF="<%= $p %>edit/part_export.cgi?<%= $part_export->exportnum %>"><%= $part_export->exportnum %>: <%= $part_export->exporttype %> to <%= $part_export->machine %></A></TD></TR>
114 foreach my $field ( @fields ) {
115 my $flag = $part_svc->part_svc_column($field)->columnflag;
117 <%= $n1 %><TD><%= $field %></TD><TD>
119 <% if ( $flag eq "D" ) { print "Default"; }
120 elsif ( $flag eq "F" ) { print "Fixed"; }
121 else { print "(Unknown!)"; }
123 </TD><TD><%= $part_svc->part_svc_column($field)->columnvalue%></TD>