move header() to include(/elements/header.html) so it can be changed in one place...
[freeside.git] / httemplate / view / cust_bill.cgi
1 <%
2
3 #untaint invnum
4 my($query) = $cgi->keywords;
5 $query =~ /^((.+)-)?(\d+)$/;
6 my $templatename = $2;
7 my $invnum = $3;
8
9 my $conf = new FS::Conf;
10
11 my @payby =  grep /\w/, $conf->config('payby');
12 #@payby = (qw( CARD DCRD CHEK DCHK LECB BILL CASH WEST COMP ))
13 @payby = (qw( CARD DCRD CHEK DCHK LECB BILL CASH COMP ))
14   unless @payby;
15 my %payby = map { $_=>1 } @payby;
16
17 my $cust_bill = qsearchs('cust_bill',{'invnum'=>$invnum});
18 die "Invoice #$invnum not found!" unless $cust_bill;
19 my $custnum = $cust_bill->getfield('custnum');
20
21 #my $printed = $cust_bill->printed;
22
23 my $link = $templatename ? "$templatename-$invnum" : $invnum;
24
25 %>
26 <%= include("/elements/header.html",'Invoice View', menubar(
27   "Main Menu" => $p,
28   "View this customer (#$custnum)" => "${p}view/cust_main.cgi?$custnum",
29 )) %>
30
31 <% if ( $cust_bill->owed > 0
32         && ( $payby{'BILL'} || $payby{'CASH'} || $payby{'WEST'} || $payby{'MCRD'} )
33       )
34    {
35      my $s = 0;
36 %>
37
38   Post 
39
40   <% if ( $payby{'BILL'} ) { %>
41   
42     <%= $s++ ? ' | ' : '' %>
43     <A HREF="<%= $p %>edit/cust_pay.cgi?payby=BILL;invnum=<%= $invnum %>">check</A>
44   
45   <% } %>
46   
47   <% if ( $payby{'CASH'} ) { %>
48   
49     <%= $s++ ? ' | ' : '' %>
50     <A HREF="<%= $p %>edit/cust_pay.cgi?payby=CASH;invnum=<%= $invnum %>">cash</A>
51   
52   <% } %>
53   
54   <% if ( $payby{'WEST'} ) { %>
55   
56     <%= $s++ ? ' | ' : '' %>
57     <A HREF="<%= $p %>edit/cust_pay.cgi?payby=WEST;invnum=<%= $invnum %>">Western Union</A>
58   
59   <% } %>
60
61   <% if ( $payby{'MCRD'} ) { %>
62   
63     <%= $s++ ? ' | ' : '' %>
64     <A HREF="<%= $p %>edit/cust_pay.cgi?payby=MCRD;invnum=<%= $invnum %>">manual credit card</A>
65   
66   <% } %>
67
68   payment against this invoice<BR>
69
70 <% } %>
71
72 <A HREF="<%= $p %>misc/print-invoice.cgi?<%= $link %>">Re-print this invoice</A>
73
74 <% if ( grep { $_ ne 'POST' } $cust_bill->cust_main->invoicing_list ) { %>
75   | <A HREF="<%= $p %>misc/email-invoice.cgi?<%= $link %>">Re-email
76       this invoice</A>
77 <% } %>
78
79 <% if ( $conf->exists('hylafax') && length($cust_bill->cust_main->fax) ) { %>
80   | <A HREF="<%= $p %>misc/fax-invoice.cgi?<%= $link %>">Re-fax
81       this invoice</A>
82 <% } %>
83
84 <BR><BR>
85
86 <% if ( $conf->exists('invoice_latex') ) { %>
87   <A HREF="<%= $p %>view/cust_bill-pdf.cgi?<%= $link %>.pdf">View typeset invoice</A>
88   <BR><BR>
89 <% } %>
90
91 <% #false laziness with search/cust_bill_event.cgi
92    unless ( $templatename ) { %>
93
94   <%= table() %>
95   <TR>
96     <TH>Event</TH>
97     <TH>Date</TH>
98     <TH>Status</TH>
99   </TR>
100
101   <% foreach my $cust_bill_event (
102        sort { $a->_date <=> $b->_date } $cust_bill->cust_bill_event
103      ) {
104
105     my $status = $cust_bill_event->status;
106     $status .= ': '. encode_entities($cust_bill_event->statustext)
107       if $cust_bill_event->statustext;
108     my $part_bill_event = $cust_bill_event->part_bill_event;
109   %>
110     <TR>
111       <TD><%= $part_bill_event->event %>
112   
113         <% if ( $part_bill_event->templatename ) {
114           my $alt_templatename = $part_bill_event->templatename;
115           my $alt_link = "$alt_templatename-$invnum";
116         %>
117           ( <A HREF="<%= $p %>view/cust_bill.cgi?<%= $alt_link %>">view</A>
118           | <A HREF="<%= $p %>view/cust_bill-pdf.cgi?<%= $alt_link %>.pdf">view
119               typeset</A>
120           | <A HREF="<%= $p %>misc/print-invoice.cgi?<%= $alt_link %>">re-print</A>
121           <% if ( grep { $_ ne 'POST' }
122                        $cust_bill->cust_main->invoicing_list ) { %>
123             | <A HREF="<%= $p %>misc/email-invoice.cgi?<%= $alt_link %>">re-email</A>
124           <% } %>
125                        
126           <% if ( $conf->exists('hylafax')
127                   && length($cust_bill->cust_main->fax) ) { %>
128             | <A HREF="<%= $p %>misc/fax-invoice.cgi?<%= $alt_link %>">re-fax</A>
129           <% } %>
130
131           )
132         <% } %>
133   
134       </TD>
135       <TD><%= time2str("%a %b %e %T %Y", $cust_bill_event->_date) %></TD>
136       <TD><%= $status %></TD>
137     </TR>
138   <% } %>
139
140   </TABLE>
141   <BR>
142
143 <% } %>
144
145 <% if ( $conf->exists('invoice_html') ) { %>
146   <%= join('', $cust_bill->print_html('', $templatename) ) %>
147 <% } else { %>
148   <PRE><%= join('', $cust_bill->print_text('', $templatename) ) %></PRE>
149 <% } %>
150
151 </BODY></HTML>