diff options
author | ivan <ivan> | 2004-01-23 08:55:10 +0000 |
---|---|---|
committer | ivan <ivan> | 2004-01-23 08:55:10 +0000 |
commit | 0cb82fbbb68d51ea51cdc321c6322ab22508373c (patch) | |
tree | a91dad76dff712b0f5887048cc3b7277dfe01fa2 /httemplate/search/report_prepaid_income.cgi | |
parent | 57be672860c23f6c856328941fb37f2a9038620a (diff) |
first try at prepaid income report
Diffstat (limited to 'httemplate/search/report_prepaid_income.cgi')
-rw-r--r-- | httemplate/search/report_prepaid_income.cgi | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/httemplate/search/report_prepaid_income.cgi b/httemplate/search/report_prepaid_income.cgi new file mode 100644 index 000000000..f1d284b1a --- /dev/null +++ b/httemplate/search/report_prepaid_income.cgi @@ -0,0 +1,67 @@ +<!-- mason kludge --> +<% + + #doesn't yet deal with daily/weekly packages + + #needs to be re-written in sql for efficiency + + my $now = time; + + 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; + } + + } + +%> + +<%= header('Prepaid Income Report', menubar( 'Main Menu'=>$p, ) ) %> +<%= table() %> +<% + + my $total = 0; + + my ($now_mon, $now_year) = (localtime($now))[4,5]; + $now_mon+=2; $now_year+=1900; + until ( $now_mon < 13 ) { $now_mon -= 12; $now_year++; } + + my $subseq = 0; + for my $year ( $now_year .. 2037 ) { + for my $mon ( ( $subseq++ ? 1 : $now_mon ) .. 12 ) { + if ( $prepaid{"$year-$mon"} ) { + $total += $prepaid{"$year-$mon"}; + %> <TR><TD><%= "$year-$mon" %></TD> + <TD><%= sprintf("%.2f", $prepaid{"$year-$mon"} ) %></TD> + </TR> + <% + } + } + + } + +%> +<TR><TH>Total</TH><TD><%= sprintf("%.2f", $total) %></TD></TR> +</TABLE> +</BODY> +</HTML> |