X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=httemplate%2Fedit%2Fcust_pkg.cgi;h=d860499406708f2d9c188ef7ee9a61a3b6660810;hb=f4aa07316a23cbbd1db83cf1bceb1d59111ff0d6;hp=ecc21195d9381bba41945f219e086226dafb686c;hpb=c648976f0b7975f2328ebd7ba8c711fad0ca4195;p=freeside.git diff --git a/httemplate/edit/cust_pkg.cgi b/httemplate/edit/cust_pkg.cgi index ecc21195d..d86049940 100755 --- a/httemplate/edit/cust_pkg.cgi +++ b/httemplate/edit/cust_pkg.cgi @@ -3,15 +3,11 @@ <% include('/elements/error.html') %>
- + -% + %#current packages -%my @cust_pkg = qsearch('cust_pkg', { 'custnum' => $custnum, 'cancel' => '' } ); -% %if (@cust_pkg) { -% - Current packages - select to remove (services are moved to a new package below) @@ -21,13 +17,7 @@

% -% -% foreach ( sort { $all_pkg{ $a->getfield('pkgpart') } -% cmp $all_pkg{ $b->getfield('pkgpart') } -% } -% @cust_pkg -% ) -% { +% foreach ( @main_pkgs ) { % my($pkgnum,$pkgpart)=( $_->getfield('pkgnum'), $_->getfield('pkgpart') ); % my $checked = $remove_pkg{$pkgnum} ? ' CHECKED' : ''; % @@ -37,8 +27,15 @@ - + + +% foreach my $supp_pkg ( @{ $supp_pkgs_of{$pkgnum} } ) { + + + + +% } % } @@ -82,7 +79,7 @@ Order new packages " VALUE="<% $value %>" SIZE="2" MAXLENGTH="2"> - + % % $count ++ ; @@ -131,10 +128,10 @@ my %all_comment = (); #} foreach (qsearch('part_pkg', {} )) { $all_pkg{ $_ -> getfield('pkgpart') } = $_->getfield('pkg'); - $all_comment{ $_ -> getfield('pkgpart') } = $_->getfield('comment'); + $all_comment{ $_ -> getfield('pkgpart') } = $_->custom_comment; next if $_->disabled; $pkg{ $_ -> getfield('pkgpart') } = $_->getfield('pkg'); - $comment{ $_ -> getfield('pkgpart') } = $_->getfield('comment'); + $comment{ $_ -> getfield('pkgpart') } = $_->custom_comment; } my($custnum, %remove_pkg); @@ -150,5 +147,24 @@ if ( $cgi->param('error') ) { 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} ||= []; + } +} +
> <% $pkgnum %>:<% $all_pkg{$pkgpart} %> - <% $all_comment{$pkgpart} %><% $all_pkg{$pkgpart} |h %> - <% $all_comment{$pkgpart} |h %>
+ <% $all_pkg{$supp_pkg->pkgpart} |h %> - <% $all_comment{$supp_pkg->pkgpart} |h %>
<% $pkgpart %>:<% $pkg{$pkgpart} %> - <% $comment{$pkgpart}%><% $pkg{$pkgpart} |h %> - <% $comment{$pkgpart} |h %>