- f-tex angepasst an commit 64084bfa6ba2c9167ff4a5
[kivitendo-erp.git] / templates / print / f-tex / default.tex
diff --git a/templates/print/f-tex/default.tex b/templates/print/f-tex/default.tex
new file mode 100644 (file)
index 0000000..cbaed19
--- /dev/null
@@ -0,0 +1,568 @@
+% ----------------------------------------------------------
+%  letter.tex
+%  Globale Vorlage fuer Briefartige Documente LX-Office 2.6
+%
+%  Changelog: see gitlog
+   \newcommand{\ftLetterVersion}{1.1-u  (03.01.2012)}
+%
+%  Lizenz
+%  http://www.gnu.de/licenses/gpl-3.0.html
+%
+%  Siehe ./README
+%
+%  Autor: Wulf Coulmann scripts_at_gpl.coulmann.de
+%  Aufgebaut auf invoice.tex 0.1 kmk@lilalaser.de
+%
+% ----------------------------------------------------------
+
+\documentclass[letter,fontsize=11pt]{scrlttr2}
+
+
+\begingroup
+  \makeatletter
+  \@latex@warning@no@line{ #### this is default.tex \ftLetterVersion #####}
+\endgroup
+
+
+\usepackage{ifpdf}
+\usepackage{graphicx}
+\usepackage{german}
+\usepackage{textcomp}
+\usepackage{lastpage}
+\usepackage{filecontents}
+\usepackage{etex}
+\usepackage{ltxtable}
+\usepackage{tabularx}
+\usepackage{longtable}
+\usepackage{booktabs}
+\usepackage{numprint}
+\usepackage{xstring}
+\newcommand{\leer}{}
+\usepackage{zwischensumme}
+\ifthenelse{\isundefined{\employeecountry}}{\input{mydata}}{}
+
+%% meta infos
+\newcommand{\docname}{<%template_meta.formname NOESCAPE%>}
+\newcommand{\TemplateMetaLanguageDescription}{<%template_meta.language.description NOESCAPE%>}
+\newcommand{\LangCode}{<%template_meta.language.template_code NOESCAPE%>}
+\newcommand{\TemplateMetaLanguageOutputNumberformat}{<%template_meta.language.output_numberformat NOESCAPE%>}
+\newcommand{\TemplateMetaLanguageOutputDateformat}{<%template_meta.language.output_dateformat NOESCAPE%>}
+\newcommand{\TemplateMetaFormat}{<%template_meta.format NOESCAPE%>}
+\newcommand{\TemplateMetaExtension}{<%template_meta.extension NOESCAPE%>}
+\newcommand{\TemplateMetaMedia}{<%template_meta.media NOESCAPE%>}
+\newcommand{\TemplateMetaPrinterDescription}{<%template_meta.printer.description NOESCAPE%>}
+\newcommand{\TemplateMetaPrinterTemplateCode}{<%template_meta.printer.template_code NOESCAPE%>}
+
+%%%%%%%%% Report-Variablen umsetzen, damit latex sie in lxbriefkopf.tex sieht.
+%%%% Die eigenen Daten
+\newcommand{\employeename}{<%employee_name%>}
+\newcommand{\employeecompany}{<%employee_company%>}
+\newcommand{\employeeaddress}{<%employee_address%>}
+\newcommand{\employeetel}{<%employee_tel%>}
+\newcommand{\employeefax}{<%employee_fax%>}
+\newcommand{\employeecoustid}{<%employee_co_ustid%>}
+\newcommand{\employeetaxnumber}{<%employee_taxnumber%>}
+\newcommand{\media}{<%media%>}
+
+
+%%%% Adressat
+\newcommand{\name}{<%name%>}
+\newcommand{\Shipname}{\ifthenelse{\equal{<%shiptoname%>}{\leer}}{<%name%>}{<%shiptoname%>}}
+\newcommand{\departmentone}{<%department_1%>}
+\newcommand{\departmenttwo}{<%department_2%>}
+\newcommand{\cpgreeting}{<%cp_greeting%>}
+\newcommand{\cptitle}{<%cp_title%>}
+\newcommand{\cpgivenname}{<%cp_givenname%>}
+\newcommand{\cpname}{<%cp_name%>}
+\newcommand{\street}{<%street%>}
+\newcommand{\Shipstreet}{\ifthenelse{\equal{<%shiptostreet%>}{\leer}}{<%street%>}{<%shiptostreet%>}}
+\newcommand{\country}{<%country%>}
+\newcommand{\Shipcountry}{<%shiptocountry%>}
+\newcommand{\UstId}{<%ustid%>}
+\newcommand{\zipcode}{<%zipcode%>}
+\newcommand{\Shipzipcode}{\ifthenelse{\equal{<%shiptozipcode%>}{\leer}}{<%zipcode%>}{<%shiptozipcode%>}}
+\newcommand{\city}{<%city%>}
+\newcommand{\Shipcity}{\ifthenelse{\equal{<%shiptocity%>}{\leer}}{<%city%>}{<%shiptocity%>}}
+\newcommand{\phone}{<%customerphone%>}
+\newcommand{\fax}{<%customerfax%>}
+
+%%%% Variablen, die sich auf das ganze Dokument beziehen
+\newcommand{\kundennummer}{<%customernumber%>}
+\newcommand{\vendornumber}{<%vendornumber%>}
+\newcommand{\quonumber}{<%quonumber%>}                     % Angebotsnummer
+\newcommand{\ordnumber}{<%ordnumber%>}                     % Auftragsnummer bei uns
+\newcommand{\cusordnumber}{<%cusordnumber%>}               % Auftragsnummer beim Kunden
+\newcommand{\invnumber}{<%invnumber%>}                     % Rechnungsnummer
+\newcommand{\donumber}{<%donumber%>}                       % Lieferscheinnummer
+%\newcommand{\docnumber}{Rechnungsnummer: \invnumber}
+\newcommand{\quodate}{<%quodate%>}                         % Angebotsdatum
+\newcommand{\orddate}{<%orddate%>}                         % Auftragsdatum
+\newcommand{\reqdate}{<%reqdate%>}                         % gewuenschtes Lieferdatum
+\newcommand{\deliverydate}{<%deliverydate%>}                % Lieferdatum
+\newcommand{\invdate}{<%invdate%>}                         % Rechnungsdatum
+\newcommand{\transdate}{<%transdate%>}                     % Lieferscheindatum
+\newcommand{\terms}{<%terms%>}                             % Zahlungsfrist
+\newcommand{\duedate}{<%duedate%>}                         % Fälligkeitsdatum
+\newcommand{\invtotal}{<%invtotal%>}                       % Gesamtbetrag
+\newcommand{\paid}{<%paid%>}                               % Schon bezahlt
+\newcommand{\total}{<%total%>}                             % Restbetrag
+\newcommand{\subtotal}{<%subtotal NOFORMAT%>}                       % Restbetrag
+\newcommand{\paymentterms}{<%payment_terms%>}              % Zahlungsbedingungen
+\newcommand{\paymentPrivatEnd}{E}                          % Endung bei Privatkunden
+\newcommand{\paymenttype}{<%payment_description%>}         % name der Zahlungs-art - fuer Steuerung brutto/netto
+
+
+%%%% Lieferadresse
+\newcommand{\shiptoname}{<%shiptoname%>}
+\newcommand{\shiptocontact}{<%shiptocontact%>}
+\newcommand{\shiptodepartmentone}{<%shiptodepartment_1%>}
+\newcommand{\shiptodepartmenttwo}{<%shiptodepartment_2%>}
+\newcommand{\shiptostreet}{<%shiptostreet%>}
+\newcommand{\shiptocity}{<%shiptocity%>}
+\newcommand{\shiptocountry}{<%shiptocountry%>}
+\newcommand{\shiptophone}{<%shiptophone%>}
+\newcommand{\shiptozipcode}{<%shiptozipcode%>}
+\newcommand{\shiptofax}{<%shiptofax%>}
+
+%%%% Die Waehrungsvariable in Waehrunszeichen umsetzen
+\newcommand{\currency}{<%currency%>}
+\ifthenelse{\equal{\currency}{EUR}}{\let\currency\euro}{}
+\ifthenelse{\equal{\currency}{YEN}}{\let\currency\textyen}{}
+\ifthenelse{\equal{\currency}{GBP}}{\let\currency\pounds}{}
+\ifthenelse{\equal{\currency}{USD}}{\let\currency\$}{}
+
+%%%%%%%%%%%%% Ende Reportvariablen-Umsetzung
+
+\newcommand{\NoValue}{0}
+\newcommand{\Picklist}{0}
+\newcommand{\PurchaseOrder}{0}
+\newcommand{\trash}{0}
+\newcommand{\nonemptyline}[2]{\ifthenelse{\equal{#2}{\leer}}{}{#1#2~\\}}
+\newcommand{\MyAdress}{\IfStrEq{\docname}{sales_delivery_order}{\Shipname~\\
+  % lieferadresse wenn Lieferschein
+    \nonemptyline{\cpgreeting{ }\cpgivenname{ }}{\cpname}
+    \nonemptyline{}{\departmentone}
+    \Shipstreet ~\\
+    \Shipzipcode{ }\Shipcity
+    \ifthenelse{\equal{\Shipcountry}{\employeecountry}}{}{~\\ \Shipcountry}   % Laenderangabe wird nur gedruckt,
+    ~                                             % wenn der Empfaenger nicht im eigenen Land sitzt.
+  }{
+    \name~\\
+    \nonemptyline{\cpgreeting{ }\cpgivenname{ }}{\cpname}
+    \nonemptyline{}{\departmentone}
+    \street ~\\
+    \zipcode{ }\city
+    \ifthenelse{\equal{\country} {\employeecountry}}{}{
+         \ifthenelse{\equal{\country}{\leer}}{}{ ~\\ \country} } % Laenderangabe wird nur gedruckt,
+    ~                                           % wenn der Empfaenger nicht im eigenen Land sitzt.
+  }
+}
+
+
+
+\begin{document}
+
+%%% dei folgenden Funktionen lesen den Dokumentennamen aus und _muessen_nach_ \begin{dokument} stehen.
+
+% ==== statische Begriffe in der aktuellen Sprache einlesen
+\input{translations}
+
+
+\ifthenelse{\bgPdfEmailOnly = 1 }{
+  \ifthenelse{\equal{\media}{email}}{
+  }{
+    \firsthead{}
+    \watermark{}
+  }
+}{}
+
+
+% ==== dokumenttyp ermitteln
+\IfStrEq{\docname}{pick_list}{
+  % Sammelliste
+  \setkomavar{backaddress}{\DeliveryAddress}
+  \firsthead{
+      \hspace{-3mm}
+     \resizebox{\useplength{firstheadwidth}-50mm}{!}{%
+           \huge \TitlePicklist
+    }
+  }
+  \renewcommand{\NoValue}{1}
+  \renewcommand{\Picklist}{1}
+  \newcommand{\doctype}{}
+  \newcommand{\MyDocdate}{\transdate}
+  \newcommand{\DocNoTitle}{\DelorderNumber}
+  \newcommand{\docnumber}{\donumber}
+  \renewcommand{\deliverydate}{\transdate}
+  % 2. Documentnummer
+    \ifthenelse{\equal{\ordnumber}{\leer}}{
+    % wenn keine Auftragsnummer -> Angebotsnummer
+      \newcommand{\SecNoTitle}{\QuotationNumber}
+      \newcommand{\secnumber}{\quonumber}
+    }{
+      \newcommand{\SecNoTitle}{\OrderNumber}
+      \newcommand{\secnumber}{\ordnumber}
+    }
+}{}
+\IfStrEq{\docname}{sales_delivery_order}{
+  % Lieferschein
+  \renewcommand{\NoValue}{1}
+  \newcommand{\doctype}{\TitleDelorder}
+  \newcommand{\MyDocdate}{\transdate}
+  \newcommand{\DocNoTitle}{\DelorderNumber}
+  \newcommand{\docnumber}{\donumber}
+  \renewcommand{\deliverydate}{\transdate}
+  % 2. Documentnummer
+    \ifthenelse{\equal{\ordnumber}{\leer}}{
+    % wenn keine Auftragsnummer -> Angebotsnummer
+      \newcommand{\SecNoTitle}{\QuotationNumber}
+      \newcommand{\secnumber}{\quonumber}
+    }{
+      \newcommand{\SecNoTitle}{\OrderNumber}
+      \newcommand{\secnumber}{\ordnumber}
+    }
+}{}
+\IfStrEq{\docname}{invoice}{
+  % Rechnung
+  \newcommand{\doctype}{\TitleInv}
+  \newcommand{\MyDocdate}{\invdate}
+  \newcommand{\DocNoTitle}{\InvNumber}
+  \newcommand{\docnumber}{\invnumber}
+  % 2. Documentnummer
+    \ifthenelse{\equal{\ordnumber}{\leer}}{
+    % wenn keine Auftragsnummer -> Angebotsnummer
+      \newcommand{\SecNoTitle}{\QuotationNumber}
+      \newcommand{\secnumber}{\quonumber}
+    }{
+      \newcommand{\SecNoTitle}{\OrderNumber}
+      \newcommand{\secnumber}{\ordnumber}
+    }
+}{}
+\IfStrEq{\docname}{proforma}{
+  \newcommand{\doctype}{\TitleProforma}
+  \newcommand{\MyDocdate}{\invdate}
+  \newcommand{\DocNoTitle}{\InvNumber}
+  \newcommand{\docnumber}{\invnumber}
+  % 2. Documentnummer
+    \ifthenelse{\equal{\ordnumber}{\leer}}{
+    % wenn keine Auftragsnummer -> Angebotsnummer
+      \newcommand{\SecNoTitle}{\QuotationNumber}
+      \newcommand{\secnumber}{\quonumber}
+    }{
+      \newcommand{\SecNoTitle}{\OrderNumber}
+      \newcommand{\secnumber}{\ordnumber}
+    }
+}{}
+\IfStrEq{\docname}{purchase_order}{
+  \renewcommand{\PurchaseOrder}{1}
+  \newcommand{\doctype}{\TitlePurchaseOrder}
+  \newcommand{\MyDocdate}{\orddate}
+  \newcommand{\DocNoTitle}{\RequestOrderNumber}
+  \newcommand{\docnumber}{\ordnumber}
+  \renewcommand{\deliverydate}{\reqdate}
+  \renewcommand{\DelDate}{\ReqByTitle}
+  \renewcommand{\CustomerID}{\VendorID}
+  \renewcommand{\kundennummer}{\vendornumber}
+  \newcommand{\SecNoTitle}{}
+  \newcommand{\secnumber}{}
+}{}
+\IfStrEq{\docname}{credit_note}{
+  \newcommand{\doctype}{\TitleCreditNote}
+  \newcommand{\MyDocdate}{\invdate}
+  \newcommand{\DocNoTitle}{\CredNumber}
+  \newcommand{\docnumber}{\invnumber}
+  % keine 2. Documentnummer
+    \newcommand{\SecNoTitle}{}
+    \newcommand{\secnumber}{}
+}{}
+\IfStrEq{\docname}{sales_order}{
+  % Auftragsbestaetigung
+  \newcommand{\doctype}{\TitleSalesOrder}
+  \newcommand{\MyDocdate}{\orddate}
+  \renewcommand{\deliverydate}{\reqdate}
+  \newcommand{\DocNoTitle}{\OrderNumber}
+  \newcommand{\docnumber}{\ordnumber}
+  % 2. Documentnummer
+    \ifthenelse{\equal{\ordnumber}{\leer}}{
+    % wenn keine Angebotsnummer -> leer
+      \newcommand{\SecNoTitle}{}
+      \newcommand{\secnumber}{}
+    }{
+      \newcommand{\SecNoTitle}{\QuotationNumber}
+      \newcommand{\secnumber}{\quonumber}
+    }
+}{ }
+\IfStrEq{\docname}{sales_quotation}{
+  % Angebot
+  \newcommand{\doctype}{\TitleSalesQuotation}
+  \newcommand{\MyDocdate}{\quodate}
+  \renewcommand{\DelDate}{\ValidUntil}
+  \renewcommand{\deliverydate}{\reqdate}
+  \newcommand{\DocNoTitle}{\QuotationNumber}
+  \newcommand{\docnumber}{\quonumber}
+  % 2. Documentnummer
+    \newcommand{\SecNoTitle}{}
+    \newcommand{\secnumber}{}
+}{ }
+
+
+
+% ==== \paid auf 0.00 falls leer
+\IfSubStr{\paid}{\DecimalSign}{}{\renewcommand{\paid}{0{\DecimalSign}00}}
+
+
+
+\setkomavar{date}{}
+
+
+\begin{letter}{{\ifthenelse{\isnamedefined{MyAdressfield}}{\MyAdressfield
+  }{\MyAdress
+  }}
+}
+\opening{}
+
+%========Datum und Nummern====================================================
+
+\newcommand{\DocId}{
+  \begin{tabular*}{\textwidth+1em }{@{\extracolsep{\fill}}llllr}
+    \MakeUppercase{\tiny \DocNoTitle} &
+    \MakeUppercase{\tiny \CustomerID} &
+    \MakeUppercase{\tiny \SecNoTitle } &
+    \MakeUppercase{\tiny \DelDate }   &
+    \MakeUppercase{\tiny \Date}~\\
+    \mainfont\docnumber      &
+    \mainfont\kundennummer   &
+    \mainfont\secnumber   &
+    \mainfont\deliverydate  &
+    \mainfont\MyDocdate~\\
+\end{tabular*}  ~\\
+}
+
+\hspace{-0.5em} \DocId
+
+
+
+
+\nexthead{
+  \ifthenelse{\bgPdfFirstPageOnly = 1 }{
+    \hspace{-4mm}  \DocId
+  }{}
+}
+\vspace{ 5mm}
+
+{\noindent\textbf\doctype}~\\
+\IfEndWith{\paymenttype}{\paymentPrivatEnd}{\PriceInclTax }{ }
+
+
+%======Die eigentliche-Tabelle========================================
+
+% temporaere Datei mit Tabelle anlegen
+\begin{filecontents}{tabelle.tex}
+\mainfont
+\resetlaufsumme
+
+
+
+  \ifthenelse{\NoValue > 0 }
+  { % Tabelle ohne Preisen
+    \ifthenelse{\Picklist = 1 }{
+
+    \begin{longtable}{@{}rlX@{ }rlrrrl@{}}
+     }{
+    \begin{longtable}{@{}rlX@{ }rlrr@{}}
+
+     }
+      % Kopfzeile der Tabelle
+
+        {\Pos} &
+        {\Number} &
+        {\ItemNo} &
+        {\Count} &
+        {\Unit} \hspace{2mm}
+        \ifthenelse{\Picklist = 1 }{& {\Take} & {\Storage} }{}
+        ~\\
+        \midrule
+      \endfirsthead
+
+      % Tabellenkopf nach dem Umbruch
+        {\Pos} &
+        {\Number} &
+        {\ItemNo} &
+        {\Count} &
+        {\Unit} \hspace{2mm}
+        \ifthenelse{\Picklist = 1 }{& {\Take} & {\Storage} }{}
+        ~\\
+
+        \midrule
+      \endhead
+
+      <%foreach number%>
+        <%runningnumber%>                        % Laufende Positionsnummer
+        &
+        <%number%>                               % Artikelnummer
+        &
+        <%description%>                           % Kurzbeschreibung des Artikels
+        \ifthenelse{\equal{<%longdescription%>}{\leer}}{}{ \newline <%longdescription%>}
+        % Ein zeilenweises Auslieferdatum, wenn es gesetzt bei der Position hinterlegt ist.
+        \ifthenelse{\equal{<%deliverydate_oe%>}{\leer}}{}{
+                \newline \DelDate:~<%deliverydate_oe%>}
+        &
+        <%qty NOFORMAT%>                 % Menge
+        &
+        <%unit%>               % Einheit
+        %\ifthenelse{\Picklist = 1 }{& {x} & {x} }{}
+        %\ifthenelse{\Picklist = 1 }{& {x} & {x} \hhline{~~~~~--} }{~\\}
+        \ifthenelse{\Picklist = 1 }{& {\underline{;~~~~~~~~~}} & {\underline{;~~~~~~~~~}}~\\ }{~\\}
+        %~\\ %
+      <%end number%>
+    \end{longtable}     % Ende der zentralen Tabelle
+  }{ % Tabelle mit Preisen
+    \begin{longtable}{@{}rlX@{ }rlrrr@{}}
+      % Kopfzeile der Tabelle
+
+        {\Pos} &
+        {\Number} &
+        {\ItemNo} &
+        {\Count} &
+        {\Unit} &
+        {\Fee} &
+        {\Dis} &
+        {\Total} \hspace{2mm} ~\\
+        \midrule
+      \endfirsthead
+
+      % Tabellenkopf nach dem Umbruch
+        {\Pos} &
+        {\Number} &
+        {\ItemNo} &
+        {\Count} &
+        {\Unit} &
+        {\Fee} &
+        {\Dis} &
+        {\Total} \hspace{2mm} ~\\
+        \midrule
+        \multicolumn{7}{r}{ \rule{0mm}{5mm} \TabCarry{:} \MarkZwsumPos}
+      \endhead
+
+
+      % Fuss der Teiltabellen
+        \multicolumn{7}{r}{ \rule{0mm}{5mm} \TabSubTotal{:} \MarkZwsumPos } ~\\
+      \endfoot
+
+      % Das Ende der Tabelle
+        \midrule
+        \multicolumn{7}{r}{ \rule{0mm}{5mm} \TabSubTotal{:} \MarkZwsumPos} ~\\
+      \endlastfoot
+
+      <%foreach number%>
+        <%runningnumber%>                        % Laufende Positionsnummer
+        &
+        <%number%>                               % Artikelnummer
+        &
+        <%description%>                           % Kurzbeschreibung des Artikels
+        \ifthenelse{\equal{<%longdescription%>}{\leer}}{}{ \newline <%longdescription%>}
+        % Ein zeilenweises Auslieferdatum, wenn es gesetzt ist.
+        \ifthenelse{\equal{<%reqdate%>}{\leer}}{}{
+                \newline \DelDate:~<%reqdate%>}
+        &
+        <%qty NOFORMAT%>         % Menge
+        &
+        <%unit%>              % Einheit
+        &
+        %\IfEndWith{\paymentterms}{_e}{EN}{\brutto{<%sellprice NOFORMAT%>}{<%qty NOFORMAT%>}{<%p_discount%>}}
+        \IfEndWith{\paymenttype}{\paymentPrivatEnd}{
+            \BruttoSellPrice{<%sellprice NOFORMAT%>}{<%tax_rate%>}
+            &
+            \ifthenelse{\equal{<%p_discount%>}{0}}{}{ -<%p_discount%>\%}
+            &
+            \BruttoWert{<%linetotal NOFORMAT%>}{<%tax_rate%>}
+        }{
+            \numprint{<%sellprice NOFORMAT%>}
+            &
+            \ifthenelse{\equal{<%p_discount%>}{0}}{}{ -<%p_discount%>\%}
+            &
+            \Wert{<%linetotal NOFORMAT%>} % Zeilensumme addieren
+        }
+        ~\\ %
+      <%end number%>
+    \end{longtable}     % Ende der zentralen Tabelle
+  }
+\end{filecontents}  % Ende der Hilfsdatei.
+
+\LTXtable{\textwidth}{tabelle.tex}
+
+\rule{\textwidth}{0pt}   % Ein (unsichtbarer) Strich quer ueber die Seite
+\vspace{ 5mm}
+\vspace{-2em plus 10em minus 2em}~\\
+\ifthenelse{\NoValue > 0 }
+{ % wenn keine Zahlen
+}{ % Wenn Zahlen
+  \parbox{\textwidth}{
+    \mainfont
+    %
+    %
+    \setlength{\tabcolsep}{0.2em}
+    \ifthenelse{\equal{\paid}{0{\DecimalSign}00} }
+    {  % Wenn noch nichts gezahlt wurde
+       \IfSubStr{\invtotal}{\DecimalSign}{}{
+         \fpAdd{\invtotal}{0}{<%subtotal NOFORMAT%>}
+         <%foreach tax%>
+         \fpAdd{\invtotal}{\invtotal}{<%tax NOFORMAT%>}
+         <%end tax%>
+       }
+       \hfill
+       \begin{tabular}{@{}rrr@{}}
+               %{Summe vor Steuern:}& {\numprint{<%subtotal NOFORMAT%>}} & ~\\
+
+               % Die unterschiedlichen Steueranteile getrennt ausweisen
+               <%foreach tax%>
+                 { \IfEndWith{\paymenttype}{\paymentPrivatEnd}{\TaxInc }{ } <%taxdescription%>}
+                          &
+                 {\numprint{<%tax NOFORMAT%>}}& ~\\
+               <%end tax%>
+               \midrule[1pt]
+               {\Sum~ \currency:} & \textbf{\numprint{\invtotal}}
+       \end{tabular}
+    }
+    {  % Wenn bereits etwas gezahlt wurde
+       \hfill
+       \begin{tabular}{@{}rrr@{}}
+
+               {\EbT}& {\numprint{<%subtotal NOFORMAT%>}} & ~\\
+
+               % Die unterschiedlichen Steueranteile getrennt ausweisen
+               <%foreach tax%>
+               {<%taxdescription%>}
+                        &
+               {\numprint{<%tax NOFORMAT%>}}& ~\\
+               <%end tax%>
+
+               \midrule  % Ein dünner Strich
+               \Sum & \numprint{\invtotal} & ~\\
+
+               <%foreach payment%>
+                       \AlreadyPayed~ {<%paymentdate%>}:& -{\numprint{<%payment%>}} & ~\\
+               <%end paymentdate%>
+
+               \midrule[2pt]  % Ein etwas dickerer Strich
+               {\Left~ \currency:} & \numprint{\total}
+       \end{tabular}
+    }% ende ithenelse
+
+  } %Ende des Summenkasten
+}
+
+\vfill                 % Den Rest-Text soweit wie möglich nach unten schieben
+\ifthenelse{\isempty{<%notes%>}}{}{
+      \mainfont
+\noindent <%notes%> ~\\[2em]
+      }%
+\small
+\noindent \YourOrder
+\ifthenelse{\Picklist = 0}{\noindent \ifthenelse{\equal{<%ustid%>}{\leer}}{}{\UstidTitle} \UstId}{}
+\noindent \paymenthints          % ist in translations.tex deffiniert
+\ifthenelse{\PurchaseOrder = 0}{\noindent \paymentterms}{}
+
+
+\end{letter}
+\end{document}