Initial revision
[freeside.git] / htdocs / browse / part_svc.cgi
1 #!/usr/bin/perl -Tw
2 #
3 # part_svc.cgi: browse part_svc
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 use strict;
13 use CGI::Base;
14 use FS::UID qw(cgisuidsetup swapuid);
15 use FS::Record qw(qsearch);
16 use FS::part_svc qw(fields);
17 use FS::CGI qw(header menubar);
18
19 my($cgi) = new CGI::Base;
20 $cgi->get;
21
22 &cgisuidsetup($cgi);
23
24 SendHeaders(); # one guess.
25 print header('Service Part Listing', menubar(
26   'Main Menu' => '../',
27   'Add new service' => "../edit/part_svc.cgi",
28 )),<<END;
29     <BR>Click on service part number to edit.
30     <TABLE BORDER>
31       <TR>
32         <TH>Part #</TH>
33         <TH>Service</TH>
34         <TH>Table</TH>
35         <TH>Field</TH>
36         <TH>Action</TH>
37         <TH>Value</TH>
38       </TR>
39 END
40
41 my($part_svc);
42 foreach $part_svc ( sort {
43   $a->getfield('svcpart') <=> $b->getfield('svcpart')
44 } qsearch('part_svc',{}) ) {
45   my($hashref)=$part_svc->hashref;
46   my($svcdb)=$hashref->{svcdb};
47   my(@rows)=
48     grep $hashref->{${svcdb}.'__'.$_.'_flag'},
49       map { /^${svcdb}__(.*)$/; $1 }
50         grep ! /_flag$/,
51           grep /^${svcdb}__/,
52             fields('part_svc')
53   ;
54   my($rowspan)=scalar(@rows);
55   print <<END;
56       <TR>
57         <TD ROWSPAN=$rowspan><A HREF="../edit/part_svc.cgi?$hashref->{svcpart}">
58           $hashref->{svcpart}
59         </A></TD>
60         <TD ROWSPAN=$rowspan>$hashref->{svc}</TD>
61         <TD ROWSPAN=$rowspan>$hashref->{svcdb}</TD>
62 END
63   my($row);
64   foreach $row ( @rows ) {
65     my($flag)=$part_svc->getfield($svcdb.'__'.$row.'_flag');
66     print "<TD>$row</TD><TD>";
67     if ( $flag eq "D" ) { print "Default"; }
68       elsif ( $flag eq "F" ) { print "Fixed"; }
69       else { print "(Unknown!)"; }
70     print "</TD><TD>",$part_svc->getfield($svcdb."__".$row),"</TD></TR><TR>";
71   }
72 print "</TR>";
73 }
74
75 print <<END;
76     </TABLE>
77     </CENTER>
78   </BODY>
79 </HTML>
80 END
81