print customer statements on the fly, #15864
[freeside.git] / httemplate / view / cust_main_statement-pdf.cgi
1 <%doc>
2 Like view/cust_statement-pdf.cgi, but for viewing/printing the implicit 
3 statement containing all of a customer's invoices.  Slightly redundant.
4 I don't see the need to create an equivalent to view/cust_statement.html 
5 for this case, but one can be added if necessary.
6 </%doc>
7 <% $pdf %>
8 <%init>
9
10 die "access denied"
11   unless $FS::CurrentUser::CurrentUser->access_right('View invoices');
12
13 #untaint statement
14 my($query) = $cgi->keywords;
15 $query =~ /^((.+)-)?(\d+)$/;
16 my $templatename = $2 || 'statement'; #XXX configure... via event??  eh..
17 my $custnum = $3;
18
19 my $cust_main = qsearchs({
20   'select'    => 'cust_main.*',
21   'table'     => 'cust_main',
22   'hashref'   => { 'custnum' => $custnum },
23   'extra_sql' => ' AND '. $FS::CurrentUser::CurrentUser->agentnums_sql,
24 });
25 die "Customer #$custnum not found!" unless $cust_main;
26
27 my $cust_statement = FS::cust_statement->new({
28   'custnum'       => $custnum,
29   'statementnum'  => 'ALL', #magic
30   '_date'         => time,
31 });
32
33 my $pdf = $cust_statement->print_pdf( '', $templatename );
34
35 http_header('Content-Type' => 'application/pdf' );
36 http_header('Content-Length' => length($pdf) );
37 http_header('Cache-control' => 'max-age=60' );
38
39 </%init>