-<!-- mason kludge -->
-<%
-
- #doesn't yet deal with daily/weekly packages
-
- #needs to be re-written in sql for efficiency
-
- my $time = time;
-
- my $now = $cgi->param('date') && str2time($cgi->param('date')) || $time;
- $now =~ /^(\d+)$/ or die "unparsable date?";
- $now = $1;
-
- my( $total, $total_legacy ) = ( 0, 0 );
-
- my @cust_bill_pkg =
- grep { $_->cust_pkg && $_->cust_pkg->part_pkg->freq !~ /^([01]|\d+[dw])$/ }
- qsearch( 'cust_bill_pkg', {
- 'recur' => { op=>'!=', value=>0 },
- 'edate' => { op=>'>', value=>$now },
- }, );
-
- my @cust_pkg =
- grep { $_->part_pkg->recur != 0
- && $_->part_pkg->freq !~ /^([01]|\d+[dw])$/
- }
- qsearch ( 'cust_pkg', {
- 'bill' => { op=>'>', value=>$now }
- } );
-
- foreach my $cust_bill_pkg ( @cust_bill_pkg) {
- my $period = $cust_bill_pkg->edate - $cust_bill_pkg->sdate;
-
- my $elapsed = $now - $cust_bill_pkg->sdate;
- $elapsed = 0 if $elapsed < 0;
-
- my $remaining = 1 - $elapsed/$period;
-
- my $unearned = $remaining * $cust_bill_pkg->recur;
- $total += $unearned;
-
- }
-
- foreach my $cust_pkg ( @cust_pkg ) {
- my $period = $cust_pkg->bill - $cust_pkg->last_bill;
-
- my $elapsed = $now - $cust_pkg->last_bill;
- $elapsed = 0 if $elapsed < 0;
-
- my $remaining = 1 - $elapsed/$period;
-
- my $unearned = $remaining * $cust_pkg->part_pkg->recur; #!! only works for flat/legacy
- $total_legacy += $unearned;
-
- }
-
- $total = sprintf('%.2f', $total);
- $total_legacy = sprintf('%.2f', $total_legacy);
-
-%>
-
-<%= header( 'Prepaid Income (Unearned Revenue) Report',