move invoice_latex templating to Text::Template, with special sauce^W^Wbackwards...
[freeside.git] / conf / invoice_latex
1 %% file: Standard Multipage.tex\r
2 %% Purpose: Multipage bill template for e-Bills\r
3 %% \r
4 %% Created by Mark Asplen-Taylor\r
5 %% Asplen Management Ltd\r
6 %% www.asplen.co.uk\r
7 %%\r
8 %% Modified for Freeside by Ivan Kohler and Kristian Hoffman\r
9 %%\r
10 %% Changes\r
11 %%      0.1     4/12/00 Created\r
12 %%      0.2     18/10/01        More fields added\r
13 %%      1.0     16/11/01        RELEASED\r
14 %%      1.2     16/10/02        Invoice number added\r
15 %%      1.3     2/12/02 Logo graphic added\r
16 %%      1.4     7/2/03  Multipage headers/footers added\r
17 %%      n/a     10/12/03 forked for Freeside; checked into CVS\r
18 %%\r
19 \r
20 \documentclass[letterpaper]{article}\r
21 \r
22 \usepackage{fancyhdr,lastpage,ifthen,longtable,afterpage}\r
23 \usepackage{graphicx}                   % required for logo graphic\r
24 \r
25 \addtolength{\voffset}{-0.0in}  % top margin to top of header\r
26 \addtolength{\hoffset}{-0.60in} %left margin on page\r
27 \addtolength{\topmargin}{-0.6in}        % top margin to top of header\r
28 \setlength{\headheight}{1in}            % height of header\r
29 \setlength{\headsep}{0.5in}     % between header and text\r
30 \addtolength{\textheight}{-0.4in}       % height of main text\r
31 \r
32 \addtolength{\textheight}{-0.5in}       % height of main text\r
33 \setlength{\footskip}{0.5in}            % bottom of footer from bottom of text\r
34 \r
35 \addtolength{\textwidth}{2.1in}         % width of text\r
36 \setlength{\oddsidemargin}{0in}         % odd page left margin\r
37 \setlength{\evensidemargin}{0in}        % even page left margin\r
38 \r
39 \renewcommand{\headrulewidth}{0pt}\r
40 \renewcommand{\footrulewidth}{1pt}\r
41 \r
42                                                 % New command for address lines i.e. skip them if blank\r
43 \r
44 \newcommand{\addressline}[1]{\ifthenelse{\equal{#1}{}}{}{#1\newline}}\r
45 \newcommand{\dollar}[1][]{\symbol{36}} % Inserts dollar symbol\r
46 \r
47 \pagestyle{fancy}\r
48 \r
49 %% Font options are:\r
50 %%      bch     Bitsream Charter\r
51 %%      put     Utopia\r
52 %%      phv     Adobe Helvetica\r
53 %%      pnc     New Century Schoolbook\r
54 %%      ptm     Times\r
55 %%      pcr     Courier\r
56 \r
57 \renewcommand{\familydefault}{phv}              \r
58 \r
59 \begin{document}\r
60 %\r
61 %%      Headers and footers defined for the first page\r
62 \fancyfoot[CO,CE]{\small{\r
63 \begin{tabular}{c}\r
64 [@-- $footer --@]\r
65 \end{tabular}}}\r
66 %\r
67 %%      The LH Heading comprising logo\r
68 %%      UNCOMMENT the following FOUR lines and change the path if necssary to provide a logo\r
69 \fancyhead[LO,LE]{\r
70 \begin{tabular}{l}\r
71 \includegraphics{/usr/local/etc/freeside/conf.DBI:Pg:dbname=freeside/logo.eps}\r
72 \end{tabular}}\r
73 %\r
74 %%      The Heading comprising isue date, customer ref & INVOICE name\r
75 \fancyhead[RO,RE]{\r
76 \begin{tabular}{rcl}\r
77 Invoice date & & Invoice number \\\r
78 \vspace{0.2cm}\r
79 \textbf{[@-- $date --@]} & & \textbf{[@-- $invnum --@]} \\\hline\r
80 \rule{0pt}{5ex} &~~ \huge{\textsc{Invoice}}& \\\r
81 \vspace{-0.2cm}\r
82  & & \\\hline\r
83 \end{tabular}}\r
84 %\r
85 %%      Header & footer changes for subsequent pages\r
86 %\r
87 \afterpage{ \fancyfoot[RO,RE]{\small{\thepage\ of \pageref{LastPage}}} }\r
88 \afterpage{ \fancyfoot[CO,CE]{\small{[@-- $smallfooter --@]}} }\r
89 \afterpage{ \fancyhead[LO,LE]{\small{}} }\r
90 \afterpage{ \fancyhead[RO,RE]{\small{\r
91 \begin{tabular}{ll}\r
92 Invoice date & Invoice number\\\r
93 \textbf{[@-- $date --@]} & \textbf{[@-- $invnum --@]}\\\r
94 \end{tabular}}} }\r
95 %\r
96 %\r
97 \makebox{\r
98 \begin{minipage}[t]{2.9in}\r
99 \vspace{0.20in}\r
100 \textbf{[@-- $payname --@]}\\\r
101 \addressline{[@-- $company --@]}\r
102 \addressline{[@-- $address1 --@]}\r
103 \addressline{[@-- $address2 --@]}\r
104 \addressline{[@-- $city --@], [@-- $state --@]  [@-- $zip --@]}\r
105 \addressline{[@-- $country --@]}\r
106 \end{minipage}}\r
107 \hfill\r
108 \makebox{\r
109 \begin{minipage}[t]{2.5in}\r
110 \begin{flushright}\r
111 Terms: [@-- $terms --@]\\\r
112 [@-- $po_line --@]\\\r
113 \end{flushright}\r
114 \end{minipage}}\r
115 \vspace{0.5cm}\r
116 %\r
117 \section*{\textsc{Charges}}\r
118 \begin{longtable}{|c|l|r|}\r
119 \hline\r
120 \rule{0pt}{2.5ex}\r
121 \makebox[1.4cm]{\textbf{Ref}} & \r
122 \makebox[13cm][l]{\textbf{Description}} & \r
123 \makebox[2cm][r]{\textbf{Amount}} \\\r
124 \hline\r
125 \endfirsthead\r
126 \multicolumn{3}{r}{\rule{0pt}{2.5ex}Continued from previous page}\\\r
127 \hline\r
128 \rule{0pt}{2.5ex}\r
129 \makebox[1.4cm]{\textbf{Ref}} & \r
130 \makebox[13cm][l]{\textbf{Description}} & \r
131 \makebox[2cm][r]{\textbf{Amount}} \\\r
132 \hline\r
133 \endhead\r
134 \multicolumn{3}{r}{\rule{0pt}{2.5ex}/cont...}\\\r
135 \endfoot\r
136 [@--\r
137 \r
138   foreach my $line (@total_items) {\r
139     $OUT .= ' & \multicolumn{1}{l}{' . $line->{'total_item'} . '} & ' .\r
140             $line->{'total_amount'} . '\\\\' . "\n";\r
141   }\r
142 \r
143 --@]\r
144 \hline\r
145 \endlastfoot\r
146 [@--\r
147 \r
148   foreach my $line (@detail_items) {\r
149     $OUT .= '\rule{0pt}{2.5ex}' . $line->{'ref'} . ' &' . "\n".\r
150             '\begin{tabular}{l}' . "\n".\r
151             $line->{'description'} . '\tabularnewline' . "\n".\r
152             '\end{tabular}' . "\n".\r
153             '& \dollar ' . $line->{'amount'} . '\\\\\\hline' . "\n";\r
154   }\r
155 \r
156 --@]\r
157 \end{longtable}\r
158 \vfill\r
159 [@-- $notes --@]\r
160 \end{document}\r