summaryrefslogtreecommitdiff
path: root/httemplate/view/cust_main_statement-pdf.cgi
blob: 7a0e198387bd23a600f49adaba94b87a184f162a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<%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;

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_statement = FS::cust_statement->new({
  'custnum'       => $custnum,
  'statementnum'  => 'ALL', #magic
  '_date'         => time,
});

my $pdf = $cust_statement->print_pdf( '', $templatename );

http_header('Content-Type' => 'application/pdf' );
http_header('Content-Length' => length($pdf) );
http_header('Cache-control' => 'max-age=60' );

</%init>