UI for multiple named taxes w/setup & recur exemptions
[freeside.git] / httemplate / browse / part_svc.cgi
1 <!-- mason kludge -->
2 <% 
3
4 my %search;
5 if ( $cgi->param('showdisabled') ) {
6   %search = ();
7 } else {
8   %search = ( 'disabled' => '' );
9 }
10
11 my @part_svc =
12   sort { $a->getfield('svcpart') <=> $b->getfield('svcpart') }
13     qsearch('part_svc', \%search );
14 my $total = scalar(@part_svc);
15
16 %>
17 <%= header('Service Definition Listing', menubar( 'Main Menu' => $p) ) %>
18
19 <SCRIPT>
20 function part_export_areyousure(href) {
21   if (confirm("Are you sure you want to delete this export?") == true)
22     window.location.href = href;
23 }
24 </SCRIPT>
25
26     Service definitions are the templates for items you offer to your customers.<BR><BR>
27
28 <FORM METHOD="POST" ACTION="<%= $p %>edit/part_svc.cgi">
29 <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>
30 <% foreach my $part_svc ( @part_svc ) { %>
31   <OPTION VALUE="<%= $part_svc->svcpart %>"><%= $part_svc->svc %></OPTION>
32 <% } %>
33 </SELECT><INPUT TYPE="submit" VALUE="Clone existing service">
34 <% } %>
35 </FORM><BR>
36
37 <%= $total %> service definitions
38 <%= $cgi->param('showdisabled')
39       ? do { $cgi->param('showdisabled', 0);
40              '( <a href="'. $cgi->self_url. '">hide disabled services</a> )'; }
41       : do { $cgi->param('showdisabled', 1);
42              '( <a href="'. $cgi->self_url. '">show disabled services</a> )'; }
43 %>
44 <%= table() %>
45   <TR>
46     <TH COLSPAN=<%= $cgi->param('showdisabled') ? 2 : 3 %>>Service</TH>
47     <TH>Table</TH>
48     <TH>Export</TH>
49     <TH>Field</TH>
50     <TH COLSPAN=2>Modifier</TH>
51   </TR>
52
53 <% foreach my $part_svc ( @part_svc ) {
54      my $hashref = $part_svc->hashref;
55      my $svcdb = $hashref->{svcdb};
56      my $svc_x = "FS::$svcdb"->new( { svcpart => $part_svc->svcpart } );
57      my @dfields = $svc_x->fields;
58      push @dfields, 'usergroup' if $svcdb eq 'svc_acct'; #kludge
59      my @fields =
60        grep { $svc_x->pvf($_)
61            or $_ ne 'svcnum' && $part_svc->part_svc_column($_)->columnflag }
62             @dfields ;
63      my $rowspan = scalar(@fields) || 1;
64      my $url = "${p}edit/part_svc.cgi?$hashref->{svcpart}";
65 %>
66
67   <TR>
68     <TD ROWSPAN=<%= $rowspan %>><A HREF="<%= $url %>">
69       <%= $hashref->{svcpart} %></A></TD>
70 <% unless ( $cgi->param('showdisabled') ) { %>
71     <TD ROWSPAN=<%= $rowspan %>>
72       <%= $hashref->{disabled} ? 'DISABLED' : '' %></TD>
73 <% } %>
74     <TD ROWSPAN=<%= $rowspan %>><A HREF="<%= $url %>">
75       <%= $hashref->{svc} %></A></TD>
76     <TD ROWSPAN=<%= $rowspan %>>
77       <%= $hashref->{svcdb} %></TD>
78     <TD ROWSPAN=<%= $rowspan %>><%= itable() %>
79 <%
80 #  my @part_export =
81 map { qsearchs('part_export', { exportnum => $_->exportnum } ) } qsearch('export_svc', { svcpart => $part_svc->svcpart } ) ;
82   foreach my $part_export (
83     map { qsearchs('part_export', { exportnum => $_->exportnum } ) } 
84       qsearch('export_svc', { svcpart => $part_svc->svcpart } )
85   ) {
86 %>
87       <TR>
88         <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>
89 <%  } %>
90       </TABLE></TD>
91
92 <%   my($n1)='';
93      foreach my $field ( @fields ) {
94        my $flag = $part_svc->part_svc_column($field)->columnflag;
95 %>
96      <%= $n1 %><TD><%= $field %></TD><TD>
97
98 <%     if ( $flag eq "D" ) { print "Default"; }
99          elsif ( $flag eq "F" ) { print "Fixed"; }
100          elsif ( not $flag ) { }
101          else { print "(Unknown!)"; }
102 %>
103        </TD><TD><%= $part_svc->part_svc_column($field)->columnvalue%></TD>
104 <%     $n1="</TR><TR>";
105      }
106 %>
107   </TR>
108 <% } %>
109 </TABLE>
110 </BODY>
111 </HTML>