X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=httemplate%2Fedit%2Fcust_pkg.cgi;h=7ffbb1fc0e2da2fe81b40ed6523af6ce04ae8685;hp=7a0432c5d677c77edd96742a4c5859039832d119;hb=833cfe5c9938d33c3e6b97ed610c25a7afa6eb04;hpb=3ce7691203a7737406bf2d4442f7fd84b81f847e diff --git a/httemplate/edit/cust_pkg.cgi b/httemplate/edit/cust_pkg.cgi index 7a0432c5d..7ffbb1fc0 100755 --- a/httemplate/edit/cust_pkg.cgi +++ b/httemplate/edit/cust_pkg.cgi @@ -1,52 +1,13 @@ -% -% -%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'); -%} else { -% my($query) = $cgi->keywords; -% $query =~ /^(\d+)$/; -% $custnum = $1; -% %remove_pkg = (); -%} -% -%my $p1 = popurl(1); -% -% <% include('/elements/header.html', "Add/Edit Packages", '') %> -% if ( $cgi->param('error') ) { - - Error: <% $cgi->param('error') %> -% } +<% 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) @@ -56,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' : ''; % @@ -72,8 +27,15 @@ - + + +% foreach my $supp_pkg ( @{ $supp_pkgs_of{$pkgnum} } ) { + + + + +% } % } @@ -84,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; -% -
> <% $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 %>
@@ -117,7 +79,7 @@ Order new packages " VALUE="<% $value %>" SIZE="2" MAXLENGTH="2"> - + % % $count ++ ; @@ -150,3 +112,59 @@ Order new packages <% 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} ||= []; + } +} + +
<% $pkgpart %>:<% $pkg{$pkgpart} %> - <% $comment{$pkgpart}%><% $pkg{$pkgpart} |h %> - <% $comment{$pkgpart} |h %>