fix A/R report
[freeside.git] / httemplate / view / cust_main_statement-pdf.cgi
index 7c2c207..79110ee 100755 (executable)
@@ -1,29 +1,34 @@
+<% $pdf %>\
 <%doc>
 Like view/cust_statement-pdf.cgi, but for viewing/printing the implicit 
 statement containing all of a customer's invoices.  Slightly redundant.
 I don't see the need to create an equivalent to view/cust_statement.html 
 for this case, but one can be added if necessary.
 </%doc>
-<% $pdf %>
 <%init>
 
 die "access denied"
   unless $FS::CurrentUser::CurrentUser->access_right('View invoices');
 
-#untaint statement
 my($query) = $cgi->keywords;
-$query =~ /^((.+)-)?(\d+)$/;
-my $templatename = $2 || 'statement'; #XXX configure... via event??  eh..
-my $custnum = $3;
+$query =~ /^(\d+)$/;
+my $custnum = $1;
 
+#mostly for the agent-virt, i guess.  could probably bolt it onto the cust_bill
+# search
 my $cust_main = qsearchs({
   'select'    => 'cust_main.*',
   'table'     => 'cust_main',
   'hashref'   => { 'custnum' => $custnum },
   'extra_sql' => ' AND '. $FS::CurrentUser::CurrentUser->agentnums_sql,
-});
-die "Customer #$custnum not found!" unless $cust_main;
-my $cust_bill = ($cust_main->cust_bill)[-1]
+})
+  or die "Customer #$custnum not found!";
+
+my $cust_bill = qsearchs({
+  'table'    => 'cust_bill',
+  'hashref'  => { 'custnum' => $custnum },
+  'order_by' => 'ORDER BY _date desc LIMIT 1',
+})
   or die "Customer #$custnum has no invoices!";
 
 my $cust_statement = FS::cust_statement->new({
@@ -33,11 +38,14 @@ my $cust_statement = FS::cust_statement->new({
   '_date'         => time,
 });
 
+my $pdf = $cust_statement->print_pdf({
+  'notice_name' => 'Statement',
+  'no_date'     => 1,
+  'no_number'   => 1,
+});
 
-my $pdf = $cust_statement->print_pdf( '', $templatename );
-
-http_header('Content-Type' => 'application/pdf' );
+http_header('Content-Type'   => 'application/pdf' );
 http_header('Content-Length' => length($pdf) );
-http_header('Cache-control' => 'max-age=60' );
+http_header('Cache-control'  => 'max-age=60' );
 
 </%init>