123cb7d2a4d58ae18a0d814a0a951d65056c15f1
[freeside.git] / htdocs / browse / part_svc.cgi
1 #!/usr/bin/perl -Tw
2 #
3 # $Id: part_svc.cgi,v 1.11 1999-04-09 04:22:34 ivan Exp $
4 #
5 # ivan@sisd.com 97-nov-14, 97-dec-9
6 #
7 # Changes to allow page to work at a relative position in server
8 #       bmccane@maxbaud.net     98-apr-3
9 #
10 # lose background, FS::CGI ivan@sisd.com 98-sep-2
11 #
12 # $Log: part_svc.cgi,v $
13 # Revision 1.11  1999-04-09 04:22:34  ivan
14 # also table()
15 #
16 # Revision 1.10  1999/04/09 03:52:55  ivan
17 # explicit & for table/itable/ntable
18 #
19 # Revision 1.9  1999/01/19 05:13:29  ivan
20 # for mod_perl: no more top-level my() variables; use vars instead
21 # also the last s/create/new/;
22 #
23 # Revision 1.8  1999/01/18 09:41:19  ivan
24 # all $cgi->header calls now include ( '-expires' => 'now' ) for mod_perl
25 # (good idea anyway)
26 #
27 # Revision 1.7  1998/12/30 23:06:22  ivan
28 # typo
29 #
30 # Revision 1.6  1998/12/30 23:03:20  ivan
31 # bugfixes; fields isn't exported by derived classes
32 #
33 # Revision 1.5  1998/12/17 05:25:21  ivan
34 # fix visual and other bugs
35 #
36 # Revision 1.4  1998/11/21 02:26:22  ivan
37 # visual
38 #
39 # Revision 1.3  1998/11/20 23:10:57  ivan
40 # visual
41 #
42 # Revision 1.2  1998/11/20 08:50:37  ivan
43 # s/CGI::Base/CGI.pm, visual fixes
44 #
45
46 use strict;
47 use vars qw( $cgi $p $part_svc );
48 use CGI;
49 use CGI::Carp qw(fatalsToBrowser);
50 use FS::UID qw(cgisuidsetup);
51 use FS::Record qw(qsearch fields);
52 use FS::part_svc;
53 use FS::CGI qw(header menubar popurl table);
54
55 $cgi = new CGI;
56
57 &cgisuidsetup($cgi);
58
59 $p = popurl(2);
60
61 print $cgi->header( '-expires' => 'now' ), header('Service Part Listing', menubar(
62   'Main Menu' => $p,
63 )),<<END;
64     Services are items you offer to your customers.<BR><BR>
65 END
66 print &table(), <<END;
67       <TR>
68         <TH COLSPAN=2>Service</TH>
69         <TH>Table</TH>
70         <TH>Field</TH>
71         <TH COLSPAN=2>Modifier</TH>
72       </TR>
73 END
74
75 foreach $part_svc ( sort {
76   $a->getfield('svcpart') <=> $b->getfield('svcpart')
77 } qsearch('part_svc',{}) ) {
78   my($hashref)=$part_svc->hashref;
79   my($svcdb)=$hashref->{svcdb};
80   my(@rows)=
81     grep $hashref->{${svcdb}.'__'.$_.'_flag'},
82       map { /^${svcdb}__(.*)$/; $1 }
83         grep ! /_flag$/,
84           grep /^${svcdb}__/,
85             fields('part_svc')
86   ;
87   my($rowspan)=scalar(@rows) || 1;
88   print <<END;
89       <TR>
90         <TD ROWSPAN=$rowspan><A HREF="${p}edit/part_svc.cgi?$hashref->{svcpart}">
91           $hashref->{svcpart}</A></TD>
92         <TD ROWSPAN=$rowspan><A HREF="${p}edit/part_svc.cgi?$hashref->{svcpart}">          $hashref->{svc}</A></TD>
93         <TD ROWSPAN=$rowspan>$hashref->{svcdb}</TD>
94 END
95
96   my($n1)='';
97   my($row);
98   foreach $row ( @rows ) {
99     my($flag)=$part_svc->getfield($svcdb.'__'.$row.'_flag');
100     print $n1,"<TD>$row</TD><TD>";
101     if ( $flag eq "D" ) { print "Default"; }
102       elsif ( $flag eq "F" ) { print "Fixed"; }
103       else { print "(Unknown!)"; }
104     print "</TD><TD>",$part_svc->getfield($svcdb."__".$row),"</TD>";
105     $n1="</TR><TR>";
106   }
107 print "</TR>";
108 }
109
110 print <<END;
111       <TR>
112         <TD COLSPAN=2><A HREF="${p}edit/part_svc.cgi"><I>Add new service</I></A></TD>
113       </TR>
114     </TABLE>
115   </BODY>
116 </HTML>
117 END
118