-<%
-
- #doesn't yet deal with daily/weekly packages
-
- #needs to be re-written in sql for efficiency
-
- my $now = $cgi->param('date') && str2time($cgi->param('date')) || time;
- $now =~ /^(\d+)$/ or die "unparsable date?";
- $now = $1;
-
- my %prepaid;
-
- 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 },
- }, );
-
- foreach my $cust_bill_pkg ( @cust_bill_pkg ) {
-
- #conceptual false laziness w/texas tax exempt_amount stuff in
- #FS::cust_main::bill
-
- my $freq = $cust_bill_pkg->cust_pkg->part_pkg->freq;
- my $per_month = sprintf("%.2f", $cust_bill_pkg->recur / $freq);
-
- my($mon, $year) = (localtime($cust_bill_pkg->sdate) )[4,5];
- $mon+=2; $year+=1900;
-
- foreach my $which_month ( 2 .. $freq ) {
- until ( $mon < 13 ) { $mon -= 12; $year++; }
- $prepaid{"$year-$mon"} += $per_month;
- $mon++;
- }
-
- }
-
- my @mon = qw(Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec);
-
-%>
-
-<%= header( 'Prepaid Income (Unearned Revenue) Report',
+%
+%
+% #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);
+%
+%
+
+
+<% include("/elements/header.html", 'Prepaid Income (Unearned Revenue) Report',