service and package disable!
[freeside.git] / httemplate / browse / part_pkg.cgi
1 <%
2 #<!-- $Id: part_pkg.cgi,v 1.9 2001-12-27 09:26:14 ivan Exp $ -->
3
4 use strict;
5 use vars qw( $cgi $p $part_pkg );
6 use CGI;
7 use CGI::Carp qw(fatalsToBrowser);
8 use FS::UID qw(cgisuidsetup);
9 use FS::Record qw(qsearch qsearchs);
10 use FS::CGI qw(header menubar popurl table);
11 use FS::part_pkg;
12 use FS::pkg_svc;
13 use FS::part_svc;
14
15 $cgi = new CGI;
16
17 &cgisuidsetup($cgi);
18
19 $p = popurl(2);
20
21 my %search;
22 if ( $cgi->param('showdisabled') ) {
23   %search = ();
24 } else {
25   %search = ( 'disabled' => '' );
26 }
27
28 my @part_pkg = qsearch('part_pkg', \%search );
29 my $total = scalar(@part_pkg);
30
31 print header("Package Definition Listing",menubar(
32   'Main Menu' => $p,
33 )). "One or more services are grouped together into a package and given".
34   " pricing information. Customers purchase packages".
35   " rather than purchase services directly.<BR><BR>".
36   "$total packages ";
37
38 if ( $cgi->param('showdisabled') ) {
39   $cgi->param('showdisabled', 0);
40   print qq!( <a href="!. $cgi->self_url. qq!">hide disabled packages</a> )!;
41 } else {
42   $cgi->param('showdisabled', 1);
43   print qq!( <a href="!. $cgi->self_url. qq!">show disabled packages</a> )!;
44 }
45
46 my $colspan = $cgi->param('showdisabled') ? 2 : 3;
47 print &table(), <<END;
48       <TR>
49         <TH COLSPAN=2>Package</TH>
50         <TH>Comment</TH>
51         <TH><FONT SIZE=-1>Freq.</FONT></TH>
52         <TH><FONT SIZE=-1>Plan</FONT></TH>
53         <TH><FONT SIZE=-1>Data</FONT></TH>
54         <TH>Service</TH>
55         <TH><FONT SIZE=-1>Quan.</FONT></TH>
56       </TR>
57 END
58
59 foreach $part_pkg ( sort { 
60   $a->getfield('pkgpart') <=> $b->getfield('pkgpart')
61 } @part_pkg ) {
62   my($hashref)=$part_pkg->hashref;
63   my(@pkg_svc)=grep $_->getfield('quantity'),
64     qsearch('pkg_svc',{'pkgpart'=> $hashref->{pkgpart} });
65   my($rowspan)=scalar(@pkg_svc);
66   my $plandata;
67   if ( $hashref->{plan} ) {
68     $plandata = $hashref->{plandata};
69     $plandata =~ s/^(\w+)=/$1&nbsp;/mg;
70     $plandata =~ s/\n/<BR>/g;
71   } else {
72     $hashref->{plan} = "(legacy)";
73     $plandata = "Setup&nbsp;". $hashref->{setup}.
74                 "<BR>Recur&nbsp;". $hashref->{recur};
75   }
76   print <<END;
77       <TR>
78         <TD ROWSPAN=$rowspan><A HREF="${p}edit/part_pkg.cgi?$hashref->{pkgpart}">$hashref->{pkgpart}</A></TD>
79 END
80
81   unless ( $cgi->param('showdisabled') ) {
82     print "<TD ROWSPAN=$rowspan>";
83     print "DISABLED" if $hashref->{disabled};
84     print '</TD>';
85   }
86
87   print <<END;
88         <TD ROWSPAN=$rowspan><A HREF="${p}edit/part_pkg.cgi?$hashref->{pkgpart}">$hashref->{pkg}</A></TD>
89         <TD ROWSPAN=$rowspan>$hashref->{comment}</TD>
90         <TD ROWSPAN=$rowspan>$hashref->{freq}</TD>
91         <TD ROWSPAN=$rowspan>$hashref->{plan}</TD>
92         <TD ROWSPAN=$rowspan>$plandata</TD>
93 END
94
95   my($pkg_svc);
96   my($n)="";
97   foreach $pkg_svc ( @pkg_svc ) {
98     my($svcpart)=$pkg_svc->getfield('svcpart');
99     my($part_svc) = qsearchs('part_svc',{'svcpart'=> $svcpart });
100     print $n,qq!<TD><A HREF="${p}edit/part_svc.cgi?$svcpart">!,
101           $part_svc->getfield('svc'),"</A></TD><TD>",
102           $pkg_svc->getfield('quantity'),"</TD></TR>\n";
103     $n="<TR>";
104   }
105
106   print "</TR>";
107 }
108
109 print <<END;
110    <TR><TD COLSPAN=8><I><A HREF="${p}edit/part_pkg.cgi">Add a new package definition</A></I></TD></TR>
111     </TABLE>
112   </BODY>
113 </HTML>
114 END
115 %>