X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=httemplate%2Fview%2Fcust_main%2Fpackages%2Fsection.html;h=16016626406fcd1471391e8b65054b50be6deba6;hb=8c842e33466e953710168bb65c2bbb5765dc537f;hp=45365a0031fae6df6fec91ac4406705c044dbc15;hpb=0fb307c305e4bc2c9c27dc25a3308beae3a4d33c;p=freeside.git diff --git a/httemplate/view/cust_main/packages/section.html b/httemplate/view/cust_main/packages/section.html index 45365a003..160166264 100755 --- a/httemplate/view/cust_main/packages/section.html +++ b/httemplate/view/cust_main/packages/section.html @@ -1,52 +1,87 @@ % if ( @$packages ) { -% my $bgcolor1 = '#eeeeee'; -% my $bgcolor2 = '#ffffff'; -% my $bgcolor = ''; - + % #my $width = $show_location ? 'WIDTH="25%"' : 'WIDTH="33%"'; - Package - Status -% if ( $show_location ) { - Location + <% mt('Package') |h %> + <% mt('Status') |h %> + <% mt('Contact/Location') |h %> +% if (!$opt{no_services}) { + <% mt('Services') |h %> % } - Services + % #$FS::cust_pkg::DEBUG = 2; % foreach my $cust_pkg (@$packages) { +% # if requested, this can override cust_pkg-group_by_location + <& .packagerow, $cust_pkg, + %conf_opt, + ( map { $_ => $opt{$_} } qw( + cust_main bgcolor no_links cust_location_cache + before_pkg_callback before_svc_callback after_svc_callback + cust_pkg-group_by_location + no_services + )), + #for status.html + 'has_cust_payby_auto' => $opt{cust_main}->has_cust_payby_auto, + &> +% } +% } else { # there are no packages +
+% } +<%def .packagerow> % -% if ( $bgcolor eq $bgcolor1 ) { -% $bgcolor = $bgcolor2; -% } else { -% $bgcolor = $bgcolor1; -% } -% -% my %iopt = ( -% 'bgcolor' => $bgcolor, -% 'cust_pkg' => $cust_pkg, -% 'part_pkg' => $cust_pkg->part_pkg, -% %conf_opt, -% ); -% - +% my ($cust_pkg, %iopt) = @_; +% $iopt{'cust_pkg'} = $cust_pkg; +% $iopt{'part_pkg'} = $cust_pkg->part_pkg; +% $iopt{'row'} = $row; - - <% include('package.html', %iopt) %> - <% include('status.html', %iopt) %> -% if ( $show_location ) { - <% include('location.html', %iopt) %> -% } - <% include('services.html', %iopt) %> + + <& package.html, %iopt &> + <& status.html, %iopt &> + + <& contact.html, %iopt &> + <& location.html, %iopt &> + +% if (!$iopt{no_services}) { + <& services.html, %iopt &> +% } + +% # insert hidden predecessors to this package, if any +% # and a rolldown button to show them +% # (we'll make it do something later) +% if ( $cust_pkg->get('changed_from_pkg') ) { + + + +% # the hidden block here has ID="cust_pkgX" where X is the first pkgnum +% # it contains. + <& hidden.html, $cust_pkg->get('changed_from_pkg'), + %iopt, + 'next_pkg' => $cust_pkg, + &> + - -% } #foreach $cust_pkg -%# -% } #if @$packages -% else { -
% } - +% $row++; +% # show the change target, if there is one +% if ( $cust_pkg->change_to_pkg ) { + <& .packagerow, $cust_pkg->change_to_pkg, %iopt, 'change_from' => 1 &> +% } +% # include supplemental packages if any +% if ( $cust_pkg->_supplemental ) { +% $iopt{'supplemental'} = ($iopt{'supplemental'} || 0) + 1; +% foreach my $supp_pkg (@{ $cust_pkg->_supplemental }) { + <& .packagerow, $supp_pkg, %iopt &> +% } +% } + +<%shared> +my $row = 0; + <%init> my %opt = @_; @@ -55,7 +90,6 @@ my $conf = new FS::Conf; my $curuser = $FS::CurrentUser::CurrentUser; my $packages = $opt{'packages'}; -my $show_location = $opt{'show_location'}; # Sort order is hardcoded for now, can change this if needed. @$packages = sort { @@ -64,14 +98,30 @@ my $show_location = $opt{'show_location'}; ( $a->getfield('pkgnum') <=> $b->getfield('pkgnum') ) } @$packages; +my %change_custnum = map { $_->change_custnum => 1 } + grep { $_->change_custnum } + grep { $_->getfield('cancel') } + @$packages; + +my $pkg_attached = ( scalar(keys %change_custnum) == 1 + && ! grep { ! $_->getfield('cancel') } @$packages + ); + my $countrydefault = scalar($conf->config('countrydefault')) || 'US'; my %conf_opt = ( + #for package.html + 'invoice-unitprice' => $conf->exists('invoice-unitprice'), + 'show_pkgnum' => $curuser->option('show_pkgnum'), + 'part_pkg-term_discounts' => $conf->exists('part_pkg-term_discounts'), + #for services.html and status.html 'cust_pkg-display_times' => ($conf->exists('cust_pkg-display_times') || $curuser->option('cust_pkg-display_times')), #for status.html 'cust_pkg-show_autosuspend' => $conf->exists('cust_pkg-show_autosuspend'), + 'pkg_attached' => $pkg_attached, + 'part_pkg-delay_cancel-days' => $conf->config('part_pkg-delay_cancel-days') || 1, #for status.html pkg-balances 'pkg-balances' => $conf->exists('pkg-balances'), 'money_char' => ( $conf->config('money_char') || '$' ), @@ -80,16 +130,21 @@ my %conf_opt = ( 'countrydefault' => $countrydefault, 'statedefault' => ( scalar($conf->config('statedefault')) || ($countrydefault eq 'US' ? 'CA' : '') ), + 'cust_pkg-group_by_location'=> $conf->exists('cust_pkg-group_by_location'), + 'cust_main-require_censustract'=> $conf->exists('cust_main-require_censustract'), + 'company_address' => [ $conf->config('company_address', $opt{cust_main}->agentnum ) ], + #for services.html 'svc_external-skip_manual' => $conf->exists('svc_external-skip_manual'), + 'svc_phone-bulk_provision_simple' => $conf->exists('svc_phone-bulk_provision_simple'), 'legacy_link' => $conf->exists('legacy_link'), - 'svc_broadband-manage_link' => scalar($conf->config('svc_broadband-manage_link')), - 'maestro-status_test' => $conf->exists('maestro-status_test'), - 'cust_pkg-large_pkg_size' => $conf->config('cust_pkg-large_pkg_size'), + 'manage_link' => scalar($conf->config('svc_broadband-manage_link')), + 'manage_link_text' => scalar($conf->config('svc_broadband-manage_link_text')), + 'manage_link_loc' => scalar($conf->config('svc_broadband-manage_link_loc')), + 'manage_link-new_window' => $conf->exists('svc_broadband-manage_link-new_window'), + 'cust_pkg-large_pkg_size' => scalar($conf->config('cust_pkg-large_pkg_size')), + 'cust_pkg-hide_discontinued-part_svc' => $conf->exists('cust_pkg-hide_discontinued-part_svc'), - # for packages.html Change location link - 'show_location' => $show_location, ); -