% include('/elements/header.html', "Add/Edit Packages", '') %> <% include('/elements/error.html') %>
<% include('/elements/footer.html') %> <%init> die "access denied" unless $FS::CurrentUser::CurrentUser->access_right('Bulk change customer packages'); 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') } = $_->custom_comment; next if $_->disabled; $pkg{ $_ -> getfield('pkgpart') } = $_->getfield('pkg'); $comment{ $_ -> getfield('pkgpart') } = $_->custom_comment; } my($custnum, %remove_pkg); if ( $cgi->param('error') ) { $custnum = $cgi->param('custnum'); %remove_pkg = map { $_ => 1 } $cgi->param('remove_pkg'); } else { my($query) = $cgi->keywords; $query =~ /^(\d+)$/; $custnum = $1; %remove_pkg = (); } my $p1 = popurl(1); my @cust_pkg = qsearch('cust_pkg', { 'custnum' => $custnum, 'cancel' => '' } ); my @main_pkgs; my %supp_pkgs_of; # main pkgnum => arrayref of cust_pkgs foreach my $cust_pkg ( sort { $all_pkg{ $a->pkgpart } cmp $all_pkg{ $b->getfield('pkgpart') } } @cust_pkg ) # XXX does not properly handle recursive supplemental links { if ( my $main_pkgnum = $cust_pkg->main_pkgnum ) { $supp_pkgs_of{$main_pkgnum} ||= []; push @{ $supp_pkgs_of{$main_pkgnum} }, $cust_pkg; } else { push @main_pkgs, $cust_pkg; $supp_pkgs_of{$cust_pkg->pkgnum} ||= []; } } %init>