diff options
author | ivan <ivan> | 2003-11-06 13:39:29 +0000 |
---|---|---|
committer | ivan <ivan> | 2003-11-06 13:39:29 +0000 |
commit | 3a4b4ab1673766048a33c970f5926b2bf07b535c (patch) | |
tree | cb9a1d3e2ee61d6094e0482f522b120424456441 /httemplate/search | |
parent | ef27ba4362bc3ffac006237b5a73c496a5ee51a0 (diff) |
"current receivables" -> A/R Aging summary
Diffstat (limited to 'httemplate/search')
-rwxr-xr-x | httemplate/search/report_receivables.cgi | 191 |
1 files changed, 181 insertions, 10 deletions
diff --git a/httemplate/search/report_receivables.cgi b/httemplate/search/report_receivables.cgi index fdd3779a9..241ca581c 100755 --- a/httemplate/search/report_receivables.cgi +++ b/httemplate/search/report_receivables.cgi @@ -1,19 +1,190 @@ <!-- mason kludge --> <% + my $sql = <<END; -my $user = getotaker; +select *, -print header('Current Receivables Report Results'); + coalesce( + ( select sum( charged + - coalesce( + ( select sum(amount) from cust_bill_pay + where cust_bill.invnum = cust_bill_pay.invnum ) + ,0 + ) + - coalesce( + ( select sum(amount) from cust_bill_pay + where cust_bill.invnum = cust_bill_pay.invnum ) + ,0 + ) -open (REPORT, "freeside-receivables-report -v $user |"); + ) + from cust_bill + where cust_bill._date > extract(epoch from now())-2592000 + and cust_main.custnum = cust_bill.custnum + ) + ,0 + ) as owed_0_30, -print '<PRE>'; -while(<REPORT>) { - print $_; -} -print '</PRE>'; + coalesce( + ( select sum( charged + - coalesce( + ( select sum(amount) from cust_bill_pay + where cust_bill.invnum = cust_bill_pay.invnum ) + ,0 + ) + - coalesce( + ( select sum(amount) from cust_bill_pay + where cust_bill.invnum = cust_bill_pay.invnum ) + ,0 + ) -print '</BODY></HTML>'; + ) + from cust_bill + where cust_bill._date > extract(epoch from now())-5184000 + and cust_bill._date <= extract(epoch from now())-2592000 + and cust_main.custnum = cust_bill.custnum + ) + ,0 + ) as owed_30_60, -%> + coalesce( + ( select sum( charged + - coalesce( + ( select sum(amount) from cust_bill_pay + where cust_bill.invnum = cust_bill_pay.invnum ) + ,0 + ) + - coalesce( + ( select sum(amount) from cust_bill_pay + where cust_bill.invnum = cust_bill_pay.invnum ) + ,0 + ) + + ) + from cust_bill + where cust_bill._date > extract(epoch from now())-7776000 + and cust_bill._date <= extract(epoch from now())-5184000 + and cust_main.custnum = cust_bill.custnum + ) + ,0 + ) as owed_60_90, + + coalesce( + ( select sum( charged + - coalesce( + ( select sum(amount) from cust_bill_pay + where cust_bill.invnum = cust_bill_pay.invnum ) + ,0 + ) + - coalesce( + ( select sum(amount) from cust_bill_pay + where cust_bill.invnum = cust_bill_pay.invnum ) + ,0 + ) + + ) + from cust_bill + where cust_bill._date <= extract(epoch from now())-7776000 + and cust_main.custnum = cust_bill.custnum + ) + ,0 + ) as owed_90_plus, + + coalesce( + ( select sum( charged + - coalesce( + ( select sum(amount) from cust_bill_pay + where cust_bill.invnum = cust_bill_pay.invnum ) + ,0 + ) + - coalesce( + ( select sum(amount) from cust_bill_pay + where cust_bill.invnum = cust_bill_pay.invnum ) + ,0 + ) + + ) + from cust_bill + where cust_main.custnum = cust_bill.custnum + ) + ,0 + ) as owed_total + +from cust_main + +where 0 < + coalesce( + ( select sum( charged + - coalesce( + ( select sum(amount) from cust_bill_pay + where cust_bill.invnum = cust_bill_pay.invnum ) + ,0 + ) + - coalesce( + ( select sum(amount) from cust_bill_pay + where cust_bill.invnum = cust_bill_pay.invnum ) + ,0 + ) + + ) + from cust_bill + where cust_main.custnum = cust_bill.custnum + ) + ,0 + ) +order by company, last + +END + + + #order by! + + #the grep (and the sort ) should be pushed down to SQL + #my @cust_main = sort { $a->company cmp $b->company + # || $a->last cmp $b->last } + # grep { $_->balance } + # qsearch('cust_main', {} ); + + my $totals_table = table(). '<TR><TH>Total</TH>'. + '<TD><i>0-30</i></TD>'. + '<TD><i>30-60</i></TD>'. + '<TD><i>60-90</i></TD>'. + '<TD><i>90+</i></TD>'. + '<TD><i>total</i></TD>'. + '</TABLE>'; + $totals_table = ''; + + my $sth = dbh->prepare($sql) or die dbh->errstr; + $sth->execute or die $sth->errstr; + +%> +<%= header('Accounts Receivable Aging Summary', menubar( 'Main Menu'=>$p, ) ) %> +<%= $totals_table %> +<%= table() %> + <TR> + <TH>Customer</TH> + <TH>0-30</TH> + <TH>30-60</TH> + <TH>60-90</TH> + <TH>90+</TH> + <TH>Total</TH> + </TR> +<% while ( my $row = $sth->fetchrow_hashref() ) { %> + <TR> + <TD><%= $row->{'custnum'} %>: + <%= $row->{'company'} ? $row->{'company'}. ' (' : '' %> + <%= $row->{'last'}. ', '. $row->{'first'} %> + <%= $row->{'company'} ? ')' : '' %> + </TD> + <TD ALIGN="right">$<%= sprintf("%.2f", $row->{'owed_0_30'} ) %></TD> + <TD ALIGN="right">$<%= sprintf("%.2f", $row->{'owed_30_60'} ) %></TD> + <TD ALIGN="right">$<%= sprintf("%.2f", $row->{'owed_60_90'} ) %></TD> + <TD ALIGN="right">$<%= sprintf("%.2f", $row->{'owed_90_plus'} ) %></TD> + <TD ALIGN="right"><B>$<%= sprintf("%.2f", $row->{'owed_total'} ) %></B></TD> + </TR> +<% } %> +</TABLE> +<%= $totals_table %> +</BODY> +</HTML> |