X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=httemplate%2Fsearch%2Freport_receivables.cgi;h=241ca581c66963e6a54fe21ec1740862b1ed5253;hp=fdd3779a983e2d0f521da586d0a31af4767a82cb;hb=3a4b4ab1673766048a33c970f5926b2bf07b535c;hpb=ef27ba4362bc3ffac006237b5a73c496a5ee51a0 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 @@ <% + my $sql = < extract(epoch from now())-2592000 + and cust_main.custnum = cust_bill.custnum + ) + ,0 + ) as owed_0_30, -print '
';
-while() {
-  print $_;
-}
-print '
'; + 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 ''; + ) + 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(). 'Total'. + '0-30'. + '30-60'. + '60-90'. + '90+'. + 'total'. + ''; + $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() %> + + Customer + 0-30 + 30-60 + 60-90 + 90+ + Total + +<% while ( my $row = $sth->fetchrow_hashref() ) { %> + + <%= $row->{'custnum'} %>: + <%= $row->{'company'} ? $row->{'company'}. ' (' : '' %> + <%= $row->{'last'}. ', '. $row->{'first'} %> + <%= $row->{'company'} ? ')' : '' %> + + $<%= sprintf("%.2f", $row->{'owed_0_30'} ) %> + $<%= sprintf("%.2f", $row->{'owed_30_60'} ) %> + $<%= sprintf("%.2f", $row->{'owed_60_90'} ) %> + $<%= sprintf("%.2f", $row->{'owed_90_plus'} ) %> + $<%= sprintf("%.2f", $row->{'owed_total'} ) %> + +<% } %> + +<%= $totals_table %> + +