Merge pull request #31 from kivitendo/LaTeX-colored-tables
authorJan Büren <jan@kivitendo-premium.de>
Thu, 12 Aug 2021 10:32:53 +0000 (12:32 +0200)
committerGitHub <noreply@github.com>
Thu, 12 Aug 2021 10:32:53 +0000 (12:32 +0200)
LaTeX colored tables

26 files changed:
templates/print/marei/Readme.md
templates/print/marei/bin_list.tex
templates/print/marei/check.tex
templates/print/marei/credit_note.tex
templates/print/marei/deutsch.tex
templates/print/marei/english.tex
templates/print/marei/ic_supply.tex
templates/print/marei/ic_supply_EN.tex
templates/print/marei/insettings.tex
templates/print/marei/invoice.tex
templates/print/marei/kiviletter.sty
templates/print/marei/kivitendo.sty
templates/print/marei/letter.tex
templates/print/marei/pick_list.tex
templates/print/marei/proforma.tex
templates/print/marei/purchase_delivery_order.tex
templates/print/marei/purchase_order.tex
templates/print/marei/receipt.tex
templates/print/marei/request_quotation.tex
templates/print/marei/requirement_spec.tex
templates/print/marei/sales_delivery_order.tex
templates/print/marei/sales_order.tex
templates/print/marei/sales_quotation.tex
templates/print/marei/statement.tex
templates/print/marei/zahlungserinnerung.tex
templates/print/marei/zahlungserinnerung_invoice.tex

index 8a272bd..00d4ad8 100644 (file)
@@ -1,21 +1,20 @@
-
 # Bemerkungen zum Vorlagensatz
-### © 2020 by Marei Peischl (peiTeX TeXnical Solutions)
+### © 2020–2021 by Marei Peischl (peiTeX TeXnical Solutions)
 
 ## Quickstart (wo kann was angepasst werden?):
 
   * insettings.tex : Pfad zu Angaben über Mandanten (default: firma)
                      Logo/Briefpapier
                      Layout der Kopf/Fußzeile
-                    innerhalb dieser Datei werden auch die folgenden Dateien geladen:
-                        firma/ident.tex        : Angaben über Mandanten
-                        firma/<währungskürzel>_account.tex
+                     innerhalb dieser Datei werden auch die folgenden Dateien geladen:
+                     firma/ident.tex        : Angaben über Mandanten
+                     firma/<währungskürzel>_account.tex
 
 * Es muß mindestens eine Sprache angelegt werden!
   -  deutsch.tex    : Textschnipsel für Deutsch
-                     Dafür eine Sprache mit Vorlagenkürzel DE anlegen
+                      Dafür eine Sprache mit Vorlagenkürzel DE anlegen
   -  english.tex    : Textschnipsel für Englisch
-                     Dafür eine Sprache mit Vorlagenkürzel EN anlegen
+                      Dafür eine Sprache mit Vorlagenkürzel EN anlegen
 
 
 
