[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&nbsp;date<BR>
              <B><%= $date %></B>
            </td>
            <td>
            </td>
            <td align="left">
              Invoice&nbsp;number<BR>
              <B><%= $invnum %></B>
            </td>
          </tr>
          <tr>
            <th>&nbsp;</th>
            <th colspan=1 align="center">
              <FONT SIZE="+3">S</FONT><FONT SIZE="+2">TATEMENT</FONT>
            </th>
            <th>&nbsp;</th>
          </tr>
        </table>
      </td>
    </tr>

    <tr>
      <td>
      </td>
      <td align="left">
        <b><%= $payname %></b><BR>
        <%= join('<BR>', grep length($_), $company,
                                          $address1,
                                          $address2,
                                          "$city,&nbsp;$state&nbsp;&nbsp;$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">-&nbsp;'. $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">&nbsp;</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