X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=conf%2Finvoice_latex;h=7facc19da8480dffb2f1f28f4ecd4ebf97287af4;hp=2acd7102d4b95d366d92a9e0426ef144983e540f;hb=f14d53ff0e570cc24395b9d7953ea427ac468de3;hpb=988ec48fea05902eb7ea22e43a44e86a36eee06a diff --git a/conf/invoice_latex b/conf/invoice_latex index 2acd7102d..7facc19da 100644 --- a/conf/invoice_latex +++ b/conf/invoice_latex @@ -19,7 +19,7 @@ \documentclass[letterpaper]{article} -\usepackage{fancyhdr,lastpage,ifthen,longtable,afterpage,caption,multirow,bigstrut} +\usepackage{fancyhdr,lastpage,ifthen,fslongtable,afterpage,caption,multirow,bigstrut} \usepackage{graphicx} % required for logo graphic \addtolength{\voffset}{-0.0cm} % top margin to top of header @@ -51,7 +51,7 @@ } } -\newcommand{\extracouponspace}{4.8cm} +\newcommand{\extracouponspace}{3.6cm} % Adjust the inset of the mailing address \newcommand{\addressinset}[1][]{\hspace{1.0cm}} @@ -156,7 +156,27 @@ \renewcommand{\familydefault}{phv} -% Commands for freeside description... +% Commands for freeside table header... + +\newcommand{\FSdescriptionlength} { [@-- $unitprices ? '8.2cm' : '12.8cm' --@] } +\newcommand{\FSdescriptioncolumncount} { [@-- $unitprices ? '4' : '6' --@] } +\newcommand{\FSunitcolumns}{ [@-- $unitprices ? '\makebox[2.5cm][l]{\textbf{~~Unit Price}}&\makebox[1.4cm]{\textbf{~Quantity}}&' : '' --@] } + +\newcommand{\FShead}{ + \hline + \rule{0pt}{2.5ex} + \makebox[1.4cm]{\textbf{Ref}} & +% \makebox[2.9cm][l]{\textbf{Description}}& +% \makebox[1.4cm][l]{}& +% \makebox[1.4cm][l]{}& +% \makebox[2.5cm][l]{}& + \multicolumn{\FSdescriptioncolumncount}{l}{\makebox[\FSdescriptionlength][l]{\textbf{Description}}}& + \FSunitcolumns + \makebox[1.6cm][r]{\textbf{Amount}} \\ + \hline +} + +% ...description... \newcommand{\FSdesc}[5]{ \multicolumn{1}{c}{\rule{0pt}{2.5ex}\textbf{#1}} & \multicolumn{4}{l}{\textbf{#2}} & @@ -168,7 +188,7 @@ \newcommand{\FSextdesc}[1]{ \multicolumn{1}{l}{\rule{0pt}{1.0ex}} & %% \multicolumn{2}{l}{\small{~-~#1}}\\ - ~~~#1\\ +#1\\ } % ...and total line items. \newcommand{\FStotaldesc}[2]{ @@ -177,22 +197,10 @@ \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 -% -% -% -[@-- $coupon ? '\enlargethispage{-\extracouponspace}' : '' --@] +% Headers and footers defined for the first page \addressinset \rule{0.5cm}{0cm} \makebox{ -\begin{minipage}[t]{5.0cm} +\begin{minipage}[t]{7.0cm} \vspace{0.25cm} \textbf{[@-- $payname --@]}\\ \addressline{[@-- $company --@]} @@ -204,7 +212,6 @@ \hfill \makebox{ \begin{minipage}[t]{6.4cm} -\begin{flushright} [@-- if ($ship_enable) { $OUT .= '\textbf{Service Address}\\\\'; @@ -218,6 +225,7 @@ $OUT .= ''; } --@] +\begin{flushright} Terms: [@-- $terms --@]\\ [@-- $po_line --@]\\ \end{flushright} @@ -232,35 +240,18 @@ Terms: [@-- $terms --@]\\ $OUT .= '\large\textsc{'. $section->{'pretotal'}. '}\\\\'; $OUT .= '\\end{flushright}'; } + $OUT .= '\pagebreak' if $section{'post_total'}; $OUT .= '\captionsetup{singlelinecheck=false,justification=raggedright,font={Large,sc,bf}}'; + $OUT .= '\ifthenelse{\equal{\thepage}{1}}{\setlength{\LTextracouponspace}{\extracouponspace}}{\setlength{\LTextracouponspace}{0pt}}' + if $coupon; $OUT .= '\begin{longtable}{cllllllr}'; $OUT .= '\caption*{ '; $OUT .= ($section->{'description'}) ? $section->{'description'}: 'Charges'; $OUT .= '}\\\\'; - $OUT .= '\hline'; - $OUT .= '\rule{0pt}{2.5ex}'; - $OUT .= '\makebox[1.4cm]{\textbf{Ref}} & '; - $OUT .= '\makebox[2.0cm][l]{\textbf{Description}}& '; - $OUT .= '\makebox[2.0cm][l]{}& '; - $OUT .= '\makebox[2.0cm][l]{}& '; - $OUT .= '\makebox[2.0cm][l]{}& '; - $OUT .= '\makebox[2.0cm][l]{\textbf{'. ($unitprices ? '~~Unit Price' : ''). '}&'; - $OUT .= '\makebox[2.0cm]{\textbf{'. ($unitprices ? '~Quantity' : ''). '}&'; - $OUT .= '\makebox[2.0cm][r]{\textbf{Amount}} \\\\'; - $OUT .= '\hline'; + $OUT .= '\FShead'; $OUT .= '\endfirsthead'; $OUT .= '\multicolumn{7}{r}{\rule{0pt}{2.5ex}Continued from previous page}\\\\'; - $OUT .= '\hline'; - $OUT .= '\rule{0pt}{2.5ex}'; - $OUT .= '\makebox[1.4cm]{\textbf{Ref}} & '; - $OUT .= '\makebox[2.0cm][l]{\textbf{Description}}& '; - $OUT .= '\makebox[2.0cm][l]{}& '; - $OUT .= '\makebox[2.0cm][l]{}& '; - $OUT .= '\makebox[2.0cm][l]{}& '; - $OUT .= '\makebox[2.0cm][l]{\textbf{'. ($unitprices ? '~~Unit Price' : ''). '}&'; - $OUT .= '\makebox[2.0cm]{\textbf{'. ($unitprices ? '~Quantity' : ''). '}&'; - $OUT .= '\makebox[2.0cm][r]{\textbf{Amount}} \\\\'; - $OUT .= '\hline'; + $OUT .= '\FShead'; $OUT .= '\endhead'; $OUT .= '\multicolumn{7}{r}{\rule{0pt}{2.5ex}Continued on next page...}\\\\'; $OUT .= '\endfoot'; @@ -281,6 +272,7 @@ Terms: [@-- $terms --@]\\ $OUT .= '\hline'; $OUT .= '\endlastfoot'; + my $lastref = 0; foreach my $line ( grep { ( scalar( @sections ) > 1 ? $section->{'description'} eq $_->{'section'}->{'description'} @@ -293,17 +285,22 @@ Terms: [@-- $terms --@]\\ # Don't break-up small packages. my $rowbreak = @$ext_description < 5 ? '*' : ''; - $OUT .= "\\hline\n"; - $OUT .= '\FSdesc{' . $line->{'ref'} . '}{' . $line->{'description'} . '}' . + $OUT .= "\\hline\n" if ($line->{'ref'} && $line->{'ref'} ne $lastref); + $OUT .= '\FSdesc'. + '{' . ( $line->{'ref'} ne $lastref ? $line->{'ref'} : '' ) . '}'. + '{' . $line->{'description'} . '}' . '{' . ( $unitprices ? $line->{'unit_amount'} : '' ) . '}'. '{' . ( $unitprices ? $line->{'quantity'} : '' ) . '}' . '{' . $line->{'amount'} . "}${rowbreak}\n"; + $lastref = $line->{'ref'}; foreach my $ext_desc (@$ext_description) { if ( $ext_desc !~ /[^\\]&/ ) { $ext_desc = substr($ext_desc, 0, 80) . '...' if (length($ext_desc) > 80); - $ext_desc = '\small{'. $ext_desc. '}'; + $ext_desc = '\multicolumn{6}{l}{\small{~~~'. $ext_desc. '}}'; + }else{ + $ext_desc = "~~~$ext_desc"; } $OUT .= '\FSextdesc{' . $ext_desc . '}' . "${rowbreak}\n"; } @@ -321,5 +318,8 @@ Terms: [@-- $terms --@]\\ --@] \vfill -[@-- $notes --@] +\begin{minipage}[t]{\textwidth} + [@-- $notes --@] + [@-- $coupon ? '\ifthenelse{\equal{\thepage}{1}}{\rule{0pt}{\extracouponspace}}{}' : '' --@] +\end{minipage} \end{document}