[freeside-commits] freeside/conf invoice_html_statement, NONE,
1.1 invoice_latexnotes_statement, NONE,
1.1 invoice_latex_statement, NONE,
1.1 invoice_template_statement, NONE, 1.1
Ivan,,,
ivan at wavetail.420.am
Thu Feb 8 17:05:58 PST 2007
Update of /home/cvs/cvsroot/freeside/conf
In directory wavetail:/tmp/cvs-serv25130
Added Files:
invoice_html_statement invoice_latexnotes_statement
invoice_latex_statement invoice_template_statement
Log Message:
add default statement conf
--- NEW FILE: invoice_latexnotes_statement ---
%%
%% Add any customer specific notes in here
%%
\section*{\textsc{Notes}}
\begin{enumerate}
\item This statement reflects current charges and payments.
\item If you have any questions please email or telephone.
\end{enumerate}
--- NEW FILE: invoice_template_statement ---
Statement
{ substr("Page $page of $total_pages ", 0, 19); } { use Date::Format; time2str("%x", $date); } FS-{ $invnum; }
Ivan Kohler
12345 Test Lane
Truckee, CA 96161
{ $address[0]; }
{ $address[1]; }
{ $address[2]; }
{ $address[3]; }
{ $address[4]; }
{ $address[5]; }
{
join("\n",
map {
my ( $desc, $price ) = @{$_};
" ". substr( $desc. " "x65, 0, 65). " ". substr( $price. " "x11, 0, 11);
} invoice_lines(31)
);
}
-=> Freeside - open-source billing for ISPs - http://www.sisd.com/freeside <=-
--- NEW FILE: invoice_latex_statement ---
%% file: Standard Multipage.tex
%% Purpose: Multipage bill template for e-Bills
%%
%% Created by Mark Asplen-Taylor
%% Asplen Management Ltd
%% www.asplen.co.uk
%%
%% Modified for Freeside by Kristian Hoffman
%%
%% Changes
%% 0.1 4/12/00 Created
%% 0.2 18/10/01 More fields added
%% 1.0 16/11/01 RELEASED
%% 1.2 16/10/02 Invoice number added
%% 1.3 2/12/02 Logo graphic added
%% 1.4 7/2/03 Multipage headers/footers added
%% n/a forked for Freeside; checked into CVS
%%
\documentclass[letterpaper]{article}
\usepackage{fancyhdr,lastpage,ifthen,longtable,afterpage}
\usepackage{graphicx} % required for logo graphic
\addtolength{\voffset}{-0.0cm} % top margin to top of header
\addtolength{\hoffset}{-0.6cm} % left margin on page
\addtolength{\topmargin}{-1.25cm} % top margin to top of header
\setlength{\headheight}{2.0cm} % height of header
\setlength{\headsep}{1.0cm} % between header and text
\setlength{\footskip}{1.0cm} % bottom of footer from bottom of text
%\addtolength{\textwidth}{2.1in} % width of text
\setlength{\textwidth}{19.5cm}
\setlength{\textheight}{19.5cm}
\setlength{\oddsidemargin}{-0.9cm} % odd page left margin
\setlength{\evensidemargin}{-0.9cm} % even page left margin
\renewcommand{\headrulewidth}{0pt}
\renewcommand{\footrulewidth}{1pt}
% Adjust the inset of the mailing address
\newcommand{\addressinset}[1][]{\hspace{1.0cm}}
% Adjust the inset of the return address and logo
\newcommand{\returninset}[1][]{\hspace{-0.25cm}}
% New command for address lines i.e. skip them if blank
\newcommand{\addressline}[1]{\ifthenelse{\equal{#1}{}}{}{#1\newline}}
% Inserts dollar symbol
\newcommand{\dollar}[1][]{\symbol{36}}
% Remove plain style header/footer
\fancypagestyle{plain}{
\fancyhead{}
}
\fancyhf{}
% Define fancy header/footer for first and subsequent pages
\fancyfoot[C]{
\ifthenelse{\equal{\thepage}{1}}
{ % First page
\small{
[@-- $footer --@]
}
}
{ % ... pages
\small{
[@-- $smallfooter --@]
}
}
}
\fancyfoot[R]{
\ifthenelse{\equal{\thepage}{1}}
{ % First page
}
{ % ... pages
\small{\thepage\ of \pageref{LastPage}}
}
}
\fancyhead[L]{
\ifthenelse{\equal{\thepage}{1}}
{ % First page
\returninset
\makebox{
\begin{tabular}{ll}
\includegraphics{[@-- $conf_dir --@]/logo.eps} &
\begin{minipage}[b]{5.5cm}
[@-- $returnaddress --@]
\end{minipage}
\end{tabular}
}
}
{ % ... pages
%\includegraphics{[@-- $conf_dir --@]/logo.eps} % Uncomment if you want the logo on all pages.
}
}
\fancyhead[R]{
\ifthenelse{\equal{\thepage}{1}}
{ % First page
\begin{tabular}{rcl}
Invoice date & & Invoice number \\
\vspace{0.2cm}
\textbf{[@-- $date --@]} & & \textbf{[@-- $invnum --@]} \\\hline
\rule{0pt}{5ex} &~~ \huge{\textsc{Statement}} & \\
\vspace{-0.2cm}
& & \\\hline
\end{tabular}
}
{ % ... pages
\small{
\begin{tabular}{ll}
Invoice date & Invoice number\\
\textbf{[@-- $date --@]} & \textbf{[@-- $invnum --@]}\\
\end{tabular}
}
}
}
\pagestyle{fancy}
%% Font options are:
%% bch Bitsream Charter
%% put Utopia
%% phv Adobe Helvetica
%% pnc New Century Schoolbook
%% ptm Times
%% pcr Courier
\renewcommand{\familydefault}{phv}
% Commands for freeside description...
\newcommand{\FSdesc}[3]{
\multicolumn{1}{c}{\rule{0pt}{2.5ex}\textbf{#1}} &
\textbf{#2} &
\multicolumn{1}{r}{\textbf{\dollar #3}}\\
}
% ...extended description...
\newcommand{\FSextdesc}[1]{
\multicolumn{1}{l}{\rule{0pt}{1.0ex}} &
\multicolumn{2}{l}{\small{~-~#1}}\\
}
% ...and total line items.
\newcommand{\FStotaldesc}[2]{
& \multicolumn{1}{l}{#1} & #2\\
}
\begin{document}
%
%% Headers and footers defined for the first page
%
%% The LH Heading comprising logo
%% UNCOMMENT the following FOUR lines and change the path if necssary to provide a logo
%
%% The Heading comprising isue date, customer ref & INVOICE name
%
%% Header & footer changes for subsequent pages
%
%
%
\begin{tabular}{ll}
\addressinset \rule{0cm}{0cm} &
\makebox{
\begin{minipage}[t]{5.0cm}
\vspace{0.25cm}
\textbf{[@-- $payname --@]}\\
\addressline{[@-- $company --@]}
\addressline{[@-- $address1 --@]}
\addressline{[@-- $address2 --@]}
\addressline{[@-- $city --@], [@-- $state --@]~~[@-- $zip --@]}
\addressline{[@-- $country --@]}
\end{minipage}}
\end{tabular}
\hfill
\makebox{
\begin{minipage}[t]{6.4cm}
\begin{flushright}
Terms: [@-- $terms --@]\\
[@-- $po_line --@]\\
\end{flushright}
\end{minipage}}
\vspace{1.5cm}
%
\section*{\textsc{Charges}}
\begin{longtable}{clr}
\hline
\rule{0pt}{2.5ex}
\makebox[1.4cm]{\textbf{Ref}} &
\makebox[12.8cm][l]{\textbf{Description}} &
\makebox[2.5cm][r]{\textbf{Amount}} \\
\hline
\endfirsthead
\multicolumn{3}{r}{\rule{0pt}{2.5ex}Continued from previous page}\\
\hline
\rule{0pt}{2.5ex}
\makebox[1.4cm]{\textbf{Ref}} &
\makebox[12.8cm][l]{\textbf{Description}} &
\makebox[2.5cm][r]{\textbf{Amount}} \\
\hline
\endhead
\multicolumn{3}{r}{\rule{0pt}{2.5ex}Continued on next page...}\\
\endfoot
\hline
[@--
foreach my $line (@total_items) {
$OUT .= '\FStotaldesc{' . $line->{'total_item'} . '}' .
'{' . $line->{'total_amount'} . '}' . "\n";
}
--@]
\hline
\endlastfoot
[@--
foreach my $line (@detail_items) {
my $ext_description = $line->{'ext_description'};
# Don't break-up small packages.
my $rowbreak = @$ext_description < 5 ? '*' : '';
$OUT .= "\\hline\n";
$OUT .= '\FSdesc{' . $line->{'ref'} . '}{' . $line->{'description'} . '}' .
'{' . $line->{'amount'} . "}${rowbreak}\n";
foreach my $ext_desc (@$ext_description) {
$ext_desc = substr($ext_desc, 0, 80) . '...'
if (length($ext_desc) > 80);
$OUT .= '\FSextdesc{' . $ext_desc . '}' . "${rowbreak}\n";
}
}
--@]
\end{longtable}
\vfill
[@-- $notes --@]
\end{document}
--- NEW FILE: invoice_html_statement ---
<STYLE TYPE="text/css">
.invoice { font-family: sans-serif; font-size: 10pt }
.invoice_header { font-size: 10pt }
.invoice_headerright TH { border-top: 2px solid #000000; border-bottom: 2px solid #000000 }
.invoice_headerright TD { font-size: 10pt; empty-cells: show }
.invoice_longtable table { cellspacing: none }
.invoice_longtable TH { border-top: 2px solid #000000; border-bottom: 1px solid #000000; padding-left: none; padding-right: none; font-size: 10pt }
.invoice_desc TD { border-top: 2px solid #000000; font-weight: bold; font-size: 10pt }
.invoice_extdesc TD { font-size: 8pt }
.invoice_totaldesc TD { font-size: 10pt; empty-cells: show }
</STYLE>
<table class="invoice" bgcolor="#ffffff" WIDTH=768 CELLSPACING=8><tr><td>
<table class="invoice_header" width="100%">
<tr>
<td><img src="<%= $cid ? "cid:$cid" : "cust_bill-logo.cgi?$template" %>"></td>
<td align="left"><%= $returnaddress %></td>
<td align="right">
<table CLASS="invoice_headerright" cellspacing=0>
<tr>
<td align="right">
Invoice date<BR>
<B><%= $date %></B>
</td>
<td>
</td>
<td align="left">
Invoice number<BR>
<B><%= $invnum %></B>
</td>
</tr>
<tr>
<th> </th>
<th colspan=1 align="center">
<FONT SIZE="+3">S</FONT><FONT SIZE="+2">TATEMENT</FONT>
</th>
<th> </th>
</tr>
</table>
</td>
</tr>
<tr>
<td>
</td>
<td align="left">
<b><%= $payname %></b><BR>
<%= join('<BR>', grep length($_), $company,
$address1,
$address2,
"$city, $state $zip",
$country,
)
%>
</td>
<td align="right">
Terms: <%= $terms %><BR>
<%= $po_line %>
</td>
</tr>
</table>
<p><b><font size="+1">C</font><font size="+0">HARGES</font></b>
<p>
<table class="invoice_longtable" CELLSPACING=0 WIDTH="100%">
<tr>
<th align="center">Ref</th>
<th align="left">Description</th>
<th align="right">Amount</th>
</tr>
<%=
foreach my $line ( @detail_items ) {
$OUT .=
'<tr class="invoice_desc">'.
'<td align="center">'. $line->{'ref'}. '</td>'.
'<td align="left">'. $line->{'description'}. '</td>'.
'<td align="right">'. $line->{'amount'}. '</td>'.
'</tr>'
;
foreach my $ext_desc ( @{$line->{'ext_description'} } ) {
$OUT .=
'<tr class="invoice_extdesc">'.
'<td></td>'.
'<td align="left">- '. $ext_desc. '</td>'.
'<td></td>'.
'</tr>'
}
}
my $style = 'border-top: 3px solid #000000;';
my $linenum = 0;
foreach my $line ( @total_items ) {
$style .= 'border-bottom: 3px solid #000000;'
if ++$linenum == scalar(@total_items);
$OUT .=
'<tr class="invoice_totaldesc">'.
qq(<td style="$style"> </td>).
qq(<td align="left" style="$style">).
$line->{'total_item'}. '</td>'.
qq(<td align="right" style="$style">).
$line->{'total_amount'}. '</td>'.
'</tr>'
;
$style='';
}
%>
</table>
<br><br>
<%= $notes %>
<hr NOSHADE SIZE=2 COLOR="#000000">
<p align="center"><%= $footer %>
</td></tr></table>
More information about the freeside-commits
mailing list