X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;ds=sidebyside;f=httemplate%2Fedit%2Fcust_pkg.cgi;h=7ffbb1fc0e2da2fe81b40ed6523af6ce04ae8685;hb=a16891c16e0ddd389b32963b638cdfeadf86c447;hp=f927e1042f6954a3a426f0afef6ff1d388aee1ce;hpb=acd8edaf5852735359e32c70b78dabfeb7b32a89;p=freeside.git
diff --git a/httemplate/edit/cust_pkg.cgi b/httemplate/edit/cust_pkg.cgi
index f927e1042..7ffbb1fc0 100755
--- a/httemplate/edit/cust_pkg.cgi
+++ b/httemplate/edit/cust_pkg.cgi
@@ -7,7 +7,6 @@
%#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)
@@ -18,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' : '';
%
@@ -34,8 +27,15 @@
> |
<% $pkgnum %>: |
- <% $all_pkg{$pkgpart} %> - <% $all_comment{$pkgpart} %> |
+ <% $all_pkg{$pkgpart} |h %> - <% $all_comment{$pkgpart} |h %> |
+
+% foreach my $supp_pkg ( @{ $supp_pkgs_of{$pkgnum} } ) {
+
+ |
+ |
+ + <% $all_pkg{$supp_pkg->pkgpart} |h %> - <% $all_comment{$supp_pkg->pkgpart} |h %> |
+% }
% }
@@ -46,17 +46,17 @@
Order new packages
-%
+
%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 });
+%my %agent_pkgs = map { ( $_->pkgpart => $all_pkg{$_->pkgpart} ) }
+% ( qsearch('type_pkgs',{ typenum => $agent->typenum }),
+% qsearch('part_pkg', { agentnum => $cust_main->agentnum }),
+% );
%
%my $count = 0;
%my $pkgparts = 0;
-%
-
@@ -79,7 +79,7 @@ Order new packages
" VALUE="<% $value %>" SIZE="2" MAXLENGTH="2">
<% $pkgpart %>: |
- <% $pkg{$pkgpart} %> - <% $comment{$pkgpart}%> |
+ <% $pkg{$pkgpart} |h %> - <% $comment{$pkgpart} |h %> |
%
% $count ++ ;
@@ -128,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);
@@ -147,4 +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} ||= [];
+ }
+}
+
%init>