3 # $Id: part_pkg.cgi,v 1.2 1998-11-15 13:14:55 ivan Exp $
5 # part_pkg.cgi: Add/Edit package (output form)
7 # ivan@sisd.com 97-dec-10
9 # Changes to allow page to work at a relative position in server
10 # Changed to display services 2-wide in table
11 # bmccane@maxbaud.net 98-apr-3
13 # use FS::CGI, added inline documentation ivan@sisd.com 98-jul-12
15 # $Log: part_pkg.cgi,v $
16 # Revision 1.2 1998-11-15 13:14:55 ivan
17 # first pass as per-user custom pricing
22 use CGI::Carp qw(fatalsToBrowser);
23 use FS::UID qw(cgisuidsetup);
24 use FS::Record qw(qsearch qsearchs);
28 use FS::CGI qw(header menubar);
34 if ( $cgi->param('clone') =~ /^(\d+)$/ ) {
35 $cgi->param('clone', $1);
37 $cgi->param('clone', '');
39 if ( $cgi->param('pkgnum') =~ /^(\d+)$/ ) {
40 $cgi->param('pkgnum', $1);
42 $cgi->param('pkgnum', '');
45 my($part_pkg,$action);
46 if ( $cgi->param('clone') ) {
47 $action='Custom Pricing';
49 qsearchs('part_pkg', { 'pkgpart' => $cgi->param('clone') } );
50 $part_pkg = $old_part_pkg->clone;
51 } elsif ( $cgi->keywords =~ /^(\d+)$/ ) {
53 $part_pkg=qsearchs('part_pkg',{'pkgpart'=>$1});
56 $part_pkg=create FS::part_pkg {};
58 my($hashref)=$part_pkg->hashref;
60 print $cgi->header, header("$action Package Definition", menubar(
62 'View all packages' => '../browse/part_pkg.cgi',
63 )), '<FORM ACTION="process/part_pkg.cgi" METHOD=POST>';
65 if ( $cgi->param('clone') ) {
66 print qq!<INPUT TYPE="hidden" NAME="clone" VALUE="!, $cgi->param('clone'), qq!">!;
68 if ( $cgi->param('pkgnum') ) {
69 print qq!<INPUT TYPE="hidden" NAME="pkgnum" VALUE="!, $cgi->param('pkgnum'), qq!">!;
72 print qq!<INPUT TYPE="hidden" NAME="pkgpart" VALUE="$hashref->{pkgpart}">!,
73 "Package Part #", $hashref->{pkgpart} ? $hashref->{pkgpart} : "(NEW)";
77 Package (customer-visable) <INPUT TYPE="text" NAME="pkg" SIZE=32 VALUE="$hashref->{pkg}">
78 Comment (customer-hidden) <INPUT TYPE="text" NAME="comment" SIZE=32 VALUE="$hashref->{comment}">
79 Setup fee for this package <INPUT TYPE="text" NAME="setup" VALUE="$hashref->{setup}">
80 Recurring fee for this package <INPUT TYPE="text" NAME="recur" VALUE="$hashref->{recur}">
81 Frequency (months) of recurring fee <INPUT TYPE="text" NAME="freq" VALUE="$hashref->{freq}">
87 unless ( $cgi->param('clone') ) {
89 Enter the quantity of each service this package includes.<BR><BR>
90 <TABLE BORDER><TR><TH><FONT SIZE=-1>Quan.</FONT></TH><TH>Service</TH>
91 <TH><FONT SIZE=-1>Quan.</FONT></TH><TH>Service</TH></TR>
97 foreach $part_svc ( qsearch('part_svc',{}) ) {
99 my($svcpart)=$part_svc->getfield('svcpart');
100 my($pkg_svc)=qsearchs('pkg_svc',{
101 'pkgpart' => $cgi->param('clone') || $part_pkg->getfield('pkgpart'),
102 'svcpart' => $svcpart,
103 }) || create FS::pkg_svc({
104 'pkgpart' => $part_pkg->getfield('pkgpart'),
105 'svcpart' => $svcpart,
108 next unless $pkg_svc;
110 unless ( $cgi->param('clone') ) {
111 print qq!<TR>! if $count == 0 ;
112 print qq!<TD><INPUT TYPE="text" NAME="pkg_svc$svcpart" SIZE=3 VALUE="!,
113 $pkg_svc->getfield('quantity') || 0,qq!"></TD>!,
114 qq!<TD><A HREF="part_svc.cgi?!,$part_svc->getfield('svcpart'),
115 qq!">!, $part_svc->getfield('svc'), "</A></TD>";
123 print qq!<INPUT TYPE="hidden" NAME="pkg_svc$svcpart" VALUE="!,
124 $pkg_svc->getfield('quantity') || 0, qq!">\n!;
128 unless ( $cgi->param('clone') ) {
129 print qq!</TR>! if ($count != 0) ;
133 print qq!<BR><INPUT TYPE="submit" VALUE="!,
134 $hashref->{pkgpart} ? "Apply changes" : "Add package",