@@ -36,7 +35,7 @@ Mandantenspezifische Konfiguration findet sich in der Datei *insettings.tex* und
    - Sprache: lädt die entsprechende Sprachdatei, falls DE -> *deutsch.tex*, falls EN *englisch.tex* und setzt die babel Optionen. Die Datei enthält Übersetzungen von Einzelbegriffen und Textbausteinen.
    - Lädt die Konfigurationsdatei, ohne spezielle Mandanten ist der Suchpfad zur Konfiguration der Unterordner *firma/*
    - Lädt die Datei *ident.tex*, sowie die Abbildung Briefkopf.
-               
+
 #### Mandanten / Firma:
 
 Um gleiche Vorlagen für verschiedene Firmen verwenden zu können, wird je
@@ -71,8 +70,14 @@ werden.
 Desweiteren sind (auskommentierte) Beispiele enthalten für eine
 Grafik als Briefkopf, nur ein Logo, oder ein komplettes DinA4-PDF
 als Briefpapier.
+
+Absolute Positionierung innerhalb des Brief-Layouts ist über die entsprechende Dokumentation des scrlayer-Paketes möglich.
+Da die Voreinstellungen bereits einige Sonderfälle automatisch berücksichtigen ist mit den Anpassungen Vorsicht geboten.
+Sämtliche Einstellungen sollten jedoch außerhalb der *.sty-Dateien vorgenommen werden.
+Anpassungen der insettings.tex betreffen hierbei alle Mandanten. Mandantenspezifische Einstellung sind über die zugehörige Konfigurationsdatei möglich.
+In diesem Fall kann zum Ende der insettings eine weitere Konfigurationsdatei über die Verwendung von \identpath geladen werden. Ein Beispiel ist in der insettings.tex enthalten.
     
-#### Fusszeile:
+#### Fußzeile:
 Die Tabelle im Fuß verwendet die Angaben aus *firma/ident.tex* und
 *firma/*_account.tex*. Ihre Struktur wird in der *insettings.tex* definiert.
 
@@ -140,15 +145,43 @@ Vorbelegt ist die Konfiguration:
 
 ```
 \SetupPricingTabular{
-       pos/header=\position,
-       id/header=\artikelnummer,
-       desc/header=\bezeichnung,
-       amount/header=\menge,
-       price/header=\einzelpreis,
-       pricetotal/header=\gesamtpreis
+  pos/header=\position,
+  id/header=\artikelnummer,
+  desc/header=\bezeichnung,
+  amount/header=\menge,
+  price/header=\einzelpreis,
+  pricetotal/header=\gesamtpreis
 }
 ```
 
+##### Farbige Tabellen
+Versionen ab Juli 2021 enthalten die Möglichkeit farbige Tabellen zu nutzen.
+Die Optionen für die `PricingTabular` Umgebung können wie folgt konfiguriert werden:
+```
+  color-rows=<true/false>,% false
+  rowcolor-odd=<Farbname>,% black!10
+  rowcolor-even=<Farbname>,% leer, also keine Farbbox wird erzeugt
+  rowcolor-header=<Farbname>,% black!35
+  rowcolor-total=<Farbname>,% black!35
+```
+Die Angabe hinter dem Kommentarzeichen entspricht der Voreinstellung.
+
+#### Trennlinien zwischen den Einträgen
+Die Umgebung `PricingTabular` hat die möglichkeit horizontale Linien zwischen den Einträgen der `\FakeTable` einzuziehen.
+Die einfachste Möglichkeit hierfür ist die Option hrule, sie setzt automatisch eine Linie der Dicke `\lightrulewidth`.
+Da diese Linie formal nicht innerhalb der Tabelle platziert wird, können Linienmakros für Tabellen heir nicht verwendet werden.
+Falls dennoch eine manuelle Anpassung der Maße notwendig ist, kann direkt der Code zur Erzeugung der Linie übergeben werden.
+Die Option `hrule` entspricht der Angabe
+```
+  rowsep={
+    \vskip\aboverulesep
+    \hrule\@height\lightrulewidth
+    \vskip\belowrulesep
+  }
+```
+Es wird somit auch der Abstand davor und danach mit eingefügt. In Kombination mit Farbigen Tabellen ist hier vorsicht geboten, da der Abstand nicht mit zur farbigen Box gerechnet wird.
+
+
 ##### Reihenfolge/Anzahl der Spalten ändern
 
 Die Reihenfolge wurde über die Option `columns` festgelegt.
index 69a4e8a..7907ebe 100644 (file)
 \setkomavar{title}{\lagerliste}
 
 \setkomavar{firsthead}{
-       \normalsize
-       \noindent\begin{tabular}[t]{@{}l@{}}
-               <%company%>\strut\\
-               <%address%>
-       \end{tabular}
-       \hfill
- \begin{tabular}[t]{rr@{}}
-               Tel & <%tel%>\\
-               Fax & <%fax%>%
-       \end{tabular}
-       \rule{\linewidth}{\heavyrulewidth}
+  \normalsize
+  \noindent\begin{tabular}[t]{@{}l@{}}
+    <%company%>\strut\\
+    <%address%>
+  \end{tabular}
+  \hfill
 \begin{tabular}[t]{rr@{}}
+    Tel & < %tel%>\\
+    Fax & < %fax%>%
+  \end{tabular}
+  \rule{\linewidth}{\heavyrulewidth}
 }
 
 \makeatletter
 \setkomavar{location}{
-               \backaddr@format{\scriptsize\usekomafont{backaddress}%
-                       \strut\lieferanschrift
-               }
-               \par\medskip\setlength{\parskip}{\z@}
-               \normalsize
-               <%shiptoname%>\par
-               <%if shiptocontact%> <%shiptocontact%><%end if%>\par
-               <%shiptodepartment_1%>\par
-               <%shiptodepartment_2%>\par
-               <%shiptostreet%>\par
-               <%shiptozipcode%> <%shiptocity%>%
-       }
+  \backaddr@format{\scriptsize\usekomafont{backaddress}%
+    \strut\lieferanschrift
+  }
+  \par\medskip\setlength{\parskip}{\z@}
+  \normalsize
+  <%shiptoname%>\par
+  <%if shiptocontact%> <%shiptocontact%><%end if%>\par
+  <%shiptodepartment_1%>\par
+  <%shiptodepartment_2%>\par
+  <%shiptostreet%>\par
+  <%shiptozipcode%> <%shiptocity%>%
+}
 \makeatother
 
 \begin{letter}{
-               <%name%>\ifhmode\\\fi
-               <%street%>\ifhmode\\\fi
-               <%zipcode%> <%city%>\ifhmode\\\fi
-               <%country%>
-       }
+<%name%>\ifhmode\\\fi
+<%street%>\ifhmode\\\fi
+<%zipcode%> <%city%>\ifhmode\\\fi
+<%country%>
+}
 
 \opening{}
 
 \begin{SimpleTabular}[colspec=*6X,headline={\bfseries\bestellnummer&\bfseries\datum&\bfseries\kontakt
-  <%if warehouse%>%
-  &\bfseries\lager%
-  <%end warehouse%>%
-  &\bfseries\lagerplatz&\bfseries\lieferungMit}]
+        <%if warehouse%>%
+        &\bfseries\lager%
+        <%end warehouse%>%
+        &\bfseries\lagerplatz&\bfseries\lieferungMit}]
 
   <%ordnumber%>%
   &%
   <%if shippingdate%>%
-       <%shippingdate%>%
+  <%shippingdate%>%
   <%end shippingdate%>%
   <%if not shippingdate%>%
-       <%orddate%>%
+  <%orddate%>%
   <%end shippingdate%>%
   & <%employee%>%
   <%if warehouse%>%
 \bigskip
 
 \begin{SimpleTabular}[colspec=rlXllrrll,headline={\bfseries\position&\bfseries\nummer&\bfseries\beschreibung&\bfseries\seriennummer & &\bfseries\menge&\bfseries\erh&&\bfseries\lagerplatz}]
-<%foreach number%>%
+  <%foreach number%>%
   <%runningnumber%> & <%number%> & <%description%> & <%serialnumber%> &
   <%deliverydate%> & <%qty%> & <%ship%> & <%unit%> & <%bin%> \\
-<%end number%>%
+  <%end number%>%
 \end{SimpleTabular}
 
 \end{letter}
index 2725140..ad428f7 100644 (file)
 \setplength{firstheadvpos}{4cm}
 
 \setkomavar{firsthead}{
-       \noindent\begin{tabular}[t]{@{}l@{}}
-               <%company%>\strut\\
-               <%address%>
-       \end{tabular}
-       \hfill
-       <%source%>\par
-       \medskip
-       <%text\_amount%> \dotfill <%decimal%>/100 \par\smallskip
-       \hfill <%datepaid%> \hspace{2cm}\strut<%amount%>
+  \noindent\begin{tabular}[t]{@{}l@{}}
+    <%company%>\strut\\
+    <%address%>
+  \end{tabular}
+  \hfill
+  <%source%>\par
+  \medskip
+  <%text\_amount%> \dotfill <%decimal%>/100 \par\smallskip
+  \hfill <%datepaid%> \hspace{2cm}\strut<%amount%>
 }
 
 
 \begin{document}
 
 \begin{letter}{
-               <%name%>\ifhmode\\\fi
-               <%street%>\ifhmode\\\fi
-               <%zipcode%> <%city%>\ifhmode\\\fi
-               <%country%>%
-       }
+<%name%>\ifhmode\\\fi
+<%street%>\ifhmode\\\fi
+<%zipcode%> <%city%>\ifhmode\\\fi
+<%country%>%
+}
 
 \opening{<%company%>}
 \pagestyle{empty}
@@ -43,9 +43,9 @@
 <%name%> \hfill <%datepaid%> \hfill <%source%>%
 
 \begin{SimpleTabular}[colspec=lXrr,headline={\bfseries\rechnung&\bfseries\ausgestellt&\bfseries\faellig&\bfseries\verrechnet}]
-<%foreach invnumber%>%
-<%invnumber%> & <%invdate%> & <%due%> & <%paid%> \\
-<%end invnumber%>%
+  <%foreach invnumber%>%
+  <%invnumber%> & <%invdate%> & <%due%> & <%paid%> \\
+  <%end invnumber%>%
 \end{SimpleTabular}
 
 \end{letter}
index 8c05c10..b3b3071 100644 (file)
 \ourhead{\kundennummer}{<%customernumber%>}{\gutschrift}{<%invnumber%>}{<%invdate%>}
 
 \setkomavar*{date}{\datum}
-\setkomavar{date}{<%transdate%>}       
+\setkomavar{date}{<%transdate%>}
 \setkomavar{customer}{<%customernumber%>}
 \setkomavar{fromname}{<%employee_name%>}
 \setkomavar{fromphone}{<%employee_tel%>}
 \setkomavar{fromemail}{<%employee_email%>}
 \setkomavar{title}{
-       \gutschrift~
-       \nr ~<%invnumber%>%
+  \gutschrift~
+  \nr ~<%invnumber%>%
 }
 
 <%if invnumber_for_credit_note%>%
-       \setkomavar*{myref}{\fuerRechnung}
-       \setkomavar{myref}{<%invnumber_for_credit_note%>}
+  \setkomavar*{myref}{\fuerRechnung}
+  \setkomavar{myref}{<%invnumber_for_credit_note%>}
 <%end if%>%
 
 
 <%if shiptoname%>%
 \makeatletter
 \begin{lrbox}\shippingAddressBox
-       \parbox{\useplength{toaddrwidth}}{
-               \backaddr@format{\scriptsize\usekomafont{backaddress}%
-                       \strut\abweichendeLieferadresse
-               }
-               \par\smallskip
-               \setlength{\parskip}{\z@}
-               \par
-               \normalsize
-               <%shiptoname%>\par
-               <%if shiptocontact%> <%shiptocontact%><%end if%>\par
-               <%shiptodepartment_1%>\par
-               <%shiptodepartment_2%>\par
-               <%shiptostreet%>\par
-               <%shiptozipcode%> <%shiptocity%>%
-       }
+  \parbox{\useplength{toaddrwidth}}{
+    \backaddr@format{\scriptsize\usekomafont{backaddress}%
+      \strut\abweichendeLieferadresse
+    }
+    \par\smallskip
+    \setlength{\parskip}{\z@}
+    \par
+    \normalsize
+    <%shiptoname%>\par
+    <%if shiptocontact%> <%shiptocontact%><%end if%>\par
+    <%shiptodepartment_1%>\par
+    <%shiptodepartment_2%>\par
+    <%shiptostreet%>\par
+    <%shiptozipcode%> <%shiptocity%>%
+  }
 \end{lrbox}
 \makeatother
 <%end if%>%
 \begin{document}
 
 \begin{letter}{
-               <%name%>\strut\\
-               <%if department_1%><%department_1%>\\<%end if%>%
-               <%if department_2%><%department_2%>\\<%end if%>%
-               <%cp_givenname%> <%cp_name%>\strut\\
-               <%street%>\strut\\
-               <%zipcode%> <%city%>\strut\\
-               <%country%> \strut
-       }
+<%name%>\strut\\
+<%if department_1%><%department_1%>\\<%end if%>%
+<%if department_2%><%department_2%>\\<%end if%>%
+<%cp_givenname%> <%cp_name%>\strut\\
+<%street%>\strut\\
+<%zipcode%> <%city%>\strut\\
+<%country%> \strut
+}
 
 % Bei Kontaktperson Anrede nach Geschlecht unterscheiden.
 % Bei natürlichen Personen persönliche Anrede, sonst allgemeine Anrede.
 \opening{
-       \Ifstr{<%cp_name%>}{}
-               {<%if natural_person%><%greeting%> <%name%>,<%else%>\anrede<%end if%>}
-               {
-                       \Ifstr{<%cp_gender%>}{f}
-                               {\anredefrau}
-                               {\anredeherr}
-                               <%cp_title%> <%cp_name%>,
-               }
-       }
+\Ifstr{<%cp_name%>}{}
+{<%if natural_person%><%greeting%> <%name%>,<%else%>\anrede<%end if%>}
+  {
+    \Ifstr{<%cp_gender%>}{f}
+        {\anredefrau}
+        {\anredeherr}
+      <%cp_title%> <%cp_name%>,
+    }
+  }
 \thispagestyle{kivitendo.letter.first}
 
 
 \gutschriftformel
 
 \begin{PricingTabular*}%
-% eigentliche Tabelle%
-\FakeTable{%
-       <%foreach number%>%
-               <%runningnumber%> &%
-               <%number%> &%
-               \textbf{<%description%>}%
-               <%if longdescription%>\ExtraDescription{<%longdescription%>}<%end longdescription%>%
-               <%if serialnumber%>\ExtraDescription{\seriennummer: <%serialnumber%>}<%end serialnumber%>%
-               <%if ean%>\ExtraDescription{\ean: <%ean%>}<%end ean%>%
-               <%if projectnumber%>\ExtraDescription{\projektnummer: <%projectnumber%>}<%end projectnumber%>%
-               &%
-               <%qty%> <%unit%> &%
-               <%sellprice%>&%
-               \Ifstr{<%p_discount%>}{0}{}{\sffamily\scriptsize{(-<%p_discount%>\,\%)}}%
-               <%linetotal%>\tabularnewline%
-       <%end number%>%
-       }%
-       \begin{PricingTotal}%
-               % Tabellenende letzte Seite
-               \nettobetrag & <%subtotal%>\\%
-               <%foreach tax%>%
-               <%taxdescription%> & <%tax%>\\%
-               <%end tax%>%
-               \bfseries\schlussbetrag &  \bfseries <%ordtotal%>\\%
-       \end{PricingTotal}%
+  % eigentliche Tabelle%
+  \FakeTable{%
+  <%foreach number%>%
+  <%runningnumber%> &%
+  <%number%> &%
+  \textbf{<%description%>}%
+  <%if longdescription%>\ExtraDescription{<%longdescription%>}<%end longdescription%>%
+  <%if serialnumber%>\ExtraDescription{\seriennummer: <%serialnumber%>}<%end serialnumber%>%
+  <%if ean%>\ExtraDescription{\ean: <%ean%>}<%end ean%>%
+  <%if projectnumber%>\ExtraDescription{\projektnummer: <%projectnumber%>}<%end projectnumber%>%
+  &%
+  <%qty%> <%unit%> &%
+  <%sellprice%>&%
+  \Ifstr{<%p_discount%>}{0}{}{\sffamily\scriptsize{(-<%p_discount%>\,\%)}}%
+    <%linetotal%>\tabularnewline%
+    <%end number%>%
+  }%
+  \begin{PricingTotal}%
+    % Tabellenende letzte Seite
+    \nettobetrag & <%subtotal%>\\%
+    <%foreach tax%>%
+    <%taxdescription%> & <%tax%>\\%
+    <%end tax%>%
+    \bfseries\schlussbetrag &  \bfseries <%ordtotal%>\\%
+  \end{PricingTotal}%
 \end{PricingTabular*}
 
 <%if notes%>%
index bf24eeb..7373d70 100644 (file)
@@ -49,7 +49,7 @@
 \newcommand{\angebot} {Angebot}
 \newcommand{\angebotsformel} {gerne unterbreiten wir Ihnen folgendes Angebot:}
 \newcommand{\angebotdanke} {Wir danken für Ihre Anfrage und hoffen, Ihnen hiermit ein interessantes Angebot gemacht zu haben.}
-\newcommand{\angebotgueltig} {Das Angebot ist freibleibend gültig bis zum}            %Danach wird das Datum eingefügt, falls das grammatisch nicht funktionieren sollte müssen wir eine ausnahme für die sprache definieren
+\newcommand{\angebotgueltig} {Das Angebot ist freibleibend gültig bis zum}Danach wird das Datum eingefügt, falls das grammatisch nicht funktionieren sollte müssen wir eine ausnahme für die sprache definieren
 \newcommand{\angebotfragen} {Sollten Sie noch Fragen oder Änderungswünsche haben, können Sie uns gerne jederzeit unter den unten genannten Telefonnummern oder E-Mail-Adressen kontaktieren.}
 \newcommand{\angebotagb} {Bei der Durchführung des Auftrags gelten unsere AGB, die wir Ihnen gerne zuschicken.}
 \newcommand{\auftragerteilt}{Auftrag erteilt:}
index 13f2a9e..c5be2c5 100644 (file)
@@ -48,7 +48,7 @@
 \newcommand{\angebot} {Quotation}
 \newcommand{\angebotsformel} {we are pleased to make the following offer:}
 \newcommand{\angebotdanke} {We thank you for your request and look forward to receiving your order.}
-\newcommand{\angebotgueltig} {This offer is valid until}               %Danach wird das Datum eingefügt, falls das grammatisch nicht funktionieren sollte müssen wir eine ausnahme für die sprache definieren
+\newcommand{\angebotgueltig} {This offer is valid until}% Danach wird das Datum eingefügt, falls das grammatisch nicht funktionieren sollte müssen wir eine Ausnahme für die Sprache definieren
 \newcommand{\angebotfragen} {If you have any questions do not hesitate to conatct us.}
 \newcommand{\angebotagb} {Our general terms and conditions (AGB) apply. We will send them to you on request.}
 \newcommand{\auftragerteilt}{Order confirmed:}
index b2dd261..6539b11 100644 (file)
@@ -23,7 +23,7 @@ in einen anderen EU-Mitgliedstaat (Gelangensbestätigung)
 \vspace{0.4cm}
 
 {\color{purple} Bitte unterschreiben und faxen/mailen an:
-  \begin{center} <%employee_fax%> / <%employee_email%> \end{center}}
+\begin{center} <%employee_fax%> / <%employee_email%> \end{center}}
 \normalsize
 \vspace{0.4cm}
 <%name%>, <%street%>, <%zipcode%> <%city%>, <%country%>\hspace*{\fill}\\
@@ -45,7 +45,7 @@ innergemeinschaftlichen Lieferung\\
 im\\
 
 \uline{ \StrGobbleLeft{<%reqdate%>}{3} \hspace*{\fill}}\\
-{\color{gray}(Monat und Jahr des Erhalts des Liefergegenstands im Mitgliedstaat, in den der Liefergegenstand gelangt ist, wenn der liefernde Unternehmer den Liefergegenstand befördert oder versendet hat oder wenn der Abnehmer den Liefergegenstand versendet hat)}\\
+  {\color{gray}(Monat und Jahr des Erhalts des Liefergegenstands im Mitgliedstaat, in den der Liefergegenstand gelangt ist, wenn der liefernde Unternehmer den Liefergegenstand befördert oder versendet hat oder wenn der Abnehmer den Liefergegenstand versendet hat)}\\
 
 
 \TextField[name=delivery, bordercolor=gray, width=\linewidth]{}\\
@@ -55,7 +55,7 @@ in / nach \textsuperscript{1)}\\
 
 
 \uline{<%country%>\hspace*{\fill}}\\
-{\color{gray}(Mitgliedstaat und Ort, wohin der Liefergegenstand im Rahmen einer Beförderung oder Versendung gelangt ist)}\\
+  {\color{gray}(Mitgliedstaat und Ort, wohin der Liefergegenstand im Rahmen einer Beförderung oder Versendung gelangt ist)}\\
 
 erhalten habe / gelangt ist.
 
index 6bda090..5f9516c 100644 (file)
@@ -23,7 +23,7 @@ Certification of the entry of the object of an intra-Community supply into anoth
 \vspace{0.4cm}
 
 {\color{purple} Please sign below and send back to fax-number/mail-address:
-  \begin{center} <%employee_fax%> / <%employee_email%> \end{center}}
+\begin{center} <%employee_fax%> / <%employee_email%> \end{center}}
 
 \normalsize
 \vspace{0.4cm}
@@ -44,7 +44,7 @@ I as the customer hereby certify my receipt / the entry \textsuperscript{1)} of
 in\\
 
 \uline{ \StrGobbleLeft{<%reqdate%>}{3} \hspace*{\fill}}\\
-{\color{gray}(Month and year the object of the supply was received in the Member State of entry if the supplying trader transported or dispatched the object of the supply or if the customer dispatched the object of the supply)}\\
+  {\color{gray}(Month and year the object of the supply was received in the Member State of entry if the supplying trader transported or dispatched the object of the supply or if the customer dispatched the object of the supply)}\\
 
 \TextField[name=delivery, bordercolor=gray, width=\linewidth]{}\\
 {\color{gray}(Month and year the transportation ended if the customer transported the object of the supply himself or herself)}\\
@@ -52,7 +52,7 @@ in\\
 in / at \textsuperscript{1)}\\
 
 \uline{<%country%>\hspace*{\fill}}\\
-{\color{gray}(Member State and place of entry as part of the transport or dispatch of the object)}\\
+  {\color{gray}(Member State and place of entry as part of the transport or dispatch of the object)}\\
 
 
 % X\TextField[name=delivery, bordercolor=gray, width=\linewidth]{}\\
index 5cfc860..d617bb0 100644 (file)
@@ -6,11 +6,11 @@
 
 \makeatletter
 \Ifstr{\lxlangcode}{EN}{
-       \main@language{english}
-       \input{english.tex}}{
-       \Ifstr{\lxlangcode}{DE}{
-               \main@language{ngerman}
-               \input{deutsch.tex}}{\input{deutsch.tex}}
+  \main@language{english}
+  \input{english.tex}}{
+  \Ifstr{\lxlangcode}{DE}{
+    \main@language{ngerman}
+    \input{deutsch.tex}}{\input{deutsch.tex}}
 } % Ende EN
 
 % Mandanten-/Firmenabhängigkeiten
@@ -23,7 +23,7 @@
 
 %Ganzseitiger Briefbogen als Hintergrund:
 %\DeclareNewLayer[page,background,
-%      contents={\includegraphics{Briefbogen}} %Hier muss der Dateinamen und ggf. die Bildgröße angepasst werden, falls es abweichende Maße vom Papierformat hat.
+%  contents={\includegraphics{Briefbogen}} %Hier muss der Dateinamen und ggf. die Bildgröße angepasst werden, falls es abweichende Maße vom Papierformat hat.
 %]{background}
 %\AddLayersToPageStyle{kivitendo.letter.first}{background}%Hintergrund für die erste Seite aktivieren
 %\AddLayersToPageStyle{kivitendo.letter}{background}% Hintergrund für die übrigen Briefseiten aktivieren.
 % \identpath/<euro/chf/usd/default>_account.tex
 
 \@ifundefined{lxcurrency}{}{
-       \setupCurrencyConfig{\identpath}{\lxcurrency}
+  \setupCurrencyConfig{\identpath}{\lxcurrency}
 }
 
 
 % Befehl f. normale Schriftart und -größe
 
 \KOMAoptions{
-       fontsize=10pt,
-       parskip=half-,% Absatzkennzeichnung durch Abstand statt Einzug
+  fontsize=10pt,
+  parskip=half-,% Absatzkennzeichnung durch Abstand statt Einzug
 }
 % Hier ist es auch möglich zusätzliche Schriftarten zu laden.
 % 
 % % \ifoot{<inhalt innen/links>}\cfoot{<inhalt zentriert>}\ofoot{<inhalt außen/rechts>}
 % dann sollte jedoch darauf geachtet werden, dass das Makro in den einzelnen Vorlagen aufgerufen wird und daher definiert sein sollte. 
 \newcommand{\ourhead}[5] {
-       \chead{
-         \makebox[\textwidth]{
-         \Ifstr{#1}{}{}{#1: #2 \hspace{0.7cm}}
-         #3
-         \Ifstr{#4}{}{}{~\nr: #4}
-         \Ifstr{#5}{}{}{\vom ~ #5}
-         \hspace{0.7cm} - \seite ~ \thepage/\letterlastpage  ~-%
-         }
-       }
+  \chead{
+    \makebox[\textwidth]{
+      \Ifstr{#1}{}{}{#1: #2 \hspace{0.7cm}}
+      #3
+      \Ifstr{#4}{}{}{~\nr: #4}
+      \Ifstr{#5}{}{}{\vom ~ #5}
+      \hspace{0.7cm} - \seite ~ \thepage/\letterlastpage  ~-%
+    }
+  }
 }
 
 %Ende Anpassungen der Kopfzeile
 %Box generieren, um die Höhe des Fußes zu kennen, damit ist eine automatische Anpassung des unteren Randes möglich
 \if@kivi@footer
 
-\newsavebox\footerbox
-\begin{lrbox}\footerbox
-       \usekomafont{pagefoot}%
-       % Anfang des eigentlichen Inhaltes der Fußzeile
-     \begin{tabular*}{\textwidth}[t]{@{\extracolsep{\fill}}p{.25\linewidth}p{.25\linewidth}r@{\extracolsep{0pt}\hspace{2\tabcolsep}}l@{}}%
-       \firma                 & \email              & \textKontonummer                  & \kontonummer \\
-       \strasse               & \homepage           & \textBank                         & \bank \\
-       \ort                   & \textUstid\ \ustid  & \textIban                         & \iban \\
-       \textTelefon~\telefon  & \finanzamt          & \textBic                          & \bic \\
-       \Ifstr{\fax}{}{}{\textFax~\fax} &                        &\textBankleitzahl                      & \bankleitzahl
-       \end{tabular*}
-       % Ende des Fußzeileninhaltes.
-\end{lrbox}
-
-%Box in den Fuß eintragen, durch die zusätzliche Angabe in der eckigen Klammer, wird die Fußzeile auch auf der ersten Seite verwendet, falls für die erste Seite eine unterschiedliche Fußzeile verwendet werden soll, ist es möglich den obigen Mechanismus mit einem anderen Makronamen als footerbox zu kopieren
-\cfoot[\usebox\footerbox]{\usebox\footerbox}
-
-%Fußhöhe auf Höhe der Box
-%Automatische Anpassung des unteren Randes
-\setlength{\footheight}{\dimexpr\ht\footerbox+\dp\footerbox}
-\setlength{\footskip}{\dimexpr\footheight+\baselineskip}
-\geometry{
-       includefoot,
-%      bottom=1cm,% Falls der untere Rand kleiner sein soll, als die Seitenränder.
-%      Weitere Anpassungen der Ränder sind hier ebenfalls möglich
-}
+  \newsavebox\footerbox
+  \begin{lrbox}\footerbox
+    \usekomafont{pagefoot}%
+    % Anfang des eigentlichen Inhaltes der Fußzeile
+    \begin{tabular*}{\textwidth}[t]{@{\extracolsep{\fill}}p{.25\linewidth}p{.25\linewidth}r@{\extracolsep{0pt}\hspace{2\tabcolsep}}l@{}}%
+      \firma                 & \email              & \textKontonummer       & \kontonummer \\
+      \strasse               & \homepage           & \textBank             & \bank \\
+      \ort                   & \textUstid\ \ustid  & \textIban             & \iban \\
+      \textTelefon~\telefon  & \finanzamt          & \textBic              & \bic \\
+      \Ifstr{\fax}{}{}{\textFax~\fax} &        &\textBankleitzahl       & \bankleitzahl
+    \end{tabular*}
+    % Ende des Fußzeileninhaltes.
+  \end{lrbox}
+
+  %Box in den Fuß eintragen, durch die zusätzliche Angabe in der eckigen Klammer, wird die Fußzeile auch auf der ersten Seite verwendet, falls für die erste Seite eine unterschiedliche Fußzeile verwendet werden soll, ist es möglich den obigen Mechanismus mit einem anderen Makronamen als footerbox zu kopieren
+  \cfoot[\usebox\footerbox]{\usebox\footerbox}
+
+  %Fußhöhe auf Höhe der Box
+  %Automatische Anpassung des unteren Randes
+  \setlength{\footheight}{\dimexpr\ht\footerbox+\dp\footerbox}
+  \setlength{\footskip}{\dimexpr\footheight+\baselineskip}
+  \geometry{
+    includefoot,
+    %  bottom=1cm,% Falls der untere Rand kleiner sein soll, als die Seitenränder.
+    %   Weitere Anpassungen der Ränder sind hier ebenfalls möglich
+  }
 
 \fi
 % Ende Anpassungen der Fußzeile
 
+%Mandantenspezifische ergänzende Einstellungen, falls nötig:
+%\InputIfFileExists{\identpath/dateiname}{}{}
+
 \makeatother
 \endinput
index 3e36ab1..9a7aa65 100644 (file)
 \setkomavar{fromphone}{<%employee_tel%>}
 \setkomavar{fromemail}{<%employee_email%>}
 \setkomavar{title}{
-       \rechnung~ \nr ~<%invnumber%>%
+  \rechnung~ \nr ~<%invnumber%>%
 }
 <%if ordnumber%>%
-       \setkomavar*{myref}{\auftragsnummer}
-       \setkomavar{myref}{<%ordnumber%>}
+  \setkomavar*{myref}{\auftragsnummer}
+  \setkomavar{myref}{<%ordnumber%>}
 <%end if%>%
 <%if cusordnumber%>%
-       \setkomavar*{yourref}{\ihreBestellnummer}
-       \setkomavar{yourref}{<%cusordnumber%>}
+  \setkomavar*{yourref}{\ihreBestellnummer}
+  \setkomavar{yourref}{<%cusordnumber%>}
 <%end if%>%
 <%if donumber%>%
-       \setkomavar{delivery}{<%donumber%>}
+  \setkomavar{delivery}{<%donumber%>}
 <%end if%>%
 
 <%if quonumber%>%
 <%if shiptoname%>%
 \makeatletter
 \begin{lrbox}\shippingAddressBox
-       \parbox{\useplength{toaddrwidth}}{
-               \backaddr@format{\scriptsize\usekomafont{backaddress}%
-                       \strut\abweichendeLieferadresse
-               }
-               \par\smallskip
-               \setlength{\parskip}{\z@}
-               \par
-               \normalsize
-               <%shiptoname%>\par
-               <%if shiptocontact%> <%shiptocontact%><%end if%>\par
-               <%shiptodepartment_1%>\par
-               <%shiptodepartment_2%>\par
-               <%shiptostreet%>\par
-               <%shiptozipcode%> <%shiptocity%>%
-       }
+  \parbox{\useplength{toaddrwidth}}{
+    \backaddr@format{\scriptsize\usekomafont{backaddress}%
+      \strut\abweichendeLieferadresse
+    }
+    \par\smallskip
+    \setlength{\parskip}{\z@}
+    \par
+    \normalsize
+    <%shiptoname%>\par
+    <%if shiptocontact%> <%shiptocontact%><%end if%>\par
+    <%shiptodepartment_1%>\par
+    <%shiptodepartment_2%>\par
+    <%shiptostreet%>\par
+    <%shiptozipcode%> <%shiptocity%>%
+  }
 \end{lrbox}
 \makeatother
 <%end if%>%
 \begin{document}
 
 \begin{letter}{
-               <%name%>\strut\\
-               <%if department_1%><%department_1%>\\<%end if%>%
-               <%if department_2%><%department_2%>\\<%end if%>%
-               <%cp_givenname%> <%cp_name%>\strut\\
-               <%street%>\strut\\
-               <%zipcode%> <%city%>\strut\\
-               <%country%> \strut
-       }
+<%name%>\strut\\
+<%if department_1%><%department_1%>\\<%end if%>%
+<%if department_2%><%department_2%>\\<%end if%>%
+<%cp_givenname%> <%cp_name%>\strut\\
+<%street%>\strut\\
+<%zipcode%> <%city%>\strut\\
+<%country%> \strut
+}
 
 % Bei Kontaktperson Anrede nach Geschlecht unterscheiden.
 % Bei natürlichen Personen persönliche Anrede, sonst allgemeine Anrede.
 \opening{
-       \Ifstr{<%cp_name%>}{}
-               {<%if natural_person%><%greeting%> <%name%>,<%else%>\anrede<%end if%>}
-               {
-                       \Ifstr{<%cp_gender%>}{f}
-                               {\anredefrau}
-                               {\anredeherr}
-                               <%cp_title%> <%cp_name%>,
-               }
-       }
+\Ifstr{<%cp_name%>}{}
+{<%if natural_person%><%greeting%> <%name%>,<%else%>\anrede<%end if%>}
+  {
+    \Ifstr{<%cp_gender%>}{f}
+        {\anredefrau}
+        {\anredeherr}
+      <%cp_title%> <%cp_name%>,
+    }
+  }
 \thispagestyle{kivitendo.letter.first}
 
 <%if notes%>%
-        <%notes%>%
-        \vspace{0.5cm}
+<%notes%>%
+\vspace{0.5cm}
 <%end if%>%
 
 
 % amount = 1cm, % Setzt die Breite der Mengenspalte auf 1cm
 % desc/header = Artikelbeschreibung, %Ändert die Überschrift der Bezeichnunsspalte in „Artikelbeschreibung”
 \begin{PricingTabular*}%
-       % eigentliche Tabelle
-       \FakeTable{%
-       <%foreach number%>%
-               <%runningnumber%> &%
-               <%number%> &%
-               \textbf{<%description%>}%
-               <%if longdescription%>\ExtraDescription{<%longdescription%>}<%end longdescription%>%
-               <%if serialnumber%>\ExtraDescription{\seriennummer: <%serialnumber%>}<%end serialnumber%>%
-               <%if ean%>\ExtraDescription{\ean: <%ean%>}<%end ean%>%
-               <%if projectnumber%>\ExtraDescription{\projektnummer: <%projectnumber%>}<%end projectnumber%>%
-               &%
-               <%qty%> <%unit%> &%
-               <%sellprice%>&%
-               \Ifstr{<%p_discount%>}{0}{}{\sffamily\scriptsize{(-<%p_discount%>\,\%)}}%
-               <%linetotal%>\tabularnewline%
-       <%end number%>%
-       }%
-       \begin{PricingTotal}%
-               % Tabellenende letzte Seite
-               \nettobetrag & <%subtotal%>\\%
-               <%foreach tax%>%
-               <%taxdescription%> & <%tax%>\\%
-               <%end tax%>%
-               \bfseries\schlussbetrag &  \bfseries <%invtotal%>\\%
-       \end{PricingTotal}%
+  % eigentliche Tabelle
+  \FakeTable{%
+  <%foreach number%>%
+  <%runningnumber%> &%
+  <%number%> &%
+  \textbf{<%description%>}%
+  <%if longdescription%>\ExtraDescription{<%longdescription%>}<%end longdescription%>%
+  <%if serialnumber%>\ExtraDescription{\seriennummer: <%serialnumber%>}<%end serialnumber%>%
+  <%if ean%>\ExtraDescription{\ean: <%ean%>}<%end ean%>%
+  <%if projectnumber%>\ExtraDescription{\projektnummer: <%projectnumber%>}<%end projectnumber%>%
+  &%
+  <%qty%> <%unit%> &%
+  <%sellprice%>&%
+  \Ifstr{<%p_discount%>}{0}{}{\sffamily\scriptsize{(-<%p_discount%>\,\%)}}%
+    <%linetotal%>\tabularnewline%
+    <%end number%>%
+  }%
+  \begin{PricingTotal}%
+    % Tabellenende letzte Seite
+    \nettobetrag & <%subtotal%>\\%
+    <%foreach tax%>%
+    <%taxdescription%> & <%tax%>\\%
+    <%end tax%>%
+    \bfseries\schlussbetrag &  \bfseries <%invtotal%>\\%
+  \end{PricingTotal}%
 \end{PricingTabular*}
 
 \vspace{0.2cm}
 
 \Ifstr{<%deliverydate%>}{}{}{%
-       \leistungsdatumGleichRechnungsdatum%
+  \leistungsdatumGleichRechnungsdatum%
 }{
-       \lieferungErfolgtAm ~<%deliverydate%>.
+  \lieferungErfolgtAm ~<%deliverydate%>.
 }\\
 
 <%if payment_terms%>%
-  \zahlung ~<%payment_terms%>\\
+\zahlung ~<%payment_terms%>\\
 <%end payment_terms%>%
 
 <%if delivery_term%>%
-  \lieferung ~<%delivery_term.description_long%>\\
+\lieferung ~<%delivery_term.description_long%>\\
 <%end delivery_term%>%
 
 <%if ustid%>\ihreustid ~<%ustid%>.\\<%end if%>%
 
 \ifnum<%taxzone_id%>=1
-    \steuerfreiEU\\  % EU mit USt-ID Nummer
+\steuerfreiEU\\  % EU mit USt-ID Nummer
 \else
-       \ifnum<%taxzone_id%>=3
-    \steuerfreiAUS\\  % Außerhalb EU
-    \fi
+\ifnum<%taxzone_id%>=3
+\steuerfreiAUS\\  % Außerhalb EU
+\fi
 \fi
 
 \closing{\gruesse}
index 90ccaff..8b88595 100644 (file)
@@ -1,46 +1,54 @@
 \NeedsTeXFormat{LaTeX2e}
 \ProvidesPackage{kiviletter}[2020/04/24 Letter Layouts for Kivitendo]
 
-\newif\if@kivi@infobox
-\newif\if@kivi@footer
-\DeclareOption{reffields}{\@kivi@infoboxfalse}
-\DeclareOption{infobox}{\@kivi@infoboxtrue}
-\DeclareOption{nofooter}{\@kivi@footerfalse}
-\DeclareOption{footer}{\@kivi@footertrue}
-\@kivi@infoboxtrue
-\@kivi@footertrue
+\RequirePackage{l3keys2e}
 
-\DeclareOption*{\PassOptionsToPackage{\CurrentOption}{scrletter}}
+%Optionen vor den eigenen Paketoptionen hinzufügen, damit spätere diese ggf. überschreiben
+\PassOptionsToPackage{
+  fromlogo,
+  fromalign=right,
+  firstfoot=false,%Für einheitliche Randeinstellungen
+  refline=nodate,
+}{scrletter}
 
-\ProcessOptions\relax
+\ExplSyntaxOn
+\newif\if@kivi@infobox
+\newif\if@kivi@footer
+\keys_define:nn {kiviletter} {
+  infobox .choices:nn = {true,false} {\use:c {@kivi@infobox\l_keys_choice_tl}},
+  infobox .default:n = true,
+  infobox .initial:n = true,
+  reffields .meta:n = {infobox=false},
+  footer .choices:nn = {true,false} {\use:c {@kivi@footer\l_keys_choice_tl}},
+  footer .default:n = true,
+  footer .initial:n = true,
+  nofooter .meta:n = {footer=false},
+  unknown .code:n = \PassOptionsToPackage{\l_keys_key_str=#1}{scrletter},
+}
+\ExplSyntaxOff
 
+\ProcessKeysOptions{kiviletter}
 
-\RequirePackage{expl3}
 \RequirePackage{xparse}
 \RequirePackage{iftex}
-\KOMAoptions{fontsize=12pt}
+
 % Schriftart, Eingabelayout der Tastatur
 \ifPDFTeX
-       \RequirePackage[utf8]{inputenc}% Nur notwendig, wenn Basis älter als TL2018
-       \RequirePackage[T1]{fontenc}
-       \RequirePackage{lmodern}
+  \RequirePackage[utf8]{inputenc}% Nur notwendig, wenn Basis älter als TL2018
+  \RequirePackage[T1]{fontenc}
+  \RequirePackage{lmodern}
 
-       \RequirePackage{eurosym}
-       \DeclareUnicodeCharacter{20AC}{\euro}
+  \RequirePackage{eurosym}
+  \DeclareUnicodeCharacter{20AC}{\euro}
 \else
-       \RequirePackage{fontspec}
+  \RequirePackage{fontspec}
 \fi
 
 \RequirePackage{xltabular}
 \RequirePackage{booktabs}
 \RequirePackage{graphicx}
 
-
-
-\RequirePackage[fromlogo,fromalign=right,
-  firstfoot=false,%Für einheitliche Randeinstellungen
-  refline=nodate,
-       ]{scrletter}
+\RequirePackage{scrletter}
 \LoadLetterOption{DIN}
 
 \newkomavar{transaction}
 
 
 \DeclareNewLayer[
-foreground,
-hoffset=\useplength{toaddrhpos},
-voffset=\dimexpr\useplength{toaddrvpos}+\useplength{toaddrheight}+4\baselineskip,%sep to shippingaddressbox
-contents={\usebox\shippingAddressBox}
+  foreground,
+  hoffset=\useplength{toaddrhpos},
+  voffset=\dimexpr\useplength{toaddrvpos}+\useplength{toaddrheight}+4\baselineskip,%sep to shippingaddressbox
+  contents={\usebox\shippingAddressBox}
 ]{kivitendo.shippingaddress}
 
 \newpairofpagestyles{kivitendo.letter}{}
@@ -82,17 +90,17 @@ contents={\usebox\shippingAddressBox}
 \renewcommand*{\letterpagestyle}{kivitendo.letter}
 
 \DeclareNewPageStyleByLayers{kivitendo.letter.first}{
-       kivitendo.shippingaddress,
-       plain.kivitendo.letter.head.odd,plain.kivitendo.letter.head.even,plain.kivitendo.letter.head.oneside,%
-       plain.kivitendo.letter.foot.odd,plain.kivitendo.letter.foot.even,plain.kivitendo.letter.foot.oneside,%
+  kivitendo.shippingaddress,
+  plain.kivitendo.letter.head.odd,plain.kivitendo.letter.head.even,plain.kivitendo.letter.head.oneside,%
+  plain.kivitendo.letter.foot.odd,plain.kivitendo.letter.foot.even,plain.kivitendo.letter.foot.oneside,%
 }
 
 \setkomavar{backaddress}{\firma\ $\cdot$ \strasse\ $\cdot$ \ort}
 
 \setkomavar{firsthead}{
-       \if@logo
-       \rlap{\usekomavar{fromlogo}}%
-       \fi
+  \if@logo
+    \rlap{\usekomavar{fromlogo}}%
+  \fi
 }
 
 \@setplength{locwidth}{6cm}
@@ -103,101 +111,107 @@ contents={\usebox\shippingAddressBox}
 
 
 \cs_new:Nn \__kivi_set_colwidth:nn  {
-       \dim_set:cn {l_kivi_tab_#1_dim} {#2}
+  \dim_set:cn {l_kivi_tab_#1_dim} {#2}
 }
 
 
 \cs_new:Nn \__kivi_initialize_columns: {
-       \clist_map_inline:Nn \g_kivi_pricingtable_col_clist {
-               \bool_if_exist:cF {l_kivi_col_##1_bool} 
-               {
-                       \bool_new:c {l_kivi_col_##1_bool}
-                       \dim_new:c {l_kivi_tab_##1_dim}
-                       \keys_define:nn {kivi/PricingTable} {
-                               ##1 .choice:,
-                               ##1 / true .code:n = \bool_set_true:c {l_kivi_col_##1_bool},
-                               ##1 / false .code:n = \bool_set_false:c {l_kivi_col_##1_bool},
-                               ##1 / unknown .code:n = {
-                                       \bool_set_true:c {l_kivi_col_##1_bool}
-                                       \dim_set:cn {l_kivi_tab_##1_dim} {####1}
-                               },
-                               ##1 .default:n = true,
-                               ##1 .initial:n = true,
-                               ##1 / header .prop_put:c = {l_kivi_col_##1_prop},
-                               ##1 / colspec .prop_put:c = {l_kivi_col_##1_prop},
-                       }
-               }
-       }
+  \clist_map_inline:Nn \g_kivi_pricingtable_col_clist {
+    \bool_if_exist:cF {l_kivi_col_##1_bool}
+    {
+      \bool_new:c {l_kivi_col_##1_bool}
+      \dim_new:c {l_kivi_tab_##1_dim}
+      \keys_define:nn {kivi/PricingTable} {
+        ##1 .choice:,
+        ##1 / true .code:n = \bool_set_true:c {l_kivi_col_##1_bool},
+        ##1 / false .code:n = \bool_set_false:c {l_kivi_col_##1_bool},
+        ##1 / unknown .code:n = {
+            \bool_set_true:c {l_kivi_col_##1_bool}
+            \dim_set:cn {l_kivi_tab_##1_dim} {####1}
+          },
+        ##1 .default:n = true,
+        ##1 .initial:n = true,
+        ##1 / header .prop_put:c = {l_kivi_col_##1_prop},
+        ##1 / colspec .prop_put:c = {l_kivi_col_##1_prop},
+      }
+    }
+  }
 }
 
 \clist_new:N \g_kivi_pricingtable_col_clist
 
 \keys_define:nn {kivi/PricingTable} {
-       columns .code:n = 
-       \clist_gset:Nn \g_kivi_pricingtable_col_clist {#1}
-       \__kivi_initialize_columns:,
-       columns .initial:n = {pos, id, desc, amount, price, pricetotal},
+  columns .code:n =
+  \clist_gset:Nn \g_kivi_pricingtable_col_clist {#1}
+  \__kivi_initialize_columns:,
+  columns .initial:n = {pos, id, desc, amount, price, pricetotal},
+  unknown .code:n = \keys_set:no {kivi/Tabular} {\l_keys_key_str=#1}
 }
 
 % set default values for colwidth
 \keys_set:nn {kivi/PricingTable} {
-       pos=5ex,
-       id=4em,
-       amount=5em,
-       price=7em,
-       pricetotal=7em,
-%      desc=auto,
-       pos/header=\position,
-       id/header=\artikelnummer,
-       desc/header=\bezeichnung,
-       amount/header=\menge,
-       price/header=\einzelpreis,
-       pricetotal/header=\gesamtpreis,
-       price / colspec = Price,
-       pricetotal / colspec = Price ,
+  pos=5ex,
+  id=4em,
+  amount=5em,
+  price=7em,
+  pricetotal=7em,
+  %  desc=auto,
+  pos/header=\position,
+  id/header=\artikelnummer,
+  desc/header=\bezeichnung,
+  amount/header=\menge,
+  price/header=\einzelpreis,
+  pricetotal/header=\gesamtpreis,
+  price / colspec = Price,
+  pricetotal / colspec = Price ,
 }
 
 \dim_new:N \g_kivi_tabcolsep_dim
 \dim_gset:Nn \g_kivi_tabcolsep_dim {.5\tabcolsep}
+\setlength\tabcolsep{.5\tabcolsep}
 
 \prg_new_conditional:Nnn \kivi_if_Price_col:n {T} {
-       \prop_get:cnN {l_kivi_col_#1_prop} {colspec} \l_tmpa_tl
-       \exp_args:NV \tl_if_eq:nnTF \l_tmpa_tl {Price}
-               {\prg_return_true:}
-               {\prg_return_false:}
+  \prop_get:cnN {l_kivi_col_#1_prop} {colspec} \l_tmpa_tl
+  \exp_args:NV \tl_if_eq:nnTF \l_tmpa_tl {Price}
+  {\prg_return_true:}
+  {\prg_return_false:}
 }
 
 
 \cs_new:Nn \__kivi_calc_desc_column: {
-       \dim_zero:N \l_kivi_tab_desc_leftskip_dim
-       \dim_zero:N \l_kivi_tab_desc_dim
-       \bool_set_false:N \l_tmpa_bool
-       \tl_gclear:N \g_kivi_Pricing_colspec_tl
-       \clist_map_inline:Nn \g_kivi_pricingtable_col_clist {
-               \tl_if_eq:nnTF {##1} {desc}  {
-                       \dim_set:Nn \l_kivi_tab_desc_dim {
-                               \textwidth-\l_kivi_tab_desc_leftskip_dim
-                       }
-                       \bool_set_true:N \l_tmpa_bool
-                       \tl_gput_right:Nn \g_kivi_Pricing_colspec_tl {p{\l_kivi_tab_desc_dim}}
-               }{
-                       \bool_if:cT {l_kivi_col_##1_bool} {
-                               \bool_if:NTF \l_tmpa_bool {
-                                       \dim_sub:Nn \l_kivi_tab_desc_dim {
-                                               \dim_use:c {l_kivi_tab_##1_dim}+2\g_kivi_tabcolsep_dim
-                                       }
-                               }{
-                                       \dim_add:Nn \l_kivi_tab_desc_leftskip_dim {
-                                               \dim_use:c {l_kivi_tab_##1_dim}+2\g_kivi_tabcolsep_dim
-                                       }
-                               }
-                               \tl_gput_right:Nn \g_kivi_Pricing_colspec_tl {K{\dim_use:c {l_kivi_tab_##1_dim}}}
-                               \kivi_if_Price_col:nT {##1} {\tl_gput_right:Nn \g_kivi_Pricing_colspec_tl {<{\__kivi_tab_column_currency:}}}
-                       }
-               }
-       }
-       \tl_gput_left:Nn \g_kivi_Pricing_colspec_tl {@{}}
-       \tl_gput_right:Nn \g_kivi_Pricing_colspec_tl {@{}}
+  \bool_if:NTF \g__kivi_Tabular_rowcolor_bool
+  {\dim_set:Nn \l_kivi_tab_desc_leftskip_dim {2\g_kivi_tabcolsep_dim}}
+  {\dim_zero:N \l_kivi_tab_desc_leftskip_dim}
+  \dim_zero:N \l_kivi_tab_desc_dim
+  \bool_set_false:N \l_tmpa_bool
+  \tl_gclear:N \g_kivi_Pricing_colspec_tl
+  \clist_map_inline:Nn \g_kivi_pricingtable_col_clist {
+    \tl_if_eq:nnTF {##1} {desc}  {
+      \dim_set:Nn \l_kivi_tab_desc_dim {
+        \textwidth-\l_kivi_tab_desc_leftskip_dim
+      }
+      \bool_set_true:N \l_tmpa_bool
+      \tl_gput_right:Nn \g_kivi_Pricing_colspec_tl {p{\l_kivi_tab_desc_dim}}
+    }{
+      \bool_if:cT {l_kivi_col_##1_bool} {
+        \bool_if:NTF \l_tmpa_bool {
+          \dim_sub:Nn \l_kivi_tab_desc_dim {
+            \dim_use:c {l_kivi_tab_##1_dim}+2\g_kivi_tabcolsep_dim
+          }
+        }{
+          \dim_add:Nn \l_kivi_tab_desc_leftskip_dim {
+            \dim_use:c {l_kivi_tab_##1_dim}+2\g_kivi_tabcolsep_dim
+          }
+        }
+        \tl_gput_right:Nn \g_kivi_Pricing_colspec_tl {K{\dim_use:c {l_kivi_tab_##1_dim}}}
+        \kivi_if_Price_col:nT {##1} {\tl_gput_right:Nn \g_kivi_Pricing_colspec_tl {<{\__kivi_tab_column_currency:}}}
+      }
+    }
+  }
+  \bool_if:NF \g__kivi_Tabular_rowcolor_bool {
+    \tl_gput_left:Nn \g_kivi_Pricing_colspec_tl {@{}}
+    \tl_gput_right:Nn \g_kivi_Pricing_colspec_tl {@{}}
+  }
 }
 
 \newcolumntype{K}[1]{>{\raggedleft\arraybackslash}p{#1}}
@@ -207,101 +221,144 @@ contents={\usebox\shippingAddressBox}
 \tcbuselibrary{breakable, skins}
 
 \tcb@new@skin{kivi@LT}{base@unbroken,%
-       frame~engine=empty,interior~titled~engine=empty,interior~engine=empty,segmentation~engine=empty,title~engine=empty,%
-       skin~first=kivi@LT@first,skin~middle=kivi@LT@middle,skin~last=kivi@LT@last,
-       underlay~first~and~middle={
-               \node[anchor=north]  at (interior.north)  {\csname box_use:c\endcsname  {g_kivi_LT@head_box}};
-               \node[anchor=south]  at (interior.south)  {\csname box_use:c\endcsname  {g_kivi_LT@foot_box}};
-       },
-       underlay~unbroken~and~last={
-       \node[anchor=north]  at (interior.north)  {\csname box_use:c\endcsname  {g_kivi_LT@head_box}};
-       \node[anchor=south]  at (interior.south)  {\csname box_use:c\endcsname  {g_kivi_LT@lastfoot_box}};
-       },
-       boxsep=0pt,
-       boxrule=0pt,
-       left=0pt,
-       right=0pt,
-       bottom=\box_ht:N  \g_kivi_LT@foot_box+\box_dp:N  \g_kivi_LT@foot_box + \aboverulesep,
-       top=\box_ht:N  \g_kivi_LT@head_box+\box_dp:N  \g_kivi_LT@head_box +\belowrulesep,
-       parbox=false,
+  frame~engine=empty,interior~titled~engine=empty,interior~engine=empty,segmentation~engine=empty,title~engine=empty,%
+  skin~first=kivi@LT@first,skin~middle=kivi@LT@middle,skin~last=kivi@LT@last,
+  underlay~first~and~middle={
+    \node[anchor=north]  at (interior.north)  {\csname box_use:c\endcsname  {g_kivi_LT@head_box}};
+    \node[anchor=south]  at (interior.south)  {\csname box_use:c\endcsname  {g_kivi_LT@foot_box}};
+},
+  underlay~unbroken~and~last={
+    \node[anchor=north]  at (interior.north)  {\csname box_use:c\endcsname  {g_kivi_LT@head_box}};
+    \node[anchor=south]  at (interior.south)  {\csname box_use:c\endcsname  {g_kivi_LT@lastfoot_box}};
+  },
+  boxsep=0pt,
+  boxrule=0pt,
+  left=0pt,
+  right=0pt,
+  bottom=\box_ht:N  \g_kivi_LT@foot_box+\box_dp:N  \g_kivi_LT@foot_box + \aboverulesep,
+  top=\box_ht:N  \g_kivi_LT@head_box+\box_dp:N  \g_kivi_LT@head_box +\belowrulesep,
+  parbox=false,
 }
 
 \tcb@new@skin{kivi@LT@first}{base@first,%
-       frame~engine=empty,interior~titled~engine=empty,interior~engine=empty,segmentation~engine=empty,title~engine=empty,%
-       skin~first=kivi@LT@first,skin~middle=kivi@LT@middle,skin~last=kivi@LT@middle,
+  frame~engine=empty,interior~titled~engine=empty,interior~engine=empty,segmentation~engine=empty,title~engine=empty,%
+  skin~first=kivi@LT@first,skin~middle=kivi@LT@middle,skin~last=kivi@LT@middle,
 }
 
 \tcb@new@skin{kivi@LT@middle}{base@middle,%
-       frame~engine=empty,interior~titled~engine=empty,interior~engine=empty,segmentation~engine=empty,title~engine=empty,%
-       skin~first=kivi@LT@middle,skin~middle=kivi@LT@middle,skin~last=kivi@LT@middle,
+  frame~engine=empty,interior~titled~engine=empty,interior~engine=empty,segmentation~engine=empty,title~engine=empty,%
+  skin~first=kivi@LT@middle,skin~middle=kivi@LT@middle,skin~last=kivi@LT@middle,
 }
 
 \tcb@new@skin{kivi@LT@last}{base@last,%
-       frame~engine=empty,interior~titled~engine=empty,interior~engine=empty,segmentation~engine=empty,title~engine=empty,%
-       skin~first=kivi@LT@middle,skin~middle=kivi@LT@middle,skin~last=kivi@LT@last,
+  frame~engine=empty,interior~titled~engine=empty,interior~engine=empty,segmentation~engine=empty,title~engine=empty,%
+  skin~first=kivi@LT@middle,skin~middle=kivi@LT@middle,skin~last=kivi@LT@last,
 }
 
 \tcbset{kivi@LT/.style={skin=kivi@LT}}%
 
-
-
 \seq_new:N \l_kivi_PricingTable_seq
 \seq_new:N \l_kivi_columns_seq
 \seq_new:N \g_kivi_extraDescription_seq
+
+\int_new:N \g__kivi_PricingTable_rowcolor_int
+\dim_new:N \l__kivi_fboxsep_dim
+\dim_set:Nn \l__kivi_fboxsep_dim {\g_kivi_tabcolsep_dim}
+
+%colorbox variant to only add vertical spacing
+%based on colorbox definition from xcolor.sty
+%% ----------------------------------------------------------------
+%% Copyright (C) 2003-2016 by Dr. Uwe Kern <xcolor at ukern dot de>
+%% ----------------------------------------------------------------
+%% This variant of colorbox adds a space of \l__kivi_fboxsep_dim along the vertical axes but no horizontal space
+\def\kivi@tabcolorbox#1#{\protect\kivi@tabcolor@box{#1}}
+
+\def\kivi@tabcolor@box#1#2{
+  \tl_if_empty:oTF {#2}
+  \kivi@nocolor@b@x
+  \kivi@color@b@x
+  \relax{\color#1{#2}}
+}
+\long\def\kivi@color@b@x#1#2#3%
+{\leavevmode
+  \setbox\z@\hbox{{\set@color#3}}%
+  \dimen@\ht\z@\advance\dimen@\l__kivi_fboxsep_dim\ht\z@\dimen@
+  \dimen@\dp\z@\advance\dimen@\l__kivi_fboxsep_dim\dp\z@\dimen@
+  {#1{#2\color@block{\wd\z@}{\ht\z@}{\dp\z@}\box\z@}}}
+
+\long\def\kivi@nocolor@b@x#1#2#3%
+{\leavevmode
+  \setbox\z@\hbox{#3}%
+  \dimen@\ht\z@\advance\dimen@\l__kivi_fboxsep_dim\ht\z@\dimen@
+  \dimen@\dp\z@\advance\dimen@\l__kivi_fboxsep_dim\dp\z@\dimen@
+  {\box\z@}}
+
+%%%
+
+
 \newcommand{\FakeTable}[1]{
-       \par
-       \seq_set_split:Nnn \l_kivi_PricingTable_seq {\tabularnewline} {#1}
-       \seq_remove_all:Nn \l_kivi_PricingTable_seq {}
-       \begingroup
-       \setlength{\parskip}{\c_zero_dim}
-       \let\ExtraDescription\__kivi_addExtraDescription:n
-       \setlength{\tabcolsep}{\g_kivi_tabcolsep_dim}
-       \seq_map_inline:Nn \l_kivi_PricingTable_seq {
-               \seq_set_split:Nnn  \l_kivi_columns_seq {&} {##1}
-       \seq_gclear:N \g_kivi_extraDescription_seq
-       \exp_args:Nnx \use:n {\tabular[t]}\g_kivi_Pricing_colspec_tl
-               \seq_pop_left:NN \__l_FakeTable_columns_seq \l_tmpa_tl
-               \seq_item:Nn \l_kivi_columns_seq {\l_tmpa_tl}
-               \seq_map_inline:Nn \__l_FakeTable_columns_seq {
-                       &\seq_item:Nn \l_kivi_columns_seq {####1}
-               }
-       \endtabular
-       \seq_if_empty:NTF \g_kivi_extraDescription_seq
-       {\par}
-       {\par\nopagebreak
-       \begingroup
-       \setlength{\hsize}{\dimexpr\l_kivi_tab_desc_dim+\l_kivi_tab_desc_leftskip_dim}
-       \setlength{\leftskip}{\l_kivi_tab_desc_leftskip_dim}
-       \usekomafont{extraDescription}
-       \seq_use:Nn \g_kivi_extraDescription_seq {\\}
-       \par
-       \endgroup
-       }
-       }
-       \endgroup
+  \par
+  \seq_set_split:Nnn \l_kivi_PricingTable_seq {\tabularnewline} {#1}
+  \seq_remove_all:Nn \l_kivi_PricingTable_seq {}
+  \begingroup
+  \setlength{\parskip}{\c_zero_dim}
+  \let\ExtraDescription\__kivi_addExtraDescription:n
+  \setlength{\tabcolsep}{\g_kivi_tabcolsep_dim}
+  \seq_map_inline:Nn \l_kivi_PricingTable_seq {
+    \bool_if:NT \g__kivi_Tabular_rowcolor_bool {
+      \int_gincr:N \g__kivi_PricingTable_rowcolor_int
+      \int_if_odd:nTF {\g__kivi_PricingTable_rowcolor_int}
+      {\nointerlineskip\kivi@tabcolorbox{\g__kivi_Tabular_rowcolor_odd_tl}}
+      {\nointerlineskip\kivi@tabcolorbox{\g__kivi_Tabular_rowcolor_even_tl}}
+    }
+    {\parbox{\linewidth}{
+        \seq_set_split:Nnn  \l_kivi_columns_seq {&} {##1}
+        \seq_gclear:N \g_kivi_extraDescription_seq
+        \exp_args:Nnx \use:n {\tabular[t]}\g_kivi_Pricing_colspec_tl
+        \seq_pop_left:NN \__l_FakeTable_columns_seq \l_tmpa_tl
+        \seq_item:Nn \l_kivi_columns_seq {\l_tmpa_tl}
+        \seq_map_inline:Nn \__l_FakeTable_columns_seq {
+          &\seq_item:Nn \l_kivi_columns_seq {####1}
+        }
+        \endtabular
+        \seq_if_empty:NTF \g_kivi_extraDescription_seq
+        {\par}
+        {\par\nopagebreak
+          \begingroup
+          \setlength{\leftskip}{\dim_eval:n {\bool_if:NT \g__kivi_Tabular_rowcolor_bool {-\tabcolsep} +\l_kivi_tab_desc_leftskip_dim}}
+          \setlength{\hsize}{\dim_eval:n {\l_kivi_tab_desc_dim+\leftskip}}
+          \usekomafont{extraDescription}
+          \seq_use:Nn \g_kivi_extraDescription_seq {\\}
+          \par
+          \endgroup
+        }
+      }}
+  }
+  \endgroup\par
+  \l__kivi_Tabular_rowsep_tl
 }
 
 
 \seq_new:N  \__l_FakeTable_columns_seq
 \cs_new:Nn \__kivi_setup_FakeTable: {
-       \seq_clear:N \__l_FakeTable_columns_seq
-       \int_zero:N \l_tmpa_int
-       \clist_map_inline:Nn \g_kivi_pricingtable_col_clist {
-               \int_incr:N \l_tmpa_int
-               \bool_if:cT {l_kivi_col_##1_bool} {\seq_put_right:Nx \__l_FakeTable_columns_seq {\int_use:N \l_tmpa_int}}
-       }
+  \seq_clear:N \__l_FakeTable_columns_seq
+  \int_zero:N \l_tmpa_int
+  \clist_map_inline:Nn \g_kivi_pricingtable_col_clist {
+    \int_incr:N \l_tmpa_int
+    \bool_if:cT {l_kivi_col_##1_bool} {\seq_put_right:Nx \__l_FakeTable_columns_seq {\int_use:N \l_tmpa_int}}
+  }
 }
 
 \tl_new:N \g_kivi_Pricing_colspec_tl
 \tl_gset:Nn \g_kivi_Pricing_colspec_tl {
-       @{}
-       \bool_if:NT \l_kivi_col_pos_bool {p{\l_kivi_tab_pos_dim}}
-       \bool_if:NT \l_kivi_col_id_bool {p{\l_kivi_tab_id_dim}}
-       p{\l_kivi_tab_desc_dim}
-       \bool_if:NT \l_kivi_col_amount_bool {\exp_not:n {>{\raggedleft\arraybackslash}p{\l_kivi_tab_amount_dim}}}
-       \bool_if:NT \l_kivi_col_price_bool {\exp_not:n {>{\raggedleft\arraybackslash}p{\l_kivi_tab_price_dim}<{\__kivi_tab_column_currency:}}}
-       \bool_if:NT \l_kivi_col_pricetotal_bool {\exp_not:n {>{\raggedleft\arraybackslash}p{\l_kivi_tab_pricetotal_dim}<{\__kivi_tab_column_currency:}}}
-       @{}
+  \bool_if:NF \g__kivi_Tabular_rowcolor_bool {@{}}
+  \bool_if:NT \l_kivi_col_pos_bool {p{\l_kivi_tab_pos_dim}}
+  \bool_if:NT \l_kivi_col_id_bool {p{\l_kivi_tab_id_dim}}
+  p{\l_kivi_tab_desc_dim}
+  \bool_if:NT \l_kivi_col_amount_bool {\exp_not:n {>{\raggedleft\arraybackslash}p{\l_kivi_tab_amount_dim}}}
+  \bool_if:NT \l_kivi_col_price_bool {\exp_not:n {>{\raggedleft\arraybackslash}p{\l_kivi_tab_price_dim}<{\__kivi_tab_column_currency:}}}
+  \bool_if:NT \l_kivi_col_pricetotal_bool {\exp_not:n {>{\raggedleft\arraybackslash}p{\l_kivi_tab_pricetotal_dim}<{\__kivi_tab_column_currency:}}}
+  \bool_if:NF \g__kivi_Tabular_rowcolor_bool {@{}}
 }
 
 \cs_new_protected:Nn \__kivi_tab_column_currency: {\,\currency}
@@ -310,98 +367,132 @@ contents={\usebox\shippingAddressBox}
 \cs_set_eq:NN \__kivi_tab_column_body_currency:  \__kivi_tab_column_currency:
 
 \clist_map_inline:nn {head, foot, firsthead, lastfoot} {%TODO reduce
-       \box_new:c {g_kivi_LT@#1_box}
+  \box_new:c {g_kivi_LT@#1_box}
 }
 
 \newkomafont{PricingTableHeader}{\bfseries}
 
 \cs_new:Nn \__kivi_setup_LT_boxes: {
-       \__kivi_calc_desc_column:
-       \hbox_gset:Nn \g_kivi_LT@head_box {
-               \setlength{\tabcolsep}{\g_kivi_tabcolsep_dim}
-               \exp_args:Nnx \use:n {\tabular[b]}\g_kivi_Pricing_colspec_tl
-               \__kivi_PricingTabular_header:
-               \endtabular
-       }
-       \hbox_gset:Nn \g_kivi_LT@foot_box {
-               \raisebox{\depth}{
-                       \begin{tabular*}{\textwidth}{@{\extracolsep{\fill}}r@{}}
-                               \midrule
-                               \strut\weiteraufnaechsterseite
-                       \end{tabular*}
-               }
-       }
-       \hbox_gset:Nn \g_kivi_LT@lastfoot_box {
-               \raisebox{\dimexpr\depth+\baselineskip}[0pt][0pt]{
-                       \begin{tabular*}{\textwidth}{@{\extracolsep{\fill}}r@{}}
-                               \bottomrule
-                       \end{tabular*}
-               }
-       }
+  \__kivi_calc_desc_column:
+  \hbox_gset:Nn \g_kivi_LT@head_box {
+    \setlength{\tabcolsep}{\g_kivi_tabcolsep_dim}
+    \bool_if:NT \g__kivi_Tabular_rowcolor_bool {\kivi@tabcolorbox{\g__kivi_Tabular_rowcolor_header_tl}}%
+    {
+      \exp_args:Nnx \use:n {\tabular[b]}\g_kivi_Pricing_colspec_tl
+      \__kivi_PricingTabular_header:
+      \endtabular
+    }
+  }
+  \hbox_gset:Nn \g_kivi_LT@foot_box {
+    \begin{tabular*}{\textwidth}[t]{@{\extracolsep{\fill}}r@{\bool_if:NT \g__kivi_Tabular_rowcolor_bool {\hskip\tabcolsep}}}
+      \bool_if:NTF \g__kivi_Tabular_rowcolor_bool
+      {\hline\noalign{\vskip1pt}}
+      \midrule
+      \strut\weiteraufnaechsterseite
+    \end{tabular*}
+  }
+  \hbox_gset:Nn \g_kivi_LT@lastfoot_box {
+    \raisebox{\dimexpr\depth+\baselineskip}[0pt][0pt]{
+      \begin{tabular*}{\textwidth}{@{\bool_if:NT \g__kivi_Tabular_rowcolor_bool {\hskip\tabcolsep}\extracolsep{\fill}}r@{\bool_if:NT \g__kivi_Tabular_rowcolor_bool {\hskip\tabcolsep}}}
+        \bool_if:NF \g__kivi_Tabular_rowcolor_bool \bottomrule
+      \end{tabular*}
+    }
+  }
 }
 
 
 %Macht es sinn hier eine Variante zu machen, in der alle Spalten Belegbar sind?
-\newenvironment{PricingTotal}{
-       \par\nointerlineskip
-       \unskip
-       \tabular[t]{@{}p{\dim_eval:n {\linewidth-\l_kivi_tab_pricetotal_dim-2\tabcolsep}}P{\l_kivi_tab_pricetotal_dim}@{}}
-       \midrule
+\NewDocumentEnvironment{PricingTotal}{+b}{
+  \par\nointerlineskip
 }{
-       \endtabular
+  \bool_if:NT \g__kivi_Tabular_rowcolor_bool   {\nointerlineskip\kivi@tabcolorbox{\g__kivi_Tabular_rowcolor_PricingTotal_tl}}
+  {
+    \tabular[t]{
+      @{\bool_if:NT \g__kivi_Tabular_rowcolor_bool {\hskip\tabcolsep}}
+      p{\dim_eval:n {\linewidth-\l_kivi_tab_pricetotal_dim-\bool_if:NTF \g__kivi_Tabular_rowcolor_bool {4}{2}\tabcolsep}}P{\l_kivi_tab_pricetotal_dim}@{\bool_if:NT \g__kivi_Tabular_rowcolor_bool {\hskip\tabcolsep}}
+    }
+    \l__kivi_Tabular_PricingTotal_topsep_tl
+    #1
+    \endtabular
+  }
 }
 
+\tl_new:N \l__kivi_Tabular_PricingTotal_topsep_tl
+%TODO
+\tl_set:Nn \l__kivi_Tabular_PricingTotal_topsep_tl {\bool_if:NF \g__kivi_Tabular_rowcolor_bool \midrule}
 
 \newcommand*\ExtraDescription{
-       \PackageError{kiviletter}{The~command~\string\ExtraDescription\space~may~be~only~used~inside~the~\string\FakeTable\space~environment.}{See~documentation~for~details}
+  \PackageError{kiviletter}{The~command~\string\ExtraDescription\space~may~be~only~used~inside~the~\string\FakeTable\space~environment.}{See~documentation~for~details}
 }
 
 
 \cs_new:Nn \__kivi_addExtraDescription:n {\seq_gput_right:Nn \g_kivi_extraDescription_seq {#1}}
 
 \newenvironment{PricingTabular}[1][]{
-       \begingroup
-       \dim_set:Nn \parskip {\c_zero_dim}
-       \tl_if_empty:nF {#1} {\keys_set:nn {kivi/PricingTable} {#1}}
-       \setlength{\tabcolsep}{\g_kivi_tabcolsep_dim}
-       \__kivi_calc_desc_column:
-       \exp_args:Nx \longtable \g_kivi_Pricing_colspec_tl
-       % Tabellenkopf
-       \__kivi_PricingTabular_header:
-       \endhead
-       \midrule
-       \rlap{\makebox[\textwidth][r]{\weiteraufnaechsterseite}}\\
-       \endfoot
-       \bottomrule
-       \endlastfoot
+  \begingroup
+  \dim_set:Nn \parskip {\c_zero_dim}
+  \tl_if_empty:nF {#1} {\keys_set:nn {kivi/PricingTable} {#1}}
+  \setlength{\tabcolsep}{\g_kivi_tabcolsep_dim}
+  \__kivi_calc_desc_column:
+  \exp_args:Nx \longtable \g_kivi_Pricing_colspec_tl
+  % Tabellenkopf
+  \__kivi_PricingTabular_header:
+  \endhead
+  \midrule
+  \rlap{\makebox[\textwidth][r]{\weiteraufnaechsterseite}}\\
+  \endfoot
+  \bool_if:NF \g__kivi_Tabular_rowcolor_bool \bottomrule
+  \endlastfoot
 }{
-       \endlongtable
-       \endgroup
+  \endlongtable
+  \endgroup
 }
 
 \cs_set:Nn \__kivi_PricingTabular_header: {
-       \toprule
-       \cs_gset_eq:NN \__kivi_tab_column_currency: \__kivi_tab_column_header_currency:
-       \bool_set_false:N \l_tmpa_bool
-       \clist_map_inline:Nn \g_kivi_pricingtable_col_clist     {
-               \bool_if:cT {l_kivi_col_##1_bool} {
-                       \bool_if:NT \l_tmpa_bool {&}
-                       \bool_set_true:N \l_tmpa_bool
-                       \usekomafont{PricingTableHeader}
-                       \prop_item:cn {l_kivi_col_##1_prop} {header}
-               }
-       }
-       \cs_gset_eq:NN \__kivi_tab_column_currency: \__kivi_tab_column_body_currency:
-       \\
-       \midrule
+  \bool_if:NTF \g__kivi_Tabular_rowcolor_bool {\noalign{\skip_vertical:n {\dp\strutbox}}}\toprule
+  \cs_gset_eq:NN \__kivi_tab_column_currency: \__kivi_tab_column_header_currency:
+  \bool_set_false:N \l_tmpa_bool
+  \clist_map_inline:Nn \g_kivi_pricingtable_col_clist  {
+    \bool_if:cT {l_kivi_col_##1_bool} {
+      \bool_if:NT \l_tmpa_bool {&}
+      \bool_set_true:N \l_tmpa_bool
+      \usekomafont{PricingTableHeader}
+      \prop_item:cn {l_kivi_col_##1_prop} {header}
+    }
+  }
+  \cs_gset_eq:NN \__kivi_tab_column_currency: \__kivi_tab_column_body_currency:
+  \\
+  \bool_if:NF \g__kivi_Tabular_rowcolor_bool \midrule
 }
 
+\newkomafont{tablehead}{\bfseries}
 
 \keys_define:nn {kivi/SimpleTabular} {
-       colspec .tl_set:N =\l_kivi_SimpleTabular_colspec_tl,
-       colspec .initial:n = {rrX},
-       headline .tl_set:N = \l_kivi_SimpleTabular_headline_tl,
-       headline .initial:n = {\bfseries\position & \bfseries\menge & \bfseries\bezeichnung},
+  colspec .tl_set:N =\l_kivi_SimpleTabular_colspec_tl,
+  colspec .initial:n = {rrX},
+  headline .tl_set:N = \l_kivi_SimpleTabular_headline_tl,
+  headline .initial:n = {\usekomafont{tablehead}\position & \usekomafont{tablehead}\menge & \usekomafont{tablehead}\bezeichnung},
+}
+
+\keys_define:nn {kivi/Tabular} {
+  color-rows .bool_gset:N =  \g__kivi_Tabular_rowcolor_bool ,
+  color-rows .initial:n = false,
+  color-rows .default:n = true,
+  rowcolor-odd .tl_gset:N = \g__kivi_Tabular_rowcolor_odd_tl,
+  rowcolor-odd .initial:n = black!10,
+  rowcolor-even .tl_gset:N = \g__kivi_Tabular_rowcolor_even_tl,
+  rowcolor-even .initial:n =,
+  rowcolor-header .tl_gset:N = \g__kivi_Tabular_rowcolor_header_tl,
+  rowcolor-header .initial:n = black!35,
+  rowcolor-total .tl_gset:N = \g__kivi_Tabular_rowcolor_PricingTotal_tl,
+  rowcolor-total .initial:n = black!35,
+  rowsep .tl_set:N =\l__kivi_Tabular_rowsep_tl,
+  rowsep .initial:n = ,
+  hrule .meta:n = {
+    rowsep={
+      \vskip\aboverulesep
+      \leavevmode\hrule\@height\lightrulewidth
+      \vskip\belowrulesep}},
 }
 
 \newcommand*{\SetupSimpleTabular}[1]{\keys_set:nn {kivi/SimpleTabular} {#1}}
@@ -409,28 +500,30 @@ contents={\usebox\shippingAddressBox}
 
 \newenvironment{SimpleTabular}[1][]
 {
-       \tl_if_in:nnTF {#1} {=} {\keys_set:nn {kivi/SimpleTabular} {#1}} {\tl_if_empty:nF {#1} {\tl_set:Nn \l_kivi_SimpleTabular_headline_tl {#1}}}
-       \setlength{\tabcolsep}{\g_kivi_tabcolsep_dim}
-       \dim_set:Nn \parskip {\c_zero_dim}
-       \tl_put_right:Nn \l_kivi_SimpleTabular_colspec_tl {@{}}
-       \tl_put_left:Nn \l_kivi_SimpleTabular_colspec_tl {@{}}
-       \exp_args:NnV \xltabular{\linewidth}\l_kivi_SimpleTabular_colspec_tl
-               \toprule
-               \cs_gset_eq:NN \__kivi_tab_column_currency: \__kivi_tab_column_header_currency:
-               \l_kivi_SimpleTabular_headline_tl
-               \\
-               \noalign{\cs_gset_eq:NN \__kivi_tab_column_currency: \__kivi_tab_column_body_currency:}
-               \midrule
-       \endhead
-               \midrule
-               \rlap{\makebox[\textwidth][r]{\weiteraufnaechsterseite}}\\
-       \endfoot
-               \bottomrule
-       \endlastfoot
-       \ignorespaces
+  \tl_if_in:nnTF {#1} {=} {\keys_set:nn {kivi/SimpleTabular} {#1}} {\tl_if_empty:nF {#1} {\tl_set:Nn \l_kivi_SimpleTabular_headline_tl {#1}}}
+  \setlength{\tabcolsep}{\g_kivi_tabcolsep_dim}
+  \dim_set:Nn \parskip {\c_zero_dim}
+  \bool_if:NF \g__kivi_Tabular_rowcolor_bool {
+    \tl_put_right:Nn \l_kivi_SimpleTabular_colspec_tl {@{}}
+    \tl_put_left:Nn \l_kivi_SimpleTabular_colspec_tl {@{}}
+  }
+  \exp_args:NnV \xltabular{\linewidth}\l_kivi_SimpleTabular_colspec_tl
+  \toprule
+  \cs_gset_eq:NN \__kivi_tab_column_currency: \__kivi_tab_column_header_currency:
+  \l_kivi_SimpleTabular_headline_tl
+  \\
+  \noalign{\cs_gset_eq:NN \__kivi_tab_column_currency: \__kivi_tab_column_body_currency:}
+  \midrule
+  \endhead
+  \midrule
+  \rlap{\makebox[\textwidth][r]{\weiteraufnaechsterseite}}\\
+  \endfoot
+  \bool_if:NF \g__kivi_Tabular_rowcolor_bool \bottomrule
+  \endlastfoot
+  \ignorespaces
 }{
-       \def\@currenvir{tabularx}
-       \endxltabular
+  \def\@currenvir{tabularx}
+  \endxltabular
 }
 
 %PricingTabular* kann automatisch spalten ignorieren
@@ -439,78 +532,84 @@ contents={\usebox\shippingAddressBox}
 % analog ist dies für pos, amount, price, pricetotal möglich.
 % Die Spalte der Bezeichnung ist nicht deaktivierbar
 \newenvironment{PricingTabular*}[1][]{
-       \tl_if_empty:nF {#1} {\keys_set:nn {kivi/PricingTable} {#1}}
-       \__kivi_setup_LT_boxes:
-       \__kivi_setup_FakeTable:
-       \dim_set:Nn \parskip {\c_zero_dim}
-       \PricingTabularBox\ignorespaces
-}{\endPricingTabularBox}
+  \int_gzero:N \g__kivi_PricingTable_rowcolor_int
+  \tl_if_empty:nF {#1} {\keys_set:nn {kivi/PricingTable} {#1}}
+  \__kivi_setup_LT_boxes:
+  \__kivi_setup_FakeTable:
+  \dim_set:Nn \parskip {\c_zero_dim}
+  \PricingTabularBox\ignorespaces
+}{\endPricingTabularBox
+  %compensate footer spacing
+  \skip_vertical:n {-\box_ht:N  \g_kivi_LT@foot_box-\box_dp:N  \g_kivi_LT@foot_box}
+}
 
 \newtcolorbox{PricingTabularBox}{breakable,skin=kivi@LT}
 
 \if@kivi@infobox
 
-       \def\locationsep{:}
-
-       \NewDocumentCommand{\locationentry}{som}{
-               \Ifkomavarempty{#3}{}{
-               \IfBooleanTF {#1} {
-                       \strut
-                       \IfNoValueTF {#2}
-                               {\usekomavar*{#3}}
-                               {#2}
-                       \locationsep
-                       \hfill\strut\space
-                       \hbox_set:Nn \l_tmpa_box {\usekomavar{#3}}
-                       \dim_compare:nTF {\box_wd:N \l_tmpa_box>\linewidth}
-                               {\newline\hspace*{\fill}\llap}
-                               {\hspace*{\fill}}
-                               {\box_use:N \l_tmpa_box\strut}
-               }{
-                       \@hangfrom{\strut
-                               \IfNoValueTF {#2}
-                                       {\usekomavar*{#3}}
-                                       {#2}\locationsep~
-                       }{
-                               \parbox[t]{\dimexpr\linewidth-\hangindent}{
-                                       \raggedleft
-                                       \usekomavar{#3}\strut
-                               }
-                       }
-               }
-               }
-               \par
-       }
-
-
-\setkomavar{location}{
-       \Ifkomavarempty{transaction}{}{
-       \bfseries
-       \usekomavar{transaction}
-       }
-       \par
-       \medskip
-       \parbox{\useplength{locwidth}}{
-               \locationentry{date}
-               \locationentry{myref}
-               \locationentry{customer}
-               \locationentry{yourref}
-               \locationentry{delivery}
-               \locationentry{quote}
-               \locationentry{orderID}
-               \locationentry{projectID}
-               \locationentry[\ansprechpartner]{fromname}
-               \locationentry{fromphone}
-               \locationentry*{fromemail}
-       }
-}
-\removereffields
-\AtBeginLetter{
-       \ifdim\ht\shippingAddressBox>\z@
-       \@addtoplength{refvpos}{\dimexpr\ht\shippingAddressBox+\dp\shippingAddressBox}
-       \@addtoplength{refvpos}{4\baselineskip}%sep between address boxes
-       \fi
-}
+  \def\locationsep{:}
+
+  \NewDocumentCommand{\locationentry}{som}{
+    \Ifkomavarempty{#3}{}{
+      \IfBooleanTF {#1} {
+        \strut
+        \IfNoValueTF {#2}
+        {\usekomavar*{#3}}
+        {#2}
+        \locationsep
+        \hfill\strut\space
+        \hbox_set:Nn \l_tmpa_box {\usekomavar{#3}}
+        \dim_compare:nTF {\box_wd:N \l_tmpa_box>\linewidth}
+        {\newline\hspace*{\fill}\llap}
+        {\hspace*{\fill}}
+        {\box_use:N \l_tmpa_box\strut}
+      }{
+        \@hangfrom{\strut
+          \IfNoValueTF {#2}
+          {\usekomavar*{#3}}
+          {#2}\locationsep~
+        }{
+          \parbox[t]{\dimexpr\linewidth-\hangindent}{
+            \raggedleft
+            \usekomavar{#3}\strut
+          }
+        }
+      }
+    }
+    \par
+  }
+
+  \newkomafont{transaction}{\bfseries}
+
+  \setkomavar{location}{
+    \Ifkomavarempty{transaction}{}{{
+          \usekomafont{transaction}
+          \usekomavar{transaction}
+        }
+    }
+    \par
+    \medskip
+    \parbox{\useplength{locwidth}}{
+      \locationentry{date}
+      \locationentry{myref}
+      \locationentry{customer}
+      \locationentry{yourref}
+      \locationentry{delivery}
+      \locationentry{quote}
+      \locationentry{orderID}
+      \locationentry{projectID}
+      \locationentry[\ansprechpartner]{fromname}
+      \locationentry{fromphone}
+      \locationentry*{fromemail}
+    }
+  }
+  \removereffields
+  \AtBeginLetter{
+    \ifdim\ht\shippingAddressBox>\z@
+      \@addtoplength{refvpos}{\dimexpr\ht\shippingAddressBox+\dp\shippingAddressBox}
+      \@addtoplength{refvpos}{4\baselineskip}%sep between address boxes
+    \fi
+  }
 
 \fi
 
@@ -521,35 +620,35 @@ contents={\usebox\shippingAddressBox}
 %Definitionen für die insettings.tex
 
 \newcommand*{\setupIdentpath}[1]{
-       \int_set:Nn \l_kivi_tmp_int {1}
-       \bool_set_true:N \l_kivi_tmp_bool
-       \bool_while_do:Nn \l_kivi_tmp_bool {
-               \file_if_exist:nTF {firma\int_use:N \l_kivi_tmp_int/ident.tex}
-               {
-                       \exp_args:Nf \str_if_in:nnTF {#1} {Firma\int_use:N \l_kivi_tmp_int}
-                       {
-                               \newcommand*{\identpath}{firma\int_use:N \l_kivi_tmpa_int}
-                               \bool_set_false:N \l_kivi_tmp_bool
-                       }
-                       {\int_incr:N \l_kivi_tmp_int}
-               }
-               {
-                       \bool_set_false:N \l_kivi_tmp_bool
-                       \newcommand*{\identpath}{firma}
-               }
-       }
+  \int_set:Nn \l_kivi_tmp_int {1}
+  \bool_set_true:N \l_kivi_tmp_bool
+  \bool_while_do:Nn \l_kivi_tmp_bool {
+    \file_if_exist:nTF {firma\int_use:N \l_kivi_tmp_int/ident.tex}
+    {
+      \exp_args:Nf \str_if_in:nnTF {#1} {Firma\int_use:N \l_kivi_tmp_int}
+      {
+        \newcommand*{\identpath}{firma\int_use:N \l_kivi_tmpa_int}
+        \bool_set_false:N \l_kivi_tmp_bool
+      }
+      {\int_incr:N \l_kivi_tmp_int}
+    }
+    {
+      \bool_set_false:N \l_kivi_tmp_bool
+      \newcommand*{\identpath}{firma}
+    }
+  }
 }
 
 \newcommand*{\setupCurrencyConfig}[2]{
-       \tl_new:N \g_kivi_currency_tl
-       \exp_args:Nf \str_if_in:nnT {#2} {USD} {\tl_gset:Nn \g_kivi_currency_tl {usd}}
-       \exp_args:Nf \str_if_in:nnT {#2} {CHF} {\tl_gset:Nn \g_kivi_currency_tl {chf}}
-       \exp_args:Nf \str_if_in:nnT {#2} {EUR} {\tl_gset:Nn \g_kivi_currency_tl {euro}}
-       \tl_if_empty:NT  \g_kivi_currency_tl {
-               \tl_gset:Nn \g_kivi_currency_tl {default}
-               \edef \currency {\tl_to_str:N \lxcurrency}
-       }
-       \input{#1/\g_kivi_currency_tl _account.tex}
+  \tl_new:N \g_kivi_currency_tl
+  \exp_args:Nf \str_if_in:nnT {#2} {USD} {\tl_gset:Nn \g_kivi_currency_tl {usd}}
+  \exp_args:Nf \str_if_in:nnT {#2} {CHF} {\tl_gset:Nn \g_kivi_currency_tl {chf}}
+  \exp_args:Nf \str_if_in:nnT {#2} {EUR} {\tl_gset:Nn \g_kivi_currency_tl {euro}}
+  \tl_if_empty:NT  \g_kivi_currency_tl {
+    \tl_gset:Nn \g_kivi_currency_tl {default}
+    \edef \currency {\tl_to_str:N \lxcurrency}
+  }
+  \input{#1/\g_kivi_currency_tl _account.tex}
 }
 
 \ExplSyntaxOff
@@ -558,5 +657,7 @@ contents={\usebox\shippingAddressBox}
 \renewcommand*{\raggedsignature}{\raggedright}
 
 \newkomafont{extraDescription}{}
+\newkomafont{subtotal}{}
+\newkomafont{total}{}
 
 \endinput
index 6e91e74..4e6ed0b 100644 (file)
@@ -7,8 +7,8 @@
 \usepackage{iftex}
 %Compilerunabhängigkeit
 \ifPDFTeX
-       \usepackage[utf8]{inputenc}
-       \usepackage[T1]{fontenc}
+  \usepackage[utf8]{inputenc}
+  \usepackage[T1]{fontenc}
 \fi
 \usepackage{latexsym}
 \usepackage{longtable}
@@ -52,7 +52,7 @@
 \renewcommand*{\familydefault}{\sfdefault}
 \ifPDFTeX
 \else
-\usepackage{fontspec}
+  \usepackage{fontspec}
 \fi
 
 %% Checkboxen
 % Abschnitte mit Kasten hinterlegt
 
 \newcommand{\reqspecsectionstyle}{%
-\renewcommand{\thesection}{\alph{section}}
-\makeatletter
-\def\section{\@ifstar\unnumberedsection\numberedsection}
-\makeatother
+  \renewcommand{\thesection}{\alph{section}}
+  \makeatletter
+  \def\section{\@ifstar\unnumberedsection\numberedsection}
+  \makeatother
 }
 
 \makeatletter
 \def\numberedsection{\@ifnextchar[%]
-  \numberedsectionwithtwoarguments\numberedsectionwithoneargument}
+\numberedsectionwithtwoarguments\numberedsectionwithoneargument}
 \def\unnumberedsection{\@ifnextchar[%]
-  \unnumberedsectionwithtwoarguments\unnumberedsectionwithoneargument}
+\unnumberedsectionwithtwoarguments\unnumberedsectionwithoneargument}
 \def\numberedsectionwithoneargument#1{\numberedsectionwithtwoarguments[#1]{#1}}
 \def\unnumberedsectionwithoneargument#1{\unnumberedsectionwithtwoarguments[#1]{#1}}
 \def\numberedsectionwithtwoarguments[#1]#2{%
   \endgroup
   \vskip 2ex\nobreak
   \addcontentsline{toc}{section}{\protect\numberline{\thesection{}.}#1}%
-  }
+}
 \def\unnumberedsectionwithtwoarguments[#1]#2{%
   \ifhmode\par\fi
   \removelastskip
index 1ea7a2d..7ec5ef2 100644 (file)
@@ -34,12 +34,12 @@ $( IF letter.subject )$
 $( END )$
 
 \begin{letter}{
-               $( KiviLatex.filter(customer.name) )$\strut\\
-               $( KiviLatex.filter(letter.contact.formal_greeting) )$\strut\\
-               $( KiviLatex.filter(customer.street) )$\strut\\
-               $( KiviLatex.filter(customer.zipcode) )$ $( KiviLatex.filter(customer.city) )$\strut\\
-               $( KiviLatex.filter(customer.country) )$%
-       }
+$( KiviLatex.filter(customer.name) )$\strut\\
+$( KiviLatex.filter(letter.contact.formal_greeting) )$\strut\\
+$( KiviLatex.filter(customer.street) )$\strut\\
+$( KiviLatex.filter(customer.zipcode) )$ $( KiviLatex.filter(customer.city) )$\strut\\
+$( KiviLatex.filter(customer.country) )$%
+}
 
 \opening{$( KiviLatex.filter(letter.greeting) )$}
 
index 612fa0c..23736b5 100644 (file)
 \setkomavar{title}{\sammelliste}
 
 \setkomavar{firsthead}{
-       \normalsize
-       \noindent\begin{tabular}[t]{@{}l@{}}
-               <%company%>\strut\\
-               <%address%>
-       \end{tabular}
-       \hfill
- \begin{tabular}[t]{rr@{}}
-               Tel & <%tel%>\\
-               Fax & <%fax%>%
-       \end{tabular}
-       \rule{\linewidth}{\heavyrulewidth}
+  \normalsize
+  \noindent\begin{tabular}[t]{@{}l@{}}
+    <%company%>\strut\\
+    <%address%>
+  \end{tabular}
+  \hfill
 \begin{tabular}[t]{rr@{}}
+    Tel & < %tel%>\\
+    Fax & < %fax%>%
+  \end{tabular}
+  \rule{\linewidth}{\heavyrulewidth}
 }
 
 \makeatletter
 \setkomavar{location}{
-       \normalsize
-       <%shiptocontact%>%
-       <%if shiptophone%>%
-       \\\textTelefon : <%shiptophone%>
-       <%end shiptophone%>%
-       <%if shiptofax%>%
-       \\\textFax : <%shiptofax%>
-       <%end shiptofax%>%
-       \\%
-       <%shiptoemail%>%
-       }
+  \normalsize
+  <%shiptocontact%>%
+  <%if shiptophone%>%
+  \\\textTelefon : <%shiptophone%>
+  <%end shiptophone%>%
+  <%if shiptofax%>%
+  \\\textFax : <%shiptofax%>
+  <%end shiptofax%>%
+  \\%
+  <%shiptoemail%>%
+}
 \makeatother
 
 \setkomavar{backaddress}{\lieferanschrift}
 
 \begin{letter}{\strut%
-       <%shiptoname%>\ifhmode\\\fi
-       <%shiptostreet%>\ifhmode\\\fi
-       <%shiptozipcode%>\ifhmode\\\fi
-       <%shiptocity%>\ifhmode\\\fi
-       <%shiptocountry%>%
+<%shiptoname%>\ifhmode\\\fi
+<%shiptostreet%>\ifhmode\\\fi
+<%shiptozipcode%>\ifhmode\\\fi
+<%shiptocity%>\ifhmode\\\fi
+<%shiptocountry%>%
 }
 
 \opening{}
 
 
 \begin{SimpleTabular}[colspec=*6X,headline={\bfseries\bestellnummer&\bfseries\datum&\bfseries\kontakt
-  <%if warehouse%>%
-  &\bfseries\lager%
-  <%end warehouse%>%
-  &\bfseries\lagerplatz&\bfseries\lieferungMit}]
+        <%if warehouse%>%
+        &\bfseries\lager%
+        <%end warehouse%>%
+        &\bfseries\lagerplatz&\bfseries\lieferungMit}]
   <%ordnumber%>%
   &%
   <%if shippingdate%>%
-       <%shippingdate%>%
+  <%shippingdate%>%
   <%end shippingdate%>%
   <%if not shippingdate%>%
-       <%orddate%>%
+  <%orddate%>%
   <%end shippingdate%>%
   & <%employee%>%
   <%if warehouse%>%
 \bigskip
 
 \begin{SimpleTabular}[colspec=rlXrcll,headline={\bfseries\position&\bfseries\nummer&\bfseries\beschreibung&\bfseries\menge&\bfseries\lagerausgang&&\bfseries\lagerplatz}]%
-<%foreach number%>%
-<%runningnumber%> & <%number%> & <%description%> &%
-<%qty%> & [\hspace{1cm}] & <%unit%> & <%bin%> \\%
-<%end number%>%
+  <%foreach number%>%
+  <%runningnumber%> & <%number%> & <%description%> &%
+  <%qty%> & [\hspace{1cm}] & <%unit%> & <%bin%> \\%
+  <%end number%>%
 \end{SimpleTabular}
 
 \end{letter}
index b5396cd..6730a7e 100644 (file)
 
 
 \begin{document}
-       
+
 \setkomavar{title}{
-       \proformarechnung~
-       \nr ~<%ordnumber%>%
+  \proformarechnung~
+  \nr ~<%ordnumber%>%
 }
 \setkomavar*{date}{\datum}
 
 \setkomavar{date}{<%orddate%>}
 \setkomavar{customer}{<%customernumber%>}
 <%if cusordnumber%>%
-       \setkomavar*{yourref}{\ihreBestellnummer}
-       \setkomavar{yourref}{<%cusordnumber%>}
+\setkomavar*{yourref}{\ihreBestellnummer}
+\setkomavar{yourref}{<%cusordnumber%>}
 <%end if%>%
 <%if quonumber%>\setkomavar{quote}{<%quonumber%>}<%end if%>%
 \setkomavar{fromname}{<%employee_name%>}
 \setkomavar{fromphone}{<%employee_tel%>}
 \setkomavar{fromemail}{<%employee_email%>}
 \setkomavar{transaction}{<%transaction_description%>}
-       
+
 <%if shiptoname%>%
 \makeatletter
 \begin{lrbox}\shippingAddressBox
-       \parbox{\useplength{toaddrwidth}}{
-               \backaddr@format{\scriptsize\usekomafont{backaddress}%
-                       \strut\abweichendeLieferadresse
-               }
-               \par\smallskip
-               \setlength{\parskip}{\z@}
-               \par
-               \normalsize
-               <%shiptoname%>\par
-               <%if shiptocontact%> <%shiptocontact%><%end if%>\par
-               <%shiptodepartment_1%>\par
-               <%shiptodepartment_2%>\par
-               <%shiptostreet%>\par
-               <%shiptozipcode%> <%shiptocity%>%
-       }
+  \parbox{\useplength{toaddrwidth}}{
+    \backaddr@format{\scriptsize\usekomafont{backaddress}%
+      \strut\abweichendeLieferadresse
+    }
+    \par\smallskip
+    \setlength{\parskip}{\z@}
+    \par
+    \normalsize
+    <%shiptoname%>\par
+    <%if shiptocontact%> <%shiptocontact%><%end if%>\par
+    <%shiptodepartment_1%>\par
+    <%shiptodepartment_2%>\par
+    <%shiptostreet%>\par
+    <%shiptozipcode%> <%shiptocity%>%
+  }
 \end{lrbox}
 \makeatother
 <%end if%>%
 
 \begin{letter}{
-               <%name%>\strut\\
-               <%if department_1%><%department_1%>\\<%end if%>%
-               <%if department_2%><%department_2%>\\<%end if%>%
-               <%cp_givenname%> <%cp_name%>\strut\\
-               <%street%>\strut\\
-               <%zipcode%> <%city%>\strut\\
-               <%country%> \strut
-       }
+<%name%>\strut\\
+<%if department_1%><%department_1%>\\<%end if%>%
+<%if department_2%><%department_2%>\\<%end if%>%
+<%cp_givenname%> <%cp_name%>\strut\\
+<%street%>\strut\\
+<%zipcode%> <%city%>\strut\\
+<%country%> \strut
+}
 
 % Bei Kontaktperson Anrede nach Geschlecht unterscheiden.
 % Bei natürlichen Personen persönliche Anrede, sonst allgemeine Anrede.
 \opening{
-       \Ifstr{<%cp_name%>}{}
-               {<%if natural_person%><%greeting%> <%name%>,<%else%>\anrede<%end if%>}
-               {
-                       \Ifstr{<%cp_gender%>}{f}
-                               {\anredefrau}
-                               {\anredeherr}
-                               <%cp_title%> <%cp_name%>,
-                       }
-               }
-               \thispagestyle{kivitendo.letter.first}
+\Ifstr{<%cp_name%>}{}
+{<%if natural_person%><%greeting%> <%name%>,<%else%>\anrede<%end if%>}
+  {
+    \Ifstr{<%cp_gender%>}{f}
+        {\anredefrau}
+        {\anredeherr}
+      <%cp_title%> <%cp_name%>,
+    }
+  }
+\thispagestyle{kivitendo.letter.first}
 
 \auftragsformel
+
 \begin{PricingTabular*}%
-% eigentliche Tabelle
-\FakeTable{%
-       <%foreach number%>%
-       <%runningnumber%> &%
-       <%number%> &%
-       \textbf{<%description%>}%
-       <%if longdescription%>\ExtraDescription{<%longdescription%>}<%end longdescription%>%
-       <%if reqdate%>\ExtraDescription{\lieferdatum: <%reqdate%>}<%end reqdate%>%
-       <%if serialnumber%>\ExtraDescription{\seriennummer: <%serialnumber%>}<%end serialnumber%>%
-       <%if ean%>\ExtraDescription{\ean: <%ean%>}<%end ean%>%
-       <%if projectnumber%>\ExtraDescription{\projektnummer: <%projectnumber%>}<%end projectnumber%>%
-       &%
-       <%qty%> <%unit%> &%
-       <%sellprice%>&%
-       \Ifstr{<%p_discount%>}{0}{}{\sffamily\scriptsize{(-<%p_discount%>\,\%)}}%
-       <%linetotal%>\tabularnewline%
-       <%end number%>%
-}%
-\begin{PricingTotal}%
-       % Tabellenende letzte Seite%
-       \nettobetrag & <%subtotal%>\\%
-       <%foreach tax%>%
-       <%taxdescription%> & <%tax%>\\%
-       <%end tax%>%
-       \bfseries\schlussbetrag &  \bfseries <%invtotal%>\\%
-\end{PricingTotal}%
+  % eigentliche Tabelle
+  \FakeTable{%
+  <%foreach number%>%
+  <%runningnumber%> &%
+  <%number%> &%
+  \textbf{<%description%>}%
+  <%if longdescription%>\ExtraDescription{<%longdescription%>}<%end longdescription%>%
+  <%if reqdate%>\ExtraDescription{\lieferdatum: <%reqdate%>}<%end reqdate%>%
+  <%if serialnumber%>\ExtraDescription{\seriennummer: <%serialnumber%>}<%end serialnumber%>%
+  <%if ean%>\ExtraDescription{\ean: <%ean%>}<%end ean%>%
+  <%if projectnumber%>\ExtraDescription{\projektnummer: <%projectnumber%>}<%end projectnumber%>%
+  &%
+  <%qty%> <%unit%> &%
+  <%sellprice%>&%
+  \Ifstr{<%p_discount%>}{0}{}{\sffamily\scriptsize{(-<%p_discount%>\,\%)}}%
+    <%linetotal%>\tabularnewline%
+    <%end number%>%
+  }%
+  \begin{PricingTotal}%
+    % Tabellenende letzte Seite%
+    \nettobetrag & <%subtotal%>\\%
+    <%foreach tax%>%
+    <%taxdescription%> & <%tax%>\\%
+    <%end tax%>%
+    \bfseries\schlussbetrag &  \bfseries <%invtotal%>\\%
+  \end{PricingTotal}%
 \end{PricingTabular*}
 
 <%if notes%>%
index 0748877..123eef8 100644 (file)
 \setkomavar{fromphone}{<%employee_tel%>}
 \setkomavar{fromemail}{<%employee_email%>}
 \setkomavar{title}{
-       \einkaufslieferschein~\nr ~<%donumber%>%
+  \einkaufslieferschein~\nr ~<%donumber%>%
 }
 <%if ordnumber%>
-       \setkomavar{orderID}{<%ordnumber%>}
+  \setkomavar{orderID}{<%ordnumber%>}
 <%end if%>%
 <%if cusordnumber%>%
-       \setkomavar*{yourref}{\unsereBestellnummer}
-       \setkomavar{yourref}{<%cusordnumber%>}
+  \setkomavar*{yourref}{\unsereBestellnummer}
+  \setkomavar{yourref}{<%cusordnumber%>}
 <%end if%>%
 \setkomavar{transaction}{<%transaction_description%>}
 
 <%if globalprojectnumber%>%
-       \setkomavar{projectID}{<%globalprojectnumber%>}
+  \setkomavar{projectID}{<%globalprojectnumber%>}
 <%end globalprojectnumber%>%
 
 \setkomavar{transaction}{<%transaction_description%>}
 <%if shiptoname%>%
 \makeatletter
 \begin{lrbox}\shippingAddressBox
-       \parbox{\useplength{toaddrwidth}}{
-               \backaddr@format{\scriptsize\usekomafont{backaddress}%
-                       \strut\abweichendeLieferadresse
-               }
-               \par\smallskip
-               \setlength{\parskip}{\z@}
-               \par
-               \normalsize
-               <%shiptoname%>\par
-               <%if shiptocontact%> <%shiptocontact%><%end if%>\par
-               <%shiptodepartment_1%>\par
-               <%shiptodepartment_2%>\par
-               <%shiptostreet%>\par
-               <%shiptozipcode%> <%shiptocity%>%
-       }
+  \parbox{\useplength{toaddrwidth}}{
+    \backaddr@format{\scriptsize\usekomafont{backaddress}%
+      \strut\abweichendeLieferadresse
+    }
+    \par\smallskip
+    \setlength{\parskip}{\z@}
+    \par
+    \normalsize
+    <%shiptoname%>\par
+    <%if shiptocontact%> <%shiptocontact%><%end if%>\par
+    <%shiptodepartment_1%>\par
+    <%shiptodepartment_2%>\par
+    <%shiptostreet%>\par
+    <%shiptozipcode%> <%shiptocity%>%
+  }
 \end{lrbox}
 \makeatother
 <%end if%>%
 
 
 \begin{letter}{
-       <%name%>\strut\\
-       <%if department_1%><%department_1%>\\<%end if%>%
-       <%if department_2%><%department_2%>\\<%end if%>%
-       <%cp_givenname%> <%cp_name%>\strut\\
-       <%street%>\strut\\
-       <%zipcode%> <%city%>\strut\\
-       <%country%> \strut
+<%name%>\strut\\
+<%if department_1%><%department_1%>\\<%end if%>%
+<%if department_2%><%department_2%>\\<%end if%>%
+<%cp_givenname%> <%cp_name%>\strut\\
+<%street%>\strut\\
+<%zipcode%> <%city%>\strut\\
+<%country%> \strut
 }
 
 
 \thispagestyle{kivitendo.letter.first}
 
 \begin{PricingTabular*}[columns={pos,amount,desc}]
-% eigentliche Tabelle
-\FakeTable{
-<%foreach number%>%
-       <%runningnumber%> &
-       <%qty%> <%unit%> &
-       \textbf{<%description%>}
-               <%if longdescription%>\ExtraDescription{<%longdescription%>}<%end longdescription%>%
-               <%if reqdate%>\ExtraDescription{\lieferdatum: <%reqdate%>}<%end reqdate%>%
-               <%if serialnumber%>\ExtraDescription{\seriennummer: <%serialnumber%>}<%end serialnumber%>%
-               <%if ean%>\ExtraDescription{\ean: <%ean%>}<%end ean%>%
-               <%if projectnumber%>\ExtraDescription{\projektnummer: <%projectnumber%>}<%end projectnumber%>%
-               <%foreach si_number%>%
-                       <%if si_chargenumber%>\ExtraDescription{\charge: <%si_chargenumber%> <%if si_bestbefore%> \mhd: <%si_bestbefore%><%end if%><%si_qty%>~<%si_unit%><%end si_chargenumber%>}%
-               <%end si_number%>%
-       \tabularnewline
-<%end number%>%
-}
+  % eigentliche Tabelle
+  \FakeTable{
+  <%foreach number%>%
+  <%runningnumber%> &
+  <%qty%> <%unit%> &
+  \textbf{<%description%>}
+    <%if longdescription%>\ExtraDescription{<%longdescription%>}<%end longdescription%>%
+    <%if reqdate%>\ExtraDescription{\lieferdatum: <%reqdate%>}<%end reqdate%>%
+    <%if serialnumber%>\ExtraDescription{\seriennummer: <%serialnumber%>}<%end serialnumber%>%
+    <%if ean%>\ExtraDescription{\ean: <%ean%>}<%end ean%>%
+    <%if projectnumber%>\ExtraDescription{\projektnummer: <%projectnumber%>}<%end projectnumber%>%
+    <%foreach si_number%>%
+    <%if si_chargenumber%>\ExtraDescription{\charge: <%si_chargenumber%> <%if si_bestbefore%> \mhd: <%si_bestbefore%><%end if%><%si_qty%>~<%si_unit%><%end si_chargenumber%>}%
+    <%end si_number%>%
+    \tabularnewline
+    <%end number%>%
+  }
 \end{PricingTabular*}
 
 \medskip
 <%end if%>%
 
 <%if delivery_term%>%
-  \lieferung ~<%delivery_term.description_long%>\\
+\lieferung ~<%delivery_term.description_long%>\\
 <%end delivery_term%>%
 
 \end{letter}
index 677e2ab..9c8d610 100644 (file)
 \setkomavar{fromphone}{<%employee_tel%>}
 \setkomavar{fromemail}{<%employee_email%>}
 \setkomavar{title}{
-       \bestellung~
-       \nr~<%ordnumber%>%
+  \bestellung~
+  \nr~<%ordnumber%>%
 }
 
 <%if cusordnumber%>%
-       \setkomavar*{yourref}{\unsereBestellnummer}
-       \setkomavar{yourref}{<%cusordnumber%>}
+  \setkomavar*{yourref}{\unsereBestellnummer}
+  \setkomavar{yourref}{<%cusordnumber%>}
 <%end if%>%
 \setkomavar{transaction}{<%transaction_description%>}
 
 <%if quonumber%>
-       \setkomavar{quote}{<%quonumber%>}
+  \setkomavar{quote}{<%quonumber%>}
 <%end if%>%
 
 <%if shiptoname%>%
 \makeatletter
 \begin{lrbox}\shippingAddressBox
-       \parbox{\useplength{toaddrwidth}}{
-               \backaddr@format{\scriptsize\usekomafont{backaddress}%
-                       \strut abweichende Lieferadresse
-               }
-               \par\smallskip
-               \setlength{\parskip}{\z@}
-               \par
-               \normalsize
-               <%shiptoname%>\par
-               <%if shiptocontact%> <%shiptocontact%><%end if%>\par
-               <%shiptodepartment_1%>\par
-               <%shiptodepartment_2%>\par
-               <%shiptostreet%>\par
-               <%shiptozipcode%> <%shiptocity%>%
-       }
+  \parbox{\useplength{toaddrwidth}}{
+    \backaddr@format{\scriptsize\usekomafont{backaddress}%
+      \strut abweichende Lieferadresse
+    }
+    \par\smallskip
+    \setlength{\parskip}{\z@}
+    \par
+    \normalsize
+    <%shiptoname%>\par
+    <%if shiptocontact%> <%shiptocontact%><%end if%>\par
+    <%shiptodepartment_1%>\par
+    <%shiptodepartment_2%>\par
+    <%shiptostreet%>\par
+    <%shiptozipcode%> <%shiptocity%>%
+  }
 \end{lrbox}
 \makeatother
 <%end if%>%
 \begin{document}
 
 \begin{letter}{
-               <%name%>\strut\\
-               <%if department_1%><%department_1%>\\<%end if%>%
-               <%if department_2%><%department_2%>\\<%end if%>%
-               <%cp_givenname%> <%cp_name%>\strut\\
-               <%street%>\strut\\
-               <%zipcode%> <%city%>\strut\\
-               <%country%> \strut
-       }
+<%name%>\strut\\
+<%if department_1%><%department_1%>\\<%end if%>%
+<%if department_2%><%department_2%>\\<%end if%>%
+<%cp_givenname%> <%cp_name%>\strut\\
+<%street%>\strut\\
+<%zipcode%> <%city%>\strut\\
+<%country%> \strut
+}
 
 % Bei Kontaktperson Anrede nach Geschlecht unterscheiden.
 % Bei natürlichen Personen persönliche Anrede, sonst allgemeine Anrede.
 \opening{
-       \Ifstr{<%cp_name%>}{}
-       {<%if natural_person%><%greeting%> <%name%>,<%else%>\anrede<%end if%>}
-       {
-               \Ifstr{<%cp_gender%>}{f}
-                       {\anredefrau}
-                       {\anredeherr}
-                       <%cp_title%> <%cp_name%>,
-       }
-}
+\Ifstr{<%cp_name%>}{}
+{<%if natural_person%><%greeting%> <%name%>,<%else%>\anrede<%end if%>}
+  {
+    \Ifstr{<%cp_gender%>}{f}
+        {\anredefrau}
+        {\anredeherr}
+      <%cp_title%> <%cp_name%>,
+    }
+  }
 \thispagestyle{kivitendo.letter.first}
 
 \bestellformel
 
 \begin{PricingTabular*}
-       % eigentliche Tabelle
-       \FakeTable{
-       <%foreach number%>%
-               <%runningnumber%> &%
-               <%number%> &%
-               \textbf{<%description%>}%
-               <%if longdescription%>\ExtraDescription{<%longdescription%>}<%end longdescription%>%
-               <%if reqdate%>\ExtraDescription{\lieferdatum: <%reqdate%>}<%end reqdate%>%
-               <%if serialnumber%>\ExtraDescription{\seriennummer: <%serialnumber%>}<%end serialnumber%>%
-               <%if ean%>\ExtraDescription{\ean: <%ean%>}<%end ean%>%
-               <%if projectnumber%>\ExtraDescription{\projektnummer: <%projectnumber%>}<%end projectnumber%>%
-               &%
-               <%qty%> <%unit%> &%
-               <%sellprice%>&%
-               \Ifstr{<%p_discount%>}{0}{}{\sffamily\scriptsize{(-<%p_discount%>\,\%)}}%
-               <%linetotal%>\tabularnewline
-       <%end number%>%
-       }%
-       \begin{PricingTotal}%
-               % Tabellenende letzte Seite
-               \nettobetrag & <%subtotal%>\\%
-               <%foreach tax%>%
-               <%taxdescription%> & <%tax%>\\%
-               <%end tax%>%
-               \bfseries\schlussbetrag &  \bfseries <%ordtotal%>\\%
-       \end{PricingTotal}
+  % eigentliche Tabelle
+  \FakeTable{
+  <%foreach number%>%
+  <%runningnumber%> &%
+  <%number%> &%
+  \textbf{<%description%>}%
+  <%if longdescription%>\ExtraDescription{<%longdescription%>}<%end longdescription%>%
+  <%if reqdate%>\ExtraDescription{\lieferdatum: <%reqdate%>}<%end reqdate%>%
+  <%if serialnumber%>\ExtraDescription{\seriennummer: <%serialnumber%>}<%end serialnumber%>%
+  <%if ean%>\ExtraDescription{\ean: <%ean%>}<%end ean%>%
+  <%if projectnumber%>\ExtraDescription{\projektnummer: <%projectnumber%>}<%end projectnumber%>%
+  &%
+  <%qty%> <%unit%> &%
+  <%sellprice%>&%
+  \Ifstr{<%p_discount%>}{0}{}{\sffamily\scriptsize{(-<%p_discount%>\,\%)}}%
+    <%linetotal%>\tabularnewline
+    <%end number%>%
+  }%
+  \begin{PricingTotal}%
+    % Tabellenende letzte Seite
+    \nettobetrag & <%subtotal%>\\%
+    <%foreach tax%>%
+    <%taxdescription%> & <%tax%>\\%
+    <%end tax%>%
+    \bfseries\schlussbetrag &  \bfseries <%ordtotal%>\\%
+  \end{PricingTotal}
 \end{PricingTabular*}
 
 <%if notes%>%
 <%end if%>%
 
 <%if delivery_term%>%
-  \lieferung ~<%delivery_term.description_long%>\\
+\lieferung ~<%delivery_term.description_long%>\\
 <%end delivery_term%>%
 
 \closing{\gruesse}
index 2725140..ad428f7 100644 (file)
 \setplength{firstheadvpos}{4cm}
 
 \setkomavar{firsthead}{
-       \noindent\begin{tabular}[t]{@{}l@{}}
-               <%company%>\strut\\
-               <%address%>
-       \end{tabular}
-       \hfill
-       <%source%>\par
-       \medskip
-       <%text\_amount%> \dotfill <%decimal%>/100 \par\smallskip
-       \hfill <%datepaid%> \hspace{2cm}\strut<%amount%>
+  \noindent\begin{tabular}[t]{@{}l@{}}
+    <%company%>\strut\\
+    <%address%>
+  \end{tabular}
+  \hfill
+  <%source%>\par
+  \medskip
+  <%text\_amount%> \dotfill <%decimal%>/100 \par\smallskip
+  \hfill <%datepaid%> \hspace{2cm}\strut<%amount%>
 }
 
 
 \begin{document}
 
 \begin{letter}{
-               <%name%>\ifhmode\\\fi
-               <%street%>\ifhmode\\\fi
-               <%zipcode%> <%city%>\ifhmode\\\fi
-               <%country%>%
-       }
+<%name%>\ifhmode\\\fi
+<%street%>\ifhmode\\\fi
+<%zipcode%> <%city%>\ifhmode\\\fi
+<%country%>%
+}
 
 \opening{<%company%>}
 \pagestyle{empty}
@@ -43,9 +43,9 @@
 <%name%> \hfill <%datepaid%> \hfill <%source%>%
 
 \begin{SimpleTabular}[colspec=lXrr,headline={\bfseries\rechnung&\bfseries\ausgestellt&\bfseries\faellig&\bfseries\verrechnet}]
-<%foreach invnumber%>%
-<%invnumber%> & <%invdate%> & <%due%> & <%paid%> \\
-<%end invnumber%>%
+  <%foreach invnumber%>%
+  <%invnumber%> & <%invdate%> & <%due%> & <%paid%> \\
+  <%end invnumber%>%
 \end{SimpleTabular}
 
 \end{letter}
index 9631735..0cfc119 100644 (file)
 \setkomavar{fromphone}{<%employee_tel%>}
 \setkomavar{fromemail}{<%employee_email%>}
 \setkomavar{title}{
-       \anfrage~
-       \nr ~<%quonumber%>%
+  \anfrage~
+  \nr ~<%quonumber%>%
 }
 <%if globalprojectnumber%>%
-       \setkomavar{projectID}{<%globalprojectnumber%>}
+  \setkomavar{projectID}{<%globalprojectnumber%>}
 <%end globalprojectnumber%>%
 
 \setkomavar{transaction}{<%transaction_description%>}
 \begin{document}
 
 \begin{letter}{
-               <%name%>\strut\\
-               <%if department_1%><%department_1%>\\<%end if%>%
-               <%if department_2%><%department_2%>\\<%end if%>%
-               <%cp_givenname%> <%cp_name%>\strut\\
-               <%street%>\strut\\
-               <%zipcode%> <%city%>\strut\\
-               <%country%> \strut
-       }
+<%name%>\strut\\
+<%if department_1%><%department_1%>\\<%end if%>%
+<%if department_2%><%department_2%>\\<%end if%>%
+<%cp_givenname%> <%cp_name%>\strut\\
+<%street%>\strut\\
+<%zipcode%> <%city%>\strut\\
+<%country%> \strut
+}
 
 % Bei Kontaktperson Anrede nach Geschlecht unterscheiden.
 % Bei natürlichen Personen persönliche Anrede, sonst allgemeine Anrede.
 \opening{
-       \Ifstr{<%cp_name%>}{}
-               {<%if natural_person%><%greeting%> <%name%>,<%else%>\anrede<%end if%>}
-               {
-                       \Ifstr{<%cp_gender%>}{f}
-                               {\anredefrau}
-                               {\anredeherr}
-                               <%cp_title%> <%cp_name%>,
-               }
-}
+\Ifstr{<%cp_name%>}{}
+{<%if natural_person%><%greeting%> <%name%>,<%else%>\anrede<%end if%>}
+  {
+    \Ifstr{<%cp_gender%>}{f}
+        {\anredefrau}
+        {\anredeherr}
+      <%cp_title%> <%cp_name%>,
+    }
+  }
 \thispagestyle{kivitendo.letter.first}
 
 \anfrageformel
 
 \begin{PricingTabular*}[columns={pos,amount,desc}]
-% eigentliche Tabelle
-\FakeTable{
-<%foreach number%>%
-       <%runningnumber%> &
-       <%qty%> <%unit%> &
-       \textbf{<%description%>}
-       <%if longdescription%>\ExtraDescription{<%longdescription%>}<%end longdescription%>%
-       <%if projectnumber%>\ExtraDescription{\projektnummer: <%projectnumber%>}<%end projectnumber%>%
-       <%if make%>%
-               <%foreach make%>%
-                       \Ifstr{<%make%>}{<%name%>}{\ExtraDescription{\artikelnummer: <%model%>}}{}
-               <%end foreach%>%
-       <%end if%>%
-       \tabularnewline
-<%end number%>%
-}%
+  % eigentliche Tabelle
+  \FakeTable{
+  <%foreach number%>%
+  <%runningnumber%> &
+  <%qty%> <%unit%> &
+  \textbf{<%description%>}
+  <%if longdescription%>\ExtraDescription{<%longdescription%>}<%end longdescription%>%
+  <%if projectnumber%>\ExtraDescription{\projektnummer: <%projectnumber%>}<%end projectnumber%>%
+  <%if make%>%
+  <%foreach make%>%
+  \Ifstr{<%make%>}{<%name%>}{\ExtraDescription{\artikelnummer: <%model%>}}{}
+    <%end foreach%>%
+    <%end if%>%
+    \tabularnewline
+    <%end number%>%
+  }%
 \end{PricingTabular*}
 
 
@@ -87,7 +87,7 @@
 
 
 <%if delivery_term%>%
-  \lieferung ~<%delivery_term.description_long%>\\
+\lieferung ~<%delivery_term.description_long%>\\
 <%end delivery_term%>%
 
 <%if reqdate%>%
index 1d22e9c..d8fb2e5 100644 (file)
@@ -45,10 +45,10 @@ $( KiviLatex.required_packages_for_html )$
       \Large
       $( KiviLatex.filter(rspec.title) )$
       \normalsize
-%$( IF rspec.version )$
+      %$( IF rspec.version )$
 
-    Version $( KiviLatex.filter(rspec.version.version_number) )$
-%$( END )$
+      Version $( KiviLatex.filter(rspec.version.version_number) )$
+      %$( END )$
     \end{minipage}%
   }
 \end{picture}
@@ -69,19 +69,19 @@ $( KiviLatex.required_packages_for_html )$
 %$( SET working_copy     = rspec.working_copy_id ? rspec.working_copy : rspec )$
 %$( SET versioned_copies = rspec.version ? working_copy.versioned_copies_sorted(max_version_number = rspec.version.version_number) : working_copy.versioned_copies_sorted )$
 %$( IF !versioned_copies.size )$
-  Bisher wurden noch keine Versionen angelegt.
+Bisher wurden noch keine Versionen angelegt.
 %$( ELSE )$
 \begin{longtable}{|p{2cm}|p{2cm}|p{12cm}|}
   \hline
-  \multicolumn{1}{|r}{\small Version} &
-  \multicolumn{1}{|r|}{\small Datum} &
-  \small Beschreibung\\
+  \multicolumn{1}{|r}{\small Version}                                                                                &
+  \multicolumn{1}{|r|}{\small Datum}                                                                                 &
+  \small Beschreibung                                                                                                  \\
   \hline
-%$( FOREACH versioned_copy = versioned_copies )$
-   \multicolumn{1}{|r}{\small $( KiviLatex.filter(versioned_copy.version.version_number) )$} &
-   \multicolumn{1}{|r|}{\small $( KiviLatex.filter(versioned_copy.version.itime.to_kivitendo(precision='minute')) )$} &
-   \small $( KiviLatex.filter(versioned_copy.version.description) )$\\
-%$( END )$
+  %$( FOREACH versioned_copy = versioned_copies )$
+  \multicolumn{1}{|r}{\small $( KiviLatex.filter(versioned_copy.version.version_number) )$}                          &
+  \multicolumn{1}{|r|}{\small $( KiviLatex.filter(versioned_copy.version.itime.to_kivitendo(precision='minute')) )$} &
+  \small $( KiviLatex.filter(versioned_copy.version.description) )$                                                    \\
+  %$( END )$
   \hline
 \end{longtable}
 %$( END )$
@@ -93,7 +93,7 @@ $( KiviLatex.required_packages_for_html )$
   \centering
   \includegraphics[width=$( width_cm )$cm,keepaspectratio]{$( picture.print_file_name )$}
 
-\mbox{Abbildung $( picture.number )$: $( KiviLatex.filter(picture.description ? picture.description : picture.picture_file_name) )$}
+  \mbox{Abbildung $( picture.number )$: $( KiviLatex.filter(picture.description ? picture.description : picture.picture_file_name) )$}
 \end{figure}
 %$( END )$
 
@@ -101,13 +101,13 @@ $( KiviLatex.required_packages_for_html )$
 %  $( SET text_blocks = rspec.text_blocks_sorted(output_position=output_position) )$
 %  $( IF text_blocks.size )$
 
-  \newpage
+\newpage
 
-  \section{$( heading )$}
+\section{$( heading )$}
 
 %    $( FOREACH text_block = text_blocks )$
 
-    \subsection{$( KiviLatex.filter(text_block.title) )$}
+\subsection{$( KiviLatex.filter(text_block.title) )$}
 
 $( KiviLatex.filter_html(text_block.text_as_restricted_html) )$
 
@@ -132,31 +132,31 @@ $( PROCESS text_block_outputter output_position=0 heading='Allgemeines' )$
 
 %$( FOREACH top_item = rspec.sections_sorted )$
 
-  \subsection{Abschnitt $( KiviLatex.filter(top_item.fb_number) )$: $( KiviLatex.filter(top_item.title) )$}
+\subsection{Abschnitt $( KiviLatex.filter(top_item.fb_number) )$: $( KiviLatex.filter(top_item.title) )$}
 
 %  $( IF top_item.description )$
-    $( KiviLatex.filter_html(top_item.description_as_restricted_html.replace('\r', '').replace('\n+\Z', '')) )$
+$( KiviLatex.filter_html(top_item.description_as_restricted_html.replace('\r', '').replace('\n+\Z', '')) )$
 
-    \vspace{0.5cm}
+\vspace{0.5cm}
 %  $( END )$
 %  $( FOREACH item = top_item.children_sorted )$
 \parbox[t]{1.0cm}{\textcolor{kivitendodarkred}{$>>>$}}%
 \parbox[t]{15.0cm}{%
-\begin{longtable}{p{2.8cm}p{11.7cm}}
-  Funktionsblock & $( KiviLatex.filter(item.fb_number) )$\\
-  Beschreibung & $( KiviLatex.filter_html(item.description_as_restricted_html) )$\\
-  Abhängigkeiten & $( KiviLatex.filter(item.presenter.requirement_spec_item_dependency_list) )$
-\end{longtable}}
+  \begin{longtable}{p{2.8cm}p{11.7cm}}
+    Funktionsblock & $( KiviLatex.filter(item.fb_number) )$                                       \\
+    Beschreibung   & $( KiviLatex.filter_html(item.description_as_restricted_html) )$             \\
+    Abhängigkeiten & $( KiviLatex.filter(item.presenter.requirement_spec_item_dependency_list) )$
+  \end{longtable}}
 
 %    $( FOREACH sub_item = item.children_sorted )$
 \hspace*{1.15cm}\rule{15.2cm}{0.2pt}\\
 \hspace*{1.0cm}%
 \parbox[t]{15.0cm}{%
-\begin{longtable}{p{2.8cm}p{11.7cm}}
-  Unterfunktionsblock & $( KiviLatex.filter(sub_item.fb_number) )$\\
-  Beschreibung & $( KiviLatex.filter_html(sub_item.description_as_restricted_html) )$\\
-  Abhängigkeiten & $( KiviLatex.filter(sub_item.presenter.requirement_spec_item_dependency_list) )$
-\end{longtable}}
+  \begin{longtable}{p{2.8cm}p{11.7cm}}
+    Unterfunktionsblock & $( KiviLatex.filter(sub_item.fb_number) )$                                       \\
+    Beschreibung        & $( KiviLatex.filter_html(sub_item.description_as_restricted_html) )$             \\
+    Abhängigkeiten      & $( KiviLatex.filter(sub_item.presenter.requirement_spec_item_dependency_list) )$
+  \end{longtable}}
 
 %    $( END )$
 
index 657abd9..2811e50 100644 (file)
 \setkomavar{fromphone}{<%employee_tel%>}
 \setkomavar{fromemail}{<%employee_email%>}
 \setkomavar{title}{
-       \lieferschein~
-       \nr~<%donumber%>%
+  \lieferschein~
+  \nr~<%donumber%>%
 }
 <%if ordnumber%>
-       \setkomavar{orderID}{<%ordnumber%>}
+  \setkomavar{orderID}{<%ordnumber%>}
 <%end if%>%
 <%if cusordnumber%>%
-       \setkomavar*{yourref}{\unsereBestellnummer}
-       \setkomavar{yourref}{<%cusordnumber%>}
+  \setkomavar*{yourref}{\unsereBestellnummer}
+  \setkomavar{yourref}{<%cusordnumber%>}
 <%end if%>%
 \setkomavar{transaction}{<%transaction_description%>}
 
 <%if globalprojectnumber%>%
-       \setkomavar{projectID}{<%globalprojectnumber%>}
+  \setkomavar{projectID}{<%globalprojectnumber%>}
 <%end globalprojectnumber%>%
 
 \setkomavar{transaction}{<%transaction_description%>}
 \begin{document}
 
 \begin{letter}{
-  \Ifstr{<%shiptoname%>}{}{ % KEINE ABWEICHENDE LIEFERADRESSE
-       <%name%>\strut\\
-       <%if department_1%><%department_1%>\\<%end if%>%
-       <%if department_2%><%department_2%>\\<%end if%>%
-       <%cp_givenname%> <%cp_name%>\strut\\
-       <%street%>\strut\\
-       <%zipcode%> <%city%>\strut\\
-       <%country%> \strut
-  }{ % ABWEICHENDE LIEFERADRESSE (Aus Stammdaten oder Beleg)
-       <%shiptoname%>\strut\\
-       <%if shiptocontact%> <%shiptocontact%><%end if%>\strut\\
-       <%shiptodepartment_1%>\strut\\
-       <%shiptodepartment_2%>\strut\\
-       <%shiptostreet%>\strut\\
-       <%shiptozipcode%> <%shiptocity%>\strut
-       } % ende ifthenelse LIEFERADRESSE
+\Ifstr{<%shiptoname%>}{}{ % KEINE ABWEICHENDE LIEFERADRESSE
+  <%name%>\strut\\
+  <%if department_1%><%department_1%>\\<%end if%>%
+  <%if department_2%><%department_2%>\\<%end if%>%
+  <%cp_givenname%> <%cp_name%>\strut\\
+  <%street%>\strut\\
+  <%zipcode%> <%city%>\strut\\
+  <%country%> \strut
+}{ % ABWEICHENDE LIEFERADRESSE (Aus Stammdaten oder Beleg)
+  <%shiptoname%>\strut\\
+  <%if shiptocontact%> <%shiptocontact%><%end if%>\strut\\
+  <%shiptodepartment_1%>\strut\\
+  <%shiptodepartment_2%>\strut\\
+  <%shiptostreet%>\strut\\
+  <%shiptozipcode%> <%shiptocity%>\strut
+} % ende ifthenelse LIEFERADRESSE
 }
 
 \opening{}
 \thispagestyle{kivitendo.letter.first}
 
 \begin{PricingTabular*}[columns={pos, id, desc, amount}]
-% eigentliche Tabelle
-\FakeTable{
-<%foreach number%>%
-       <%runningnumber%> &
-       <%number%> &
-       \textbf{<%description%>}
-               <%if longdescription%>\ExtraDescription{<%longdescription%>}<%end longdescription%>%
-               <%if reqdate%>\ExtraDescription{\lieferdatum: <%reqdate%>}<%end reqdate%>%
-               <%if serialnumber%>\ExtraDescription{\seriennummer: <%serialnumber%>}<%end serialnumber%>%
-               <%if ean%>\ExtraDescription{\ean: <%ean%>}<%end ean%>%
-               <%if projectnumber%>\ExtraDescription{\projektnummer: <%projectnumber%>}<%end projectnumber%>%
-               <%foreach si_number%>%
-                       <%if si_chargenumber%>\ExtraDescription{\charge: <%si_chargenumber%> <%if si_bestbefore%> \mhd: <%si_bestbefore%><%end if%><%si_qty%>~<%si_unit%><%end si_chargenumber%>}%
-               <%end si_number%>%
-       &
-               <%qty%> <%unit%>%
-       \tabularnewline
-<%end number%>%
-}
+  % eigentliche Tabelle
+  \FakeTable{
+  <%foreach number%>%
+  <%runningnumber%> &
+  <%number%> &
+  \textbf{<%description%>}
+    <%if longdescription%>\ExtraDescription{<%longdescription%>}<%end longdescription%>%
+    <%if reqdate%>\ExtraDescription{\lieferdatum: <%reqdate%>}<%end reqdate%>%
+    <%if serialnumber%>\ExtraDescription{\seriennummer: <%serialnumber%>}<%end serialnumber%>%
+    <%if ean%>\ExtraDescription{\ean: <%ean%>}<%end ean%>%
+    <%if projectnumber%>\ExtraDescription{\projektnummer: <%projectnumber%>}<%end projectnumber%>%
+    <%foreach si_number%>%
+    <%if si_chargenumber%>\ExtraDescription{\charge: <%si_chargenumber%> <%if si_bestbefore%> \mhd: <%si_bestbefore%><%end if%><%si_qty%>~<%si_unit%><%end si_chargenumber%>}%
+    <%end si_number%>%
+    &
+    <%qty%> <%unit%>%
+    \tabularnewline
+    <%end number%>%
+  }
 \end{PricingTabular*}
 
 \medskip
@@ -94,7 +94,7 @@
 <%end if%>%
 
 <%if delivery_term%>%
-  \lieferung ~<%delivery_term.description_long%>\\
+\lieferung ~<%delivery_term.description_long%>\\
 <%end delivery_term%>%
 
 \end{letter}
index 6bb10c5..23c4a45 100644 (file)
 \setkomavar{fromphone}{<%employee_tel%>}
 \setkomavar{fromemail}{<%employee_email%>}
 \setkomavar{title}{
-       \auftragsbestaetigung~
-       \nr~<%ordnumber%>%
+  \auftragsbestaetigung~
+  \nr~<%ordnumber%>%
 }
 <%if cusordnumber%>%
-       \setkomavar*{yourref}{\ihreBestellnummer}
-       \setkomavar{yourref}{<%cusordnumber%>}
+  \setkomavar*{yourref}{\ihreBestellnummer}
+  \setkomavar{yourref}{<%cusordnumber%>}
 <%end if%>%
 \setkomavar{transaction}{<%transaction_description%>}
 
 <%if quonumber%>
-       \setkomavar{quote}{<%quonumber%>}
+  \setkomavar{quote}{<%quonumber%>}
 <%end if%>%
 
 <%if shiptoname%>%
 \makeatletter
 \begin{lrbox}\shippingAddressBox
-       \parbox{\useplength{toaddrwidth}}{
-               \backaddr@format{\scriptsize\usekomafont{backaddress}%
-                       \strut abweichende Lieferadresse
-               }
-               \par\smallskip
-               \setlength{\parskip}{\z@}
-               \par
-               \normalsize
-               <%shiptoname%>\par
-               <%if shiptocontact%> <%shiptocontact%><%end if%>\par
-               <%shiptodepartment_1%>\par
-               <%shiptodepartment_2%>\par
-               <%shiptostreet%>\par
-               <%shiptozipcode%> <%shiptocity%>%
-       }
+  \parbox{\useplength{toaddrwidth}}{
+    \backaddr@format{\scriptsize\usekomafont{backaddress}%
+      \strut abweichende Lieferadresse
+    }
+    \par\smallskip
+    \setlength{\parskip}{\z@}
+    \par
+    \normalsize
+    <%shiptoname%>\par
+    <%if shiptocontact%> <%shiptocontact%><%end if%>\par
+    <%shiptodepartment_1%>\par
+    <%shiptodepartment_2%>\par
+    <%shiptostreet%>\par
+    <%shiptozipcode%> <%shiptocity%>%
+  }
 \end{lrbox}
 \makeatother
 <%end if%>%
 \begin{document}
 
 \begin{letter}{
-               <%name%>\strut\\
-               <%if department_1%><%department_1%>\\<%end if%>%
-               <%if department_2%><%department_2%>\\<%end if%>%
-               <%cp_givenname%> <%cp_name%>\strut\\
-               <%street%>\strut\\
-               <%zipcode%> <%city%>\strut\\
-               <%country%> \strut
-       }
+<%name%>\strut\\
+<%if department_1%><%department_1%>\\<%end if%>%
+<%if department_2%><%department_2%>\\<%end if%>%
+<%cp_givenname%> <%cp_name%>\strut\\
+<%street%>\strut\\
+<%zipcode%> <%city%>\strut\\
+<%country%> \strut
+}
 
 % Bei Kontaktperson Anrede nach Geschlecht unterscheiden.
 % Bei natürlichen Personen persönliche Anrede, sonst allgemeine Anrede.
 \opening{
-       \Ifstr{<%cp_name%>}{}
-       {<%if natural_person%><%greeting%> <%name%>,<%else%>\anrede<%end if%>}
-       {
-               \Ifstr{<%cp_gender%>}{f}
-                       {\anredefrau}
-                       {\anredeherr}
-                       <%cp_title%> <%cp_name%>,
-       }
-}
+\Ifstr{<%cp_name%>}{}
+{<%if natural_person%><%greeting%> <%name%>,<%else%>\anrede<%end if%>}
+  {
+    \Ifstr{<%cp_gender%>}{f}
+        {\anredefrau}
+        {\anredeherr}
+      <%cp_title%> <%cp_name%>,
+    }
+  }
 \thispagestyle{kivitendo.letter.first}
 
 \auftragsformel
 
 \begin{PricingTabular*}
-       % eigentliche Tabelle
-       \FakeTable{
-       <%foreach number%>%
-               <%runningnumber%> &%
-               <%number%> &%
-               \textbf{<%description%>}%
-               <%if longdescription%>\ExtraDescription{<%longdescription%>}<%end longdescription%>%
-               <%if reqdate%>\ExtraDescription{\lieferdatum: <%reqdate%>}<%end reqdate%>%
-               <%if serialnumber%>\ExtraDescription{\seriennummer: <%serialnumber%>}<%end serialnumber%>%
-               <%if ean%>\ExtraDescription{\ean: <%ean%>}<%end ean%>%
-               <%if projectnumber%>\ExtraDescription{\projektnummer: <%projectnumber%>}<%end projectnumber%>%
-               &%
-               <%qty%> <%unit%> &%
-               <%sellprice%>&%
-               \Ifstr{<%p_discount%>}{0}{}{\sffamily\scriptsize{(-<%p_discount%>\,\%)}}%
-               <%linetotal%>\tabularnewline
-       <%end number%>%
-       }%
-       \begin{PricingTotal}%
-               % Tabellenende letzte Seite
-               \nettobetrag & <%subtotal%>\\%
-               <%foreach tax%>%
-               <%taxdescription%> & <%tax%>\\%
-               <%end tax%>%
-               \bfseries\schlussbetrag &  \bfseries <%ordtotal%>\\%
-       \end{PricingTotal}
+  % eigentliche Tabelle
+  \FakeTable{
+  <%foreach number%>%
+  <%runningnumber%> &%
+  <%number%> &%
+  \textbf{<%description%>}%
+  <%if longdescription%>\ExtraDescription{<%longdescription%>}<%end longdescription%>%
+  <%if reqdate%>\ExtraDescription{\lieferdatum: <%reqdate%>}<%end reqdate%>%
+  <%if serialnumber%>\ExtraDescription{\seriennummer: <%serialnumber%>}<%end serialnumber%>%
+  <%if ean%>\ExtraDescription{\ean: <%ean%>}<%end ean%>%
+  <%if projectnumber%>\ExtraDescription{\projektnummer: <%projectnumber%>}<%end projectnumber%>%
+  &%
+  <%qty%> <%unit%> &%
+  <%sellprice%>&%
+  \Ifstr{<%p_discount%>}{0}{}{\sffamily\scriptsize{(-<%p_discount%>\,\%)}}%
+    <%linetotal%>\tabularnewline
+    <%end number%>%
+  }%
+  \begin{PricingTotal}%
+    % Tabellenende letzte Seite
+    \nettobetrag & <%subtotal%>\\%
+    <%foreach tax%>%
+    <%taxdescription%> & <%tax%>\\%
+    <%end tax%>%
+    \bfseries\schlussbetrag &  \bfseries <%ordtotal%>\\%
+  \end{PricingTotal}
 \end{PricingTabular*}
 
 <%if notes%>%
 <%end if%>%
 
 <%if delivery_term%>%
-  \lieferung ~<%delivery_term.description_long%>\\
+\lieferung ~<%delivery_term.description_long%>\\
 <%end delivery_term%>%
 
 <%if reqdate%>%
index 0190046..d6e03c8 100644 (file)
@@ -19,9 +19,9 @@
 \begin{document}
 
 \setkomavar{signature}{%
-<%employee_company%>%
-\ifhmode\\\fi
-<%salesman_name%>%
+  <%employee_company%>%
+  \ifhmode\\\fi
+  <%salesman_name%>%
 }
 
 \setkomavar*{date}{\datum}
 \setkomavar{fromphone}{<%employee_tel%>}
 \setkomavar{fromemail}{<%employee_email%>}
 \setkomavar{title}{
-       \angebot~
-       <%quonumber%>%
+  \angebot~
+  <%quonumber%>%
 }
 
 \setkomavar{transaction}{<%transaction_description%>}
 
 <%if shiptoname%>%
 \makeatletter
-  \begin{lrbox}\shippingAddressBox
+\begin{lrbox}\shippingAddressBox
   \parbox{\useplength{toaddrwidth}}{
-       \backaddr@format{\scriptsize\usekomafont{backaddress}%
-               \strut\abweichendeLieferadresse
-       }
-       \par\smallskip
-       \setlength{\parskip}{\z@}
-       \par
-       \normalsize
-       <%shiptoname%>\par
-        <%if shiptocontact%> <%shiptocontact%><%end if%>\par
-       <%shiptodepartment_1%>\par
-       <%shiptodepartment_2%>\par
-       <%shiptostreet%>\par
-       <%shiptozipcode%> <%shiptocity%>%
- }
+    \backaddr@format{\scriptsize\usekomafont{backaddress}%
+      \strut\abweichendeLieferadresse
+    }
+    \par\smallskip
+    \setlength{\parskip}{\z@}
+    \par
+    \normalsize
+    <%shiptoname%>\par
+    <%if shiptocontact%> <%shiptocontact%><%end if%>\par
+    <%shiptodepartment_1%>\par
+    <%shiptodepartment_2%>\par
+    <%shiptostreet%>\par
+    <%shiptozipcode%> <%shiptocity%>%
 }
 \end{lrbox}
 \makeatother
 <%end if%>%
 
 
 \begin{letter}{
-  <%name%>\strut\\
-  <%if department_1%><%department_1%>\\<%end if%>%
-  <%if department_2%><%department_2%>\\<%end if%>%
-  <%cp_givenname%> <%cp_name%>\strut\\
-  <%street%>\strut\\
-  <%zipcode%> <%city%>\strut\\
-  <%country%> \strut
+<%name%>\strut\\
+<%if department_1%><%department_1%>\\<%end if%>%
+<%if department_2%><%department_2%>\\<%end if%>%
+<%cp_givenname%> <%cp_name%>\strut\\
+<%street%>\strut\\
+<%zipcode%> <%city%>\strut\\
+<%country%> \strut
 }
 
 % Bei Kontaktperson Anrede nach Geschlecht unterscheiden.
 % Bei natürlichen Personen persönliche Anrede, sonst allgemeine Anrede.
 \opening{
-       \Ifstr{<%cp_name%>}{}
-               {<%if natural_person%><%greeting%> <%name%>,<%else%>\anrede<%end if%>}
-               {
-               \Ifstr{<%cp_gender%>}{f}
-                       {\anredefrau}
-                       {\anredeherr}
-                       <%cp_title%> <%cp_name%>,
-               }
-}
+\Ifstr{<%cp_name%>}{}
+{<%if natural_person%><%greeting%> <%name%>,<%else%>\anrede<%end if%>}
+  {
+    \Ifstr{<%cp_gender%>}{f}
+        {\anredefrau}
+        {\anredeherr}
+      <%cp_title%> <%cp_name%>,
+    }
+  }
 \thispagestyle{kivitendo.letter.first}
 
 \angebotsformel
 
 
 \begin{PricingTabular*}
-% eigentliche Tabelle
-\FakeTable{
-<%foreach number%>%
-<%runningnumber%> &%
-<%number%> &%
-\textbf{<%description%>}%
-       <%if longdescription%>\ExtraDescription{<%longdescription%>}<%end longdescription%>%
-       <%if reqdate%>\ExtraDescription{\lieferdatum: <%reqdate%>}<%end reqdate%>%
-       <%if serialnumber%>\ExtraDescription{\seriennummer: <%serialnumber%>}<%end serialnumber%>%
-       <%if ean%>\ExtraDescription{\ean: <%ean%>}<%end ean%>%
-       <%if projectnumber%>\ExtraDescription{\projektnummer: <%projectnumber%>}<%end projectnumber%>%
-       &%
-       <%qty%> <%unit%> &%
-       <%sellprice%>&%
-       \Ifstr{<%p_discount%>}{0}{}{\sffamily\scriptsize{(-<%p_discount%>\,\%)}}%
-                       <%linetotal%>\tabularnewline
-<%end number%>%
-}
-       \begin{PricingTotal}
-       % Tabellenende letzte Seite
-       \nettobetrag & <%subtotal%>\\
-       <%foreach tax%>%
-       <%taxdescription%> & <%tax%>\\
-       <%end tax%>%
-       \bfseries\schlussbetrag &  \bfseries <%ordtotal%>\\
-       \end{PricingTotal}
+  % eigentliche Tabelle
+  \FakeTable{
+  <%foreach number%>%
+  <%runningnumber%> &%
+  <%number%> &%
+  \textbf{<%description%>}%
+  <%if longdescription%>\ExtraDescription{<%longdescription%>}<%end longdescription%>%
+  <%if reqdate%>\ExtraDescription{\lieferdatum: <%reqdate%>}<%end reqdate%>%
+  <%if serialnumber%>\ExtraDescription{\seriennummer: <%serialnumber%>}<%end serialnumber%>%
+  <%if ean%>\ExtraDescription{\ean: <%ean%>}<%end ean%>%
+  <%if projectnumber%>\ExtraDescription{\projektnummer: <%projectnumber%>}<%end projectnumber%>%
+  &%
+  <%qty%> <%unit%> &%
+  <%sellprice%>&%
+  \Ifstr{<%p_discount%>}{0}{}{\sffamily\scriptsize{(-<%p_discount%>\,\%)}}%
+    <%linetotal%>\tabularnewline
+    <%end number%>%
+  }
+  \begin{PricingTotal}
+    % Tabellenende letzte Seite
+    \nettobetrag & <%subtotal%>\\
+    <%foreach tax%>%
+    <%taxdescription%> & <%tax%>\\
+    <%end tax%>%
+    \bfseries\schlussbetrag &  \bfseries <%ordtotal%>\\
+  \end{PricingTotal}
 \end{PricingTabular*}
 
 <%if notes%>%
-  <%notes%>%
-  \medskip
+<%notes%>%
+\medskip
 <%end if%>%
 
 <%if delivery_term%>%
-  \lieferung ~<%delivery_term.description_long%>\\
+\lieferung ~<%delivery_term.description_long%>\\
 <%end delivery_term%>%
 
 \angebotdanke\\
 \closing{\gruesse}
 
 \begin{minipage}{\textwidth}
-\rule{\linewidth}{.2pt}\par
-\auftragerteilt\par\bigskip
-\nurort:\rule[-.5ex]{8cm}{.2pt}\ ,\den\ \rule[-.5ex]{5cm}{.2pt}\par\bigskip
+  \rule{\linewidth}{.2pt}\par
+  \auftragerteilt\par\bigskip
+  \nurort:\rule[-.5ex]{8cm}{.2pt}\ ,\den\ \rule[-.5ex]{5cm}{.2pt}\par\bigskip
 
-\unterschrift/\stempel:\rule[-.5ex]{6cm}{.2pt}
+  \unterschrift/\stempel:\rule[-.5ex]{6cm}{.2pt}
 \end{minipage}
 
 
index bfde48e..7cd91a0 100644 (file)
@@ -17,8 +17,8 @@
 
 
 \setkomavar{title}{
-       \sammelrechnung~
-       \nr~<%quonumber%>%
+  \sammelrechnung~
+  \nr~<%quonumber%>%
 }
 \setkomavar{transaction}{<%transaction_description%>}
 \setkomavar{customer}{<%customernumber%>}
 \begin{document}
 
 \begin{letter}{
-               <%name%>\strut\\
-               <%if department_1%><%department_1%>\\<%end if%>%
-               <%if department_2%><%department_2%>\\<%end if%>%
-               <%cp_givenname%> <%cp_name%>\strut\\
-               <%street%>\strut\\
-               <%zipcode%> <%city%>\strut\\
-               <%country%> \strut
-       }
+<%name%>\strut\\
+<%if department_1%><%department_1%>\\<%end if%>%
+<%if department_2%><%department_2%>\\<%end if%>%
+<%cp_givenname%> <%cp_name%>\strut\\
+<%street%>\strut\\
+<%zipcode%> <%city%>\strut\\
+<%country%> \strut
+}
 
 % Bei Kontaktperson Anrede nach Geschlecht unterscheiden.
 % Bei natürlichen Personen persönliche Anrede, sonst allgemeine Anrede.
 \opening{
-       \Ifstr{<%cp_name%>}{}
-               {<%if natural_person%><%greeting%> <%name%>,<%else%>\anrede<%end if%>}
-               {
-                       \Ifstr{<%cp_gender%>}{f}
-                               {\anredefrau}
-                               {\anredeherr}
-                               <%cp_title%> <%cp_name%>,
-               }
-}
+\Ifstr{<%cp_name%>}{}
+{<%if natural_person%><%greeting%> <%name%>,<%else%>\anrede<%end if%>}
+  {
+    \Ifstr{<%cp_gender%>}{f}
+        {\anredefrau}
+        {\anredeherr}
+      <%cp_title%> <%cp_name%>,
+    }
+  }
 \thispagestyle{kivitendo.letter.first}
 
 \sammelrechnungsformel
 
 \begin{SimpleTabular}[
-       colspec=l*6X,
-       headline={\bfseries\rechnung~\nr & \bfseries\datum & \bfseries\faellig &
-       \bfseries\aktuell & \bfseries\asDreissig & \bfseries\asSechzig & \bfseries\asNeunzig}
-]
-% eigentliche Tabelle
-<%foreach invnumber%>%
-       <%invnumber%> & <%invdate%> & <%duedate%> &
-       <%c0%> & <%c30%> & <%c60%> & <%c90%> \\
-<%end invnumber%>%
-% Tabellenende letzte Seite
-\midrule[\heavyrulewidth]
-\multicolumn{3}{@{}l}{\bfseries\zwischensumme} & \bfseries<%c0total%> & \bfseries<%c30total%> & \bfseries<%c60total%> & \bfseries<%c90total%>\\*
-\midrule
-\multicolumn{3}{@{}l}{\bfseries\schlussbetrag} & &&&\bfseries<%total%> \\
+    colspec=l*6X,
+    headline={\bfseries\rechnung~\nr & \bfseries\datum & \bfseries\faellig &
+        \bfseries\aktuell & \bfseries\asDreissig & \bfseries\asSechzig & \bfseries\asNeunzig}
+  ]
+  % eigentliche Tabelle
+  <%foreach invnumber%>%
+  <%invnumber%> & <%invdate%> & <%duedate%> &
+  <%c0%> & <%c30%> & <%c60%> & <%c90%> \\
+  <%end invnumber%>%
+  % Tabellenende letzte Seite
+  \midrule[\heavyrulewidth]
+  \multicolumn{3}{@{}l}{\bfseries\zwischensumme} & \bfseries<%c0total%> & \bfseries<%c30total%> & \bfseries<%c60total%> & \bfseries<%c90total%>\\*
+  \midrule
+  \multicolumn{3}{@{}l}{\bfseries\schlussbetrag} & &&&\bfseries<%total%> \\
 \end{SimpleTabular}
 
 \closing{\gruesse}
index 09293ee..abb601f 100644 (file)
 \setkomavar{fromphone}{<%employee_tel%>}
 \setkomavar{fromemail}{<%employee_email%>}
 \setkomavar{title}{
-       \mahnung
-       <%if dunning_id%>~\nr~<%dunning_id%><%end if%>%
+  \mahnung
+  <%if dunning_id%>~\nr~<%dunning_id%><%end if%>%
 }
 \setkomavar{transaction}{<%transaction_description%>}
 
 \begin{document}
 
 \begin{letter}{
-               <%name%>\strut\\
-               <%if department_1%><%department_1%>\\<%end if%>%
-               <%if department_2%><%department_2%>\\<%end if%>%
-               <%cp_givenname%> <%cp_name%>\strut\\
-               <%street%>\strut\\
-               <%zipcode%> <%city%>\strut\\
-               <%country%> \strut
-       }
+<%name%>\strut\\
+<%if department_1%><%department_1%>\\<%end if%>%
+<%if department_2%><%department_2%>\\<%end if%>%
+<%cp_givenname%> <%cp_name%>\strut\\
+<%street%>\strut\\
+<%zipcode%> <%city%>\strut\\
+<%country%> \strut
+}
 
 % Bei Kontaktperson Anrede nach Geschlecht unterscheiden.
 % Bei natürlichen Personen persönliche Anrede, sonst allgemeine Anrede.
 \opening{
-       \Ifstr{<%cp_name%>}{}
-               {<%if natural_person%><%greeting%> <%name%>,<%else%>\anrede<%end if%>}
-               {
-                       \Ifstr{<%cp_gender%>}{f}
-                               {\anredefrau}
-                               {\anredeherr}
-                               <%cp_title%> <%cp_name%>,
-               }
-}
+\Ifstr{<%cp_name%>}{}
+{<%if natural_person%><%greeting%> <%name%>,<%else%>\anrede<%end if%>}
+  {
+    \Ifstr{<%cp_gender%>}{f}
+        {\anredefrau}
+        {\anredeherr}
+      <%cp_title%> <%cp_name%>,
+    }
+  }
 \thispagestyle{kivitendo.letter.first}
 
 \mahnungsformel
 
 \begin{SimpleTabular}[headline=\bfseries\rechnung~\nr&\bfseries\datum&\bfseries\betrag,colspec=rXr<{\tabcurrency}]
-% eigentliche Tabelle
-<%foreach dn_invnumber%>%
-    <%dn_invnumber%> & <%dn_transdate%> & <%dn_amount%> \\[0.1cm]
-<%end dn_invnumber%>%
+  % eigentliche Tabelle
+  <%foreach dn_invnumber%>%
+  <%dn_invnumber%> & <%dn_transdate%> & <%dn_amount%> \\[0.1cm]
+  <%end dn_invnumber%>%
 \end{SimpleTabular}
 
 
index da7de4b..9acdeab 100644 (file)
 \setkomavar{fromphone}{<%employee_tel%>}
 \setkomavar{fromemail}{<%employee_email%>}
 \setkomavar{title}{
-       \rechnung~
-       \nr ~<%invnumber%>%
+  \rechnung~
+  \nr ~<%invnumber%>%
 }
 \setkomavar*{myref}{\mahnung~\nr}
 \setkomavar{myref}{<%dunning_id%>}
 <%if globalprojectnumber%>%
-       \setkomavar{projectID}{<%globalprojectnumber%>}
+  \setkomavar{projectID}{<%globalprojectnumber%>}
 <%end globalprojectnumber%>%
 \setkomavar{transaction}{<%transaction_description%>}
 
 
 
 \begin{letter}{
-               <%name%>\strut\\
-               <%if department_1%><%department_1%>\\<%end if%>%
-               <%if department_2%><%department_2%>\\<%end if%>%
-               <%cp_givenname%> <%cp_name%>\strut\\
-               <%street%>\strut\\
-               <%zipcode%> <%city%>\strut\\
-               <%country%> \strut
-       }
+<%name%>\strut\\
+<%if department_1%><%department_1%>\\<%end if%>%
+<%if department_2%><%department_2%>\\<%end if%>%
+<%cp_givenname%> <%cp_name%>\strut\\
+<%street%>\strut\\
+<%zipcode%> <%city%>\strut\\
+<%country%> \strut
+}
 
 % Bei Kontaktperson Anrede nach Geschlecht unterscheiden.
 % Bei natürlichen Personen persönliche Anrede, sonst allgemeine Anrede.
 \opening{
-       \Ifstr{<%cp_name%>}{}
-               {<%if natural_person%><%greeting%> <%name%>,<%else%>\anrede<%end if%>}
-               {
-                       \Ifstr{<%cp_gender%>}{f}
-                               {\anredefrau}
-                               {\anredeherr}
-                               <%cp_title%> <%cp_name%>,
-               }
-}
+\Ifstr{<%cp_name%>}{}
+{<%if natural_person%><%greeting%> <%name%>,<%else%>\anrede<%end if%>}
+  {
+    \Ifstr{<%cp_gender%>}{f}
+        {\anredefrau}
+        {\anredeherr}
+      <%cp_title%> <%cp_name%>,
+    }
+  }
 \thispagestyle{kivitendo.letter.first}
 
 \mahnungsrechnungsformel
 
 \begin{SimpleTabular}[colspec=Xr<{\tabcurrency},headline={\bfseries\posten& \bfseries\betrag}]
-       Mahngebühren & <%fee%> \\
-       Zinsen & <%interest%> \\
-       \midrule[\heavyrulewidth]
-       \multicolumn{1}{@{}l}{\schlussbetrag}& <%invamount%>\\
+  Mahngebühren & <%fee%> \\
+  Zinsen & <%interest%> \\
+  \midrule[\heavyrulewidth]
+  \multicolumn{1}{@{}l}{\schlussbetrag}& <%invamount%>\\
 \end{SimpleTabular}
 
 \smallskip