+<!-- mason kludge -->
<%
-#<!-- $Id: cust_pkg.cgi,v 1.3 2001-10-26 10:24:56 ivan Exp $ -->
-use strict;
-use vars qw( $cgi %pkg %comment $custnum $p1 @cust_pkg
- $cust_main $agent $type_pkgs $count %remove_pkg $pkgparts );
-use CGI;
-use CGI::Carp qw(fatalsToBrowser);
-use FS::UID qw(cgisuidsetup);
-use FS::Record qw(qsearch qsearchs);
-use FS::CGI qw(header popurl);
-use FS::part_pkg;
-use FS::type_pkgs;
-
-$cgi = new CGI;
-&cgisuidsetup($cgi);
-
-%pkg = ();
-%comment = ();
-foreach (qsearch('part_pkg', {})) {
+my %pkg = ();
+my %comment = ();
+my %all_pkg = ();
+my %all_comment = ();
+#foreach (qsearch('part_pkg', { 'disabled' => '' })) {
+# $pkg{ $_ -> getfield('pkgpart') } = $_->getfield('pkg');
+# $comment{ $_ -> getfield('pkgpart') } = $_->getfield('comment');
+#}
+foreach (qsearch('part_pkg', {} )) {
+ $all_pkg{ $_ -> getfield('pkgpart') } = $_->getfield('pkg');
+ $all_comment{ $_ -> getfield('pkgpart') } = $_->getfield('comment');
+ next if $_->disabled;
$pkg{ $_ -> getfield('pkgpart') } = $_->getfield('pkg');
$comment{ $_ -> getfield('pkgpart') } = $_->getfield('comment');
}
+my($custnum, %remove_pkg);
if ( $cgi->param('error') ) {
$custnum = $cgi->param('custnum');
%remove_pkg = map { $_ => 1 } $cgi->param('remove_pkg');
my($query) = $cgi->keywords;
$query =~ /^(\d+)$/;
$custnum = $1;
- undef %remove_pkg;
+ %remove_pkg = ();
}
-$p1 = popurl(1);
-print $cgi->header( @FS::CGI::header ), header("Add/Edit Packages", '');
+my $p1 = popurl(1);
+print header("Add/Edit Packages", '');
print qq!<FONT SIZE="+1" COLOR="#ff0000">Error: !, $cgi->param('error'),
"</FONT>"
print qq!<INPUT TYPE="hidden" NAME="custnum" VALUE="$custnum">!;
#current packages
-@cust_pkg = qsearch('cust_pkg',{ 'custnum' => $custnum, 'cancel' => '' } );
+my @cust_pkg = qsearch('cust_pkg',{ 'custnum' => $custnum, 'cancel' => '' } );
if (@cust_pkg) {
print <<END;
Current packages - select to remove (services are moved to a new package below)
+<TABLE>
+ <TR STYLE="background-color: #cccccc;">
+ <TH COLSPAN="2">Pkg #</TH>
+ <TH>Package description</TH>
+ </TR>
<BR><BR>
END
- my ($count) = 0 ;
- print qq!<TABLE>! ;
- foreach (@cust_pkg) {
- print '<TR>' if $count == 0;
+ foreach (sort { $all_pkg{$a->getfield('pkgpart')} cmp $all_pkg{$b->getfield('pkgpart')} } @cust_pkg) {
my($pkgnum,$pkgpart)=( $_->getfield('pkgnum'), $_->getfield('pkgpart') );
- print qq!<TD><INPUT TYPE="checkbox" NAME="remove_pkg" VALUE="$pkgnum"!;
- print " CHECKED" if $remove_pkg{$pkgnum};
- print qq!>$pkgnum: $pkg{$pkgpart} - $comment{$pkgpart}</TD>\n!;
- $count ++ ;
- if ($count == 2)
- {
- $count = 0 ;
- print qq!</TR>\n! ;
- }
+ my $checked = $remove_pkg{$pkgnum} ? ' CHECKED' : '';
+ print <<END;
+ <TR>
+ <TD><INPUT TYPE="checkbox" NAME="remove_pkg" VALUE="$pkgnum"${checked}></TD>
+ <TD ALIGN="right">$pkgnum:</TD>\n
+ <TD>$all_pkg{$pkgpart} - $all_comment{$pkgpart}</TD>
+ </TR>
+END
}
print qq!</TABLE><BR><BR>!;
}
Order new packages<BR><BR>
END
-$cust_main = qsearchs('cust_main',{'custnum'=>$custnum});
-$agent = qsearchs('agent',{'agentnum'=> $cust_main->agentnum });
+my $cust_main = qsearchs('cust_main',{'custnum'=>$custnum});
+my $agent = qsearchs('agent',{'agentnum'=> $cust_main->agentnum });
+
+my %agent_pkgs = map { ( $_->pkgpart , $all_pkg{$_->pkgpart} ) }
+ qsearch('type_pkgs',{'typenum'=> $agent->typenum });
-$count = 0;
-$pkgparts = 0;
-print qq!<TABLE>!;
-foreach $type_pkgs ( qsearch('type_pkgs',{'typenum'=> $agent->typenum }) ) {
+my $count = 0;
+my $pkgparts = 0;
+print <<END;
+<TABLE>
+ <TR STYLE="background-color: #cccccc;">
+ <TH>Qty.</TH>
+ <TH COLSPAN="2">Package Description</TH>
+ </TR>
+END
+#foreach my $type_pkgs ( qsearch('type_pkgs',{'typenum'=> $agent->typenum }) ) {
+foreach my $pkgpart ( sort { $agent_pkgs{$a} cmp $agent_pkgs{$b} }
+ keys(%agent_pkgs) ) {
$pkgparts++;
- my($pkgpart)=$type_pkgs->pkgpart;
- print qq!<TR>! if ( $count == 0 );
+ next unless exists $pkg{$pkgpart}; #skip disabled ones
+ #print qq!<TR>! if ( $count == 0 );
my $value = $cgi->param("pkg$pkgpart") || 0;
print <<END;
- <TD>
- <INPUT TYPE="text" NAME="pkg$pkgpart" VALUE="$value" SIZE="2" MAXLENGTH="2">
- $pkgpart: $pkg{$pkgpart} - $comment{$pkgpart}</TD>\n
+ <TR>
+ <TD><INPUT TYPE="text" NAME="pkg$pkgpart" VALUE="$value" SIZE="2" MAXLENGTH="2"></TD>
+ <TD ALIGN="right">$pkgpart:</TD>
+ <TD>$pkg{$pkgpart} - $comment{$pkgpart}</TD>
+ </TR>
END
$count ++ ;
- if ( $count == 2 ) {
- print qq!</TR>\n! ;
- $count = 0;
- }
+ #if ( $count == 2 ) {
+ # print qq!</TR>\n! ;
+ # $count = 0;
+ #}
}
print qq!</TABLE>!;