d4c359b287d57946a7ad1adc01f0a68ab9747911
[freeside.git] / htdocs / browse / part_pkg.cgi
1 #!/usr/bin/perl -Tw
2 #
3 # $Id: part_pkg.cgi,v 1.8 1999-04-09 04:22:34 ivan Exp $
4 #
5 # ivan@sisd.com 97-dec-5,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_pkg.cgi,v $
13 # Revision 1.8  1999-04-09 04:22:34  ivan
14 # also table()
15 #
16 # Revision 1.7  1999/04/09 03:52:55  ivan
17 # explicit & for table/itable/ntable
18 #
19 # Revision 1.6  1999/01/19 05:13:27  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.5  1999/01/18 09:41:17  ivan
24 # all $cgi->header calls now include ( '-expires' => 'now' ) for mod_perl
25 # (good idea anyway)
26 #
27 # Revision 1.4  1998/12/17 05:25:19  ivan
28 # fix visual and other bugs
29 #
30 # Revision 1.3  1998/11/21 07:23:45  ivan
31 # visual
32 #
33 # Revision 1.2  1998/11/21 07:00:32  ivan
34 # visual
35 #
36
37 use strict;
38 use vars qw( $cgi $p $part_pkg );
39 use CGI;
40 use CGI::Carp qw(fatalsToBrowser);
41 use FS::UID qw(cgisuidsetup swapuid);
42 use FS::Record qw(qsearch qsearchs);
43 use FS::CGI qw(header menubar popurl table);
44 use FS::part_pkg;
45 use FS::pkg_svc;
46 use FS::part_svc;
47
48 $cgi = new CGI;
49
50 &cgisuidsetup($cgi);
51
52 $p = popurl(2);
53
54 print $cgi->header( '-expires' => 'now' ), header("Package Part Listing",menubar(
55   'Main Menu' => $p,
56 )), "One or more services are grouped together into a package and given",
57   " pricing information. Customers purchase packages, not services.<BR><BR>", 
58   &table(), <<END;
59     <TABLE BORDER>
60       <TR>
61         <TH COLSPAN=2>Package</TH>
62         <TH>Comment</TH>
63         <TH><FONT SIZE=-1>Setup Fee</FONT></TH>
64         <TH><FONT SIZE=-1>Freq.</FONT></TH>
65         <TH><FONT SIZE=-1>Recur. Fee</FONT></TH>
66         <TH>Service</TH>
67         <TH><FONT SIZE=-1>Quan.</FONT></TH>
68       </TR>
69 END
70
71 foreach $part_pkg ( sort { 
72   $a->getfield('pkgpart') <=> $b->getfield('pkgpart')
73 } qsearch('part_pkg',{}) ) {
74   my($hashref)=$part_pkg->hashref;
75   my(@pkg_svc)=grep $_->getfield('quantity'),
76     qsearch('pkg_svc',{'pkgpart'=> $hashref->{pkgpart} });
77   my($rowspan)=scalar(@pkg_svc);
78   print <<END;
79       <TR>
80         <TD ROWSPAN=$rowspan><A HREF="${p}edit/part_pkg.cgi?$hashref->{pkgpart}">
81           $hashref->{pkgpart}
82         </A></TD>
83         <TD ROWSPAN=$rowspan><A HREF="${p}edit/part_pkg.cgi?$hashref->{pkgpart}">$hashref->{pkg}</A></TD>
84         <TD ROWSPAN=$rowspan>$hashref->{comment}</TD>
85         <TD ROWSPAN=$rowspan>$hashref->{setup}</TD>
86         <TD ROWSPAN=$rowspan>$hashref->{freq}</TD>
87         <TD ROWSPAN=$rowspan>$hashref->{recur}</TD>
88 END
89
90   my($pkg_svc);
91   my($n)="";
92   foreach $pkg_svc ( @pkg_svc ) {
93     my($svcpart)=$pkg_svc->getfield('svcpart');
94     my($part_svc) = qsearchs('part_svc',{'svcpart'=> $svcpart });
95     print $n,qq!<TD><A HREF="${p}edit/part_svc.cgi?$svcpart">!,
96           $part_svc->getfield('svc'),"</A></TD><TD>",
97           $pkg_svc->getfield('quantity'),"</TD></TR>\n";
98     $n="<TR>";
99   }
100
101   print "</TR>";
102 }
103
104 print <<END;
105    <TR><TD COLSPAN=2><I><A HREF="${p}edit/part_pkg.cgi">Add new package</A></I></TD></TR>
106     </TABLE>
107   </BODY>
108 </HTML>
109 END
110