X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=httemplate%2Fsearch%2Fcust_pkg.cgi;h=09b52d76bed56a9489e27c4c472b02b27f2fb76b;hb=8e24d6492d74693011997843ba2101a9360670b4;hp=3606a3d240e35c742b86536acce11af36c5f14ef;hpb=e168ca3db2702bd9a540316cd9bd840238dd19ce;p=freeside.git diff --git a/httemplate/search/cust_pkg.cgi b/httemplate/search/cust_pkg.cgi index 3606a3d24..09b52d76b 100755 --- a/httemplate/search/cust_pkg.cgi +++ b/httemplate/search/cust_pkg.cgi @@ -17,6 +17,7 @@ emt('Next bill'), emt('Adjourn'), emt('Susp.'), + emt('Susp. delay'), emt('Expire'), emt('Contract end'), emt('Cancel'), @@ -44,7 +45,7 @@ sub { FS::part_pkg::freq_pretty(shift); }, ( map { time_or_blank($_) } - qw( setup last_bill bill adjourn susp expire contract_end cancel ) ), + qw( setup last_bill bill adjourn susp dundate expire contract_end cancel ) ), sub { my $self = shift; my $return = ''; @@ -70,19 +71,7 @@ } } else { - [ map { - [ - { 'data' => $_->[0]. ':', - 'align'=> 'right', - }, - { 'data' => $_->[1], - 'align'=> 'left', - 'link' => $p. 'view/' . - $_->[2]. '.cgi?'. $_->[3], - }, - ]; - } $cust_pkg->labels - ]; + [ $process_svc_labels->( $cust_pkg ) ] } } ], @@ -104,13 +93,14 @@ '', '', '', + '', FS::UI::Web::cust_colors(), '', ], - 'style' => [ '', '', '', '', 'b', '', '', '', '', '', '', '', '', '', '', '', '', + 'style' => [ '', '', '', '', 'b', '', '', '', '', '', '', '', '', '', '', '', '', '', FS::UI::Web::cust_styles() ], 'size' => [ '', '', '', '', '-1' ], - 'align' => 'rrlccrrlrrrrrrrrl'. FS::UI::Web::cust_aligns(). 'r', + 'align' => 'rrlccrrlrrrrrrrrrl'. FS::UI::Web::cust_aligns(). 'r', 'links' => [ $link, $link, @@ -129,6 +119,7 @@ '', '', '', + '', ( map { $_ ne 'Cust. Status' ? $clink : '' } FS::UI::Web::cust_header( $cgi->param('cust_fields') @@ -154,13 +145,17 @@ my %search_hash = (); $search_hash{'query'} = $cgi->keywords; #scalars -for (qw( agentnum custnum magic status classnum custom cust_fields pkgbatch )) { +for (qw( agentnum custnum magic status custom cust_fields pkgbatch )) { $search_hash{$_} = $cgi->param($_) if $cgi->param($_); } -$search_hash{'pkgpart'} = [ $cgi->param('pkgpart') ]; +#arrays +for (qw( pkgpart classnum )) { + $search_hash{$_} = [ $cgi->param($_) ]; +} -for my $param ( qw(censustract) ) { +#scalars that need to be passed if empty +for my $param (qw(censustract censustract2 )) { $search_hash{$param} = $cgi->param($param) || '' if ( grep { /$param/ } $cgi->param ); } @@ -176,9 +171,9 @@ $search_hash{report_option} = join(',', @report_option) if @report_option; #false laziness w/report_cust_pkg.html my %disable = ( 'all' => {}, - 'one-time charge' => { 'last_bill'=>1, 'bill'=>1, 'adjourn'=>1, 'susp'=>1, 'expire'=>1, 'cancel'=>1, }, + 'one-time charge' => { 'last_bill'=>1, 'bill'=>1, 'adjourn'=>1, 'susp'=>1, 'expire'=>1, 'cancel'=>1, 'contract_end'=>1, 'dundate'=>1, }, 'active' => { 'susp'=>1, 'cancel'=>1 }, - 'suspended' => { 'cancel' => 1 }, + 'suspended' => { 'cancel' =>1, 'dundate'=>1, }, 'cancelled' => {}, '' => {}, ); @@ -258,4 +253,50 @@ my $html_init = sub { return $text; }; +my $large_pkg_size = $conf->config('cust_pkg-large_pkg_size'); + +my $process_svc_labels = sub { + my $cust_pkg = shift; + my @out; + foreach my $part_svc ( $cust_pkg->part_svc) { + # some false laziness with view/cust_main/packages/services.html + + my $num_cust_svc = $cust_pkg->num_cust_svc( $part_svc->svcpart ); + + if ( $large_pkg_size > 0 and $large_pkg_size <= $num_cust_svc ) { + my $href = $p.'search/cust_pkg_svc.html?svcpart='.$part_svc->svcpart. + ';pkgnum='.$cust_pkg->pkgnum; + push @out, [ + { 'data' => $part_svc->svc . ':', + 'align' => 'right', + 'rowspan' => 2 }, + { 'data' => mt('(view all [_1])', $num_cust_svc), + 'data_style' => 'b', + 'align' => 'left', + 'link' => $href, }, + ], + [ + { 'data' => include('/elements/search-cust_svc.html', + 'svcpart' => $part_svc->svcpart, + 'pkgnum' => $cust_pkg->pkgnum, + ), + 'align' => 'left' }, + ]; + } + else { + foreach ( map { [ $_->label ] } @{ $part_svc->cust_pkg_svc } ) { + push @out, [ + { 'data' => $_->[0]. ':', + 'align'=> 'right', }, + { 'data' => $_->[1], + 'align'=> 'left', + 'link' => $p. 'view/' . + $_->[2]. '.cgi?'. $_->[3], }, + ]; + } + } + } #foreach $cust_pkg + return @out; +}; +