X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=httemplate%2Fsearch%2Fsvc_acct.cgi;h=8cd689a043c2679ea9eb7df0ef26ad7f15fb37bf;hb=718f65eee1c797ea90a315b5f03fae75c80a5112;hp=292c4a6955ce4f5d21b1930151f5944aab2142ba;hpb=d92a439b83ac8ca1d7ac89934a39039e519cd5bf;p=freeside.git diff --git a/httemplate/search/svc_acct.cgi b/httemplate/search/svc_acct.cgi index 292c4a695..8cd689a04 100755 --- a/httemplate/search/svc_acct.cgi +++ b/httemplate/search/svc_acct.cgi @@ -12,6 +12,15 @@ 'style' => \@style, ) %> +<%once> + +#false laziness w/ClientAPI/MyAccount.pm +sub format_time { + my $support = shift; + (($support < 0) ? '-' : '' ). int(abs($support)/3600)."h".sprintf("%02d",(abs($support)%3600)/60)."m"; +} + + <%init> die "access denied" @@ -42,7 +51,7 @@ if ( $cgi->param('domain') ) { unless ( $svc_domain ) { #it would be nice if this looked more like the other "not found" #errors, but this will do for now. - eidiot "Domain ". $cgi->param('domain'). " not found at all"; + errorpage("Domain ". $cgi->param('domain'). " not found at all"); } else { push @extra_sql, 'domsvc = '. $svc_domain->svcnum; } @@ -56,7 +65,7 @@ if ( $cgi->param('magic') =~ /^(all|unlinked)$/ ) { my $sortby = ''; if ( $cgi->param('sortby') =~ /^(\w+)$/ ) { - my $sortby = $1; + $sortby = $1; $sortby = "LOWER($sortby)" if $sortby eq 'username'; push @extra_sql, "$sortby IS NOT NULL" @@ -65,12 +74,37 @@ if ( $cgi->param('magic') =~ /^(all|unlinked)$/ ) { } if ( $sortby eq 'seconds' ) { - push @header, 'Time remaining'; - push @fields, sub { my $svc_acct = shift; $svc_acct->seconds }; + #push @header, 'Time remaining'; + push @header, 'Time'; + push @fields, sub { my $svc_acct = shift; format_time($svc_acct->seconds) }; push @links, ''; - $align .= 'r', + $align .= 'r'; push @color, ''; push @style, ''; + + my $conf = new FS::Conf; + if ( $conf->exists('svc_acct-display_paid_time_remaining') ) { + push @header, 'Paid time'; + push @fields, sub { + my $svc_acct = shift; + my $seconds = $svc_acct->seconds; + my $cust_pkg = $svc_acct->cust_svc->cust_pkg; + my $part_pkg = $cust_pkg->part_pkg; + my $timepermonth = $part_pkg->option('seconds'); + return format_time($seconds) unless $timepermonth; + #my $recur = $part_pkg->calc_recur($cust_pkg); + my $recur = $part_pkg->base_recur($cust_pkg); + my $balance = $cust_pkg->cust_main->balance; + my $months_unpaid = $balance / $recur; + my $time_unpaid = $months_unpaid * $timepermonth; + format_time($seconds-$time_unpaid); + }; + push @links, ''; + $align .= 'r'; + push @color, ''; + push @style, ''; + } + } } elsif ( $cgi->param('popnum') =~ /^(\d+)$/ ) {