summaryrefslogtreecommitdiff
path: root/httemplate/view/cust_bill.cgi
blob: 2ca7ba95964e8e3da565213a95ee0b3a75f810b9 (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
100
101
102
103
104
105
106
107
108
109
110
111
<%

#untaint invnum
my($query) = $cgi->keywords;
$query =~ /^((.+)-)?(\d+)$/;
my $templatename = $2;
my $invnum = $3;

my $conf = new FS::Conf;

my $cust_bill = qsearchs('cust_bill',{'invnum'=>$invnum});
die "Invoice #$invnum not found!" unless $cust_bill;
my $custnum = $cust_bill->getfield('custnum');

#my $printed = $cust_bill->printed;

my $link = $templatename ? "$templatename-$invnum" : $invnum;

%>
<%= header('Invoice View', menubar(
  "Main Menu" => $p,
  "View this customer (#$custnum)" => "${p}view/cust_main.cgi?$custnum",
)) %>

<% if ( $cust_bill->owed > 0 ) { %>
  <A HREF="<%= $p %>edit/cust_pay.cgi?<%= $invnum %>">Enter payments (check/cash) against this invoice</A> |
<% } %>

<A HREF="<%= $p %>misc/print-invoice.cgi?<%= $link %>">Reprint this invoice</A>

<% if ( grep { $_ ne 'POST' } $cust_bill->cust_main->invoicing_list ) { %>
  | <A HREF="<%= $p %>misc/email-invoice.cgi?<%= $link %>">Re-email
      this invoice</A>
<% } %>

<% if ( $conf->exists('hylafax') && length($cust_bill->cust_main->fax) ) { %>
  | <A HREF="<%= $p %>misc/fax-invoice.cgi?<%= $link %>">Re-fax
      this invoice</A>
<% } %>

<BR><BR>

<% if ( $conf->exists('invoice_latex') ) { %>
  <A HREF="<%= $p %>view/cust_bill-pdf.cgi?<%= $link %>.pdf">View typeset invoice</A>
  <BR><BR>
<% } %>

<% #false laziness with search/cust_bill_event.cgi
   unless ( $templatename ) { %>

  <%= table() %>
  <TR>
    <TH>Event</TH>
    <TH>Date</TH>
    <TH>Status</TH>
  </TR>

  <% foreach my $cust_bill_event (
       sort { $a->_date <=> $b->_date } $cust_bill->cust_bill_event
     ) {

    my $status = $cust_bill_event->status;
    $status .= ': '. encode_entities($cust_bill_event->statustext)
      if $cust_bill_event->statustext;
    my $part_bill_event = $cust_bill_event->part_bill_event;
  %>
    <TR>
      <TD><%= $part_bill_event->event %>
  
        <% if (
          $part_bill_event->plan eq 'send_alternate'
          && $part_bill_event->plandata =~ /^(agent_)?templatename (.*)$/m
        ) {
          my $alt_templatename = $2;
          my $alt_link = "$alt_templatename-$invnum";
        %>
          ( <A HREF="<%= $p %>view/cust_bill.cgi?<%= $alt_link %>">view</A>
          | <A HREF="<%= $p %>view/cust_bill-pdf.cgi?<%= $alt_link %>.pdf">view
              typeset</A>
          | <A HREF="<%= $p %>misc/print-invoice.cgi?<%= $alt_link %>">re-print</A>
          <% if ( grep { $_ ne 'POST' }
                       $cust_bill->cust_main->invoicing_list ) { %>
            | <A HREF="<%= $p %>misc/email-invoice.cgi?<%= $alt_link %>">re-email</A>
          <% } %>
                       
          <% if ( $conf->exists('hylafax')
                  && length($cust_bill->cust_main->fax) ) { %>
            | <A HREF="<%= $p %>misc/fax-invoice.cgi?<%= $alt_link %>">re-fax</A>
          <% } %>

          )
        <% } %>
  
      </TD>
      <TD><%= time2str("%a %b %e %T %Y", $cust_bill_event->_date) %></TD>
      <TD><%= $status %></TD>
    </TR>
  <% } %>

  </TABLE>
  <BR>

<% } %>

<% if ( $conf->exists('invoice_html') ) { %>
  <%= join('', $cust_bill->print_html('', $templatename) ) %>
<% } else { %>
  <PRE><%= join('', $cust_bill->print_text('', $templatename) ) %></PRE>
<% } %>

</BODY></HTML>