-
# 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
- 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
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.
```
\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.
\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}
\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}
<%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}
\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%>%
\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:}
\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:}
\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}\\
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]{}\\
\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.
\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}
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)}\\
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]{}\\
\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
%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
\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}
\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}{}
\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}
\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}}
\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}
\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}}
\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
% 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
%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
\renewcommand*{\raggedsignature}{\raggedright}
\newkomafont{extraDescription}{}
+\newkomafont{subtotal}{}
+\newkomafont{total}{}
\endinput
\usepackage{iftex}
%Compilerunabhängigkeit
\ifPDFTeX
- \usepackage[utf8]{inputenc}
- \usepackage[T1]{fontenc}
+ \usepackage[utf8]{inputenc}
+ \usepackage[T1]{fontenc}
\fi
\usepackage{latexsym}
\usepackage{longtable}
\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
$( 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) )$}
\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}
\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%>%
\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}
\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}
\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}
<%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}
\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*}
<%if delivery_term%>%
- \lieferung ~<%delivery_term.description_long%>\\
+\lieferung ~<%delivery_term.description_long%>\\
<%end delivery_term%>%
<%if reqdate%>%
\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}
%$( 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 )$
\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 )$
% $( 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) )$
%$( 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 )$
\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
<%end if%>%
<%if delivery_term%>%
- \lieferung ~<%delivery_term.description_long%>\\
+\lieferung ~<%delivery_term.description_long%>\\
<%end delivery_term%>%
\end{letter}
\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%>%
\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}
\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}
\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}
\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