diff options
| -rw-r--r-- | conf/invoice_html_statement | 124 | ||||
| -rw-r--r-- | conf/invoice_latex_statement | 244 | ||||
| -rw-r--r-- | conf/invoice_latexnotes_statement | 8 | ||||
| -rw-r--r-- | conf/invoice_template_statement | 27 | 
4 files changed, 403 insertions, 0 deletions
| diff --git a/conf/invoice_html_statement b/conf/invoice_html_statement new file mode 100644 index 000000000..4e4d259af --- /dev/null +++ b/conf/invoice_html_statement @@ -0,0 +1,124 @@ +<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> diff --git a/conf/invoice_latex_statement b/conf/invoice_latex_statement new file mode 100644 index 000000000..302306aa7 --- /dev/null +++ b/conf/invoice_latex_statement @@ -0,0 +1,244 @@ +%% 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}
 diff --git a/conf/invoice_latexnotes_statement b/conf/invoice_latexnotes_statement new file mode 100644 index 000000000..0836d2745 --- /dev/null +++ b/conf/invoice_latexnotes_statement @@ -0,0 +1,8 @@ +%% +%%	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} diff --git a/conf/invoice_template_statement b/conf/invoice_template_statement new file mode 100644 index 000000000..674416a87 --- /dev/null +++ b/conf/invoice_template_statement @@ -0,0 +1,27 @@ + +                                 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 <=- | 
