summaryrefslogtreecommitdiff
path: root/httemplate/view/bill_batch.cgi
blob: 3fca6ebbe5dd54a52bea07ca27d5bc30a96eaffc (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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
% if($magic eq 'print') {
<% include('/elements/header.html', "Download Batch") %>
<FORM NAME="OneTrueForm">
<INPUT TYPE="hidden" NAME="batchnum" VALUE="<% $batchnum %>">
% $cgi->delete('magic');
<% include('/elements/progress-init.html',
              'OneTrueForm',
              [ 'batchnum' ],
              $p.'misc/process/bill_batch-print.html',
              {'url' => $cgi->self_url . ';magic=download'},
              '',
) %></FORM>
<SCRIPT TYPE="text/javascript">process();</SCRIPT>
<% include('/elements/footer.html') %>
% }
% 
% elsif($magic eq 'download') {
%   $m->clear_buffer;
%   $r->content_type('application/pdf');
%   $r->headers_out->add('Content-Disposition' => 'attachment;filename="invoice_batch_'.$batchnum.'.pdf"');
<% $batch->pdf %>
%   $batch->pdf('');
%   my $error = $batch->replace;
%   warn "error deleting cached PDF: '$error'\n" if $error;
% }
% else {
<% include('/search/elements/search.html', 
              'title'     => $close ?
                              "Batch $batchnum closed." :
                              "Invoice Batch $batchnum",
              'name'      => 'invoices',
              'query'     => { 'table'   => 'cust_bill_batch',
                               'select'  => join(', ',
                                          'cust_bill.*',
                                          FS::UI::Web::cust_sql_fields(),
                                          'cust_main.custnum AS cust_main_custnum',
                                ),
                               'hashref' => { },
                               'addl_from' => 
                                 'LEFT JOIN cust_bill USING ( invnum ) '.
                                 'LEFT JOIN cust_main USING ( custnum )',
                               'extra_sql' => '',
                                 " WHERE batchnum = $batchnum",
                             },
              'count_query' => "SELECT COUNT(*) FROM cust_bill_batch WHERE batchnum = $batchnum",
              'html_init' => $html_init,
              'header'    => [ 'Invoice #',
                               'Amount',
                               'Date',
                               'Customer',
                             ],
              'fields'    => [ sub { shift->cust_bill->display_invnum },
                               sub { sprintf($money_char.'%.2f', 
                                      shift->cust_bill->charged ) },
                               sub { time2str('%b %d %Y', 
                                      shift->cust_bill->_date ) },
                               sub { shift->cust_bill->cust_main->name },
                             ],
              'align'     => 'rrll',
              'links'     => [ ($link) x 3, $clink,
                             ],
              'really_disable_download' => 1,
) %>
% }
<%init>

die "access denied"
  unless $FS::CurrentUser::CurrentUser->access_right('View invoices');

my $conf = new FS::Conf;
my $batch;
my $batchnum = $cgi->param('batchnum');

$batch = FS::bill_batch->by_key($batchnum);
die "Batch '$batchnum' not found!\n" if !$batch;

my $magic = $cgi->param('magic');
my $html_init = '';

my $close = $cgi->param('close');
$batch->close if $close;

if(!$magic) {
  $cgi->param('magic' => 'print');
  $cgi->delete('close');
  $html_init  = '<A HREF="'.$cgi->self_url.'">Download this batch</A><BR>';
  if($batch->status eq 'O') {
    $cgi->param('close' => 1);
    $cgi->delete('magic');
    $html_init .= '<A HREF="'.$cgi->self_url.'">Close this batch</A><BR>';
  }
  $html_init .= '<BR>';
}

my $link = [ "$p/view/cust_bill.cgi?", 'invnum' ];
my $clink = [ "$p/view/cust_main.cgi?", 'custnum' ];
my $money_char = $conf->config('money_char') || '$';

</%init>