From 20a30dd1c7c4d568f4a7f27df6d8619c09690079 Mon Sep 17 00:00:00 2001 From: Marei Peischl Date: Thu, 21 Nov 2019 12:05:15 +0100 Subject: [PATCH] table -> Pricing table --- kiviletter.sty | 40 +++++++++++++++++++++++ sales_quotation.tex | 78 +++++++++++++-------------------------------- 2 files changed, 63 insertions(+), 55 deletions(-) diff --git a/kiviletter.sty b/kiviletter.sty index 2525d996e..dfa224cc4 100644 --- a/kiviletter.sty +++ b/kiviletter.sty @@ -44,6 +44,46 @@ contents={\usebox\shippingAddressBox} \setkomavar{backaddress}{\firma\ $\cdot$ \strasse\ $\cdot$ \ort} \@setplength{locwidth}{6cm} + +\ExplSyntaxOn +\dim_new:N \g_kivi_tab_pos_dim +\dim_gset:Nn \g_kivi_tab_pos_dim {3.5ex} +\dim_new:N \g_kivi_tab_id_dim +\dim_gset:Nn \g_kivi_tab_id_dim {4em} +\dim_new:N \g_kivi_tab_num_dim +\dim_gset:Nn \g_kivi_tab_num_dim {4em} +\dim_new:N \g_kivi_tab_price_dim +\dim_gset:Nn \g_kivi_tab_price_dim {4em} +\dim_new:N \g_kivi_tab_desc_dim + +\dim_new:N \g_kivi_tabcolsep_dim +\dim_gset:Nn \g_kivi_tabcolsep_dim {.5\tabcolsep} +\newcommand*{\CalcTabCols}{ + \dim_gset:Nn \g_kivi_tab_desc_dim {\textwidth-\g_kivi_tab_pos_dim -\g_kivi_tab_id_dim-\g_kivi_tab_num_dim - 2\g_kivi_tab_price_dim - 10\g_kivi_tabcolsep_dim} +} + +\newcolumntype{P}{>{\arraybackslash}p{\g_kivi_tab_price_dim}} + +\newenvironment{PricingTabular}{ + \begingroup + \setlength{\tabcolsep}{\g_kivi_tabcolsep_dim} + \CalcTabCols + \longtable{@{}p{\g_kivi_tab_pos_dim}p{\g_kivi_tab_id_dim}p{\g_kivi_tab_desc_dim}>{\raggedleft\arraybackslash}p{\g_kivi_tab_num_dim}*2{P<{\,\currency}}@{}} + % Tabellenkopf + \toprule + \bfseries\position & \bfseries\artikelnummer & \bfseries\bezeichnung & \bfseries\menge &\multicolumn{1}{P}{\bfseries\einzelpreis}&\multicolumn{1}{P}{\bfseries\gesamtpreis}\\ + \midrule + \endhead + \midrule + \multicolumn{6}{@{}r@{}}{\weiteraufnaechsterseite}\\ + \endfoot +}{ + \endlongtable + \endgroup +} + +\ExplSyntaxOff + \renewcommand*{\raggedsignature}{\raggedright} \endinput diff --git a/sales_quotation.tex b/sales_quotation.tex index 55b08e072..b4632436f 100644 --- a/sales_quotation.tex +++ b/sales_quotation.tex @@ -112,65 +112,33 @@ \angebotsformel\\ -\vspace{0.5cm} - - -% -% - longtable kann innerhalb der Tabelle umbrechen -% - da der Umbruch nicht von Lx-Office kontrolliert wird, kann man keinen -% Übertrag machen -% - Innerhalb des Langtextes <%longdescription%> wird nicht umgebrochen. -% Falls das gewünscht ist, \\ mit \renewcommand umschreiben (siehe dazu: -% http://www.lx-office.org/uploads/media/Lx-Office_Anwendertreffen_LaTeX-Druckvorlagen-31.01.2011_01.pdf) -% -\setlength\LTleft\parindent % Tabelle beginnt am linken Textrand -\setlength\LTright{0pt} % Tabelle endet am rechten Textrand -\begin{longtable}{@{}rrp{7cm}@{\extracolsep{\fill}}rrr@{}} -% Tabellenkopf -\hline -\textbf{\position} & \textbf{\artikelnummer} & \textbf{\bezeichnung} & \textbf{\menge} & \textbf{\einzelpreis} & \textbf{\gesamtpreis} \\ -\hline\\ -\endhead - -% Tabellenkopf erste Seite -\hline -\textbf{\position} & \textbf{\artikelnummer} & \textbf{\bezeichnung} & \textbf{\menge} & \textbf{\einzelpreis} & \textbf{\gesamtpreis} \\ -\hline\\[-0.5em] -\endfirsthead - -% Tabellenende -\\ -\multicolumn{6}{@{}r@{}}{\weiteraufnaechsterseite} -\endfoot - -% Tabellenende letzte Seite -\hline\\ -\multicolumn{5}{@{}l}{\nettobetrag} & <%subtotal%> \currency\\ -<%foreach tax%> -\multicolumn{5}{@{}l}{<%taxdescription%>} & <%tax%> \currency\\ -<%end tax%> -\multicolumn{5}{@{}l}{\textbf{\schlussbetrag}} & \textbf{<%ordtotal%>} \currency\\ -\hline\hline\\ -\endlastfoot +\begin{PricingTabular} + % Tabellenende letzte Seite + \midrule + \multicolumn{5}{@{}l}{\nettobetrag} & <%subtotal%>\\ + <%foreach tax%> + \multicolumn{5}{@{}l}{<%taxdescription%>} & <%tax%>\\ + <%end tax%> + \multicolumn{5}{@{}l}{\bfseries\schlussbetrag} & \textbf{<%ordtotal%>}\\ + \bottomrule + \endlastfoot % eigentliche Tabelle <%foreach number%> - <%runningnumber%> & - <%number%> & - \textbf{<%description%>} & - \raggedleft <%qty%> <%unit%> & - <%sellprice%> \currency & - \ifthenelse{\equal{<%p_discount%>}{0}}{}{\sffamily\scriptsize{(-<%p_discount%> \%)}} - \ourfont{<%linetotal%> \currency} \\* % kein Umbruch nach der ersten Zeile, damit Beschreibung und Langtext nicht getrennt werden - - <%if longdescription%> && \scriptsize <%longdescription%>\\<%end longdescription%> - <%if serialnumber%> && \scriptsize \seriennummer: <%serialnumber%>\\<%end serialnumber%> - <%if ean%> && \scriptsize \ean: <%ean%>\\<%end ean%> - <%if projectnumber%> && \scriptsize \projektnummer: <%projectnumber%>\\<%end projectnumber%> - \\[-0.8em] +<%runningnumber%> & +<%number%> & +\textbf{<%description%>} + <%if longdescription%> \newline\scriptsize <%longdescription%><%end longdescription%> + <%if serialnumber%> \newline\scriptsize \seriennummer: <%serialnumber%><%end serialnumber%> + <%if ean%> \newline\scriptsize \ean: <%ean%><%end ean%> + <%if projectnumber%>\newline\scriptsize \projektnummer: <%projectnumber%><%end projectnumber%> + & + <%qty%> <%unit%> & + <%sellprice%>& + \ifstr{<%p_discount%>}{0}{}{\sffamily\scriptsize{(-<%p_discount%>\,\%)}} + <%linetotal%>\\ <%end number%> - -\end{longtable} +\end{PricingTabular} <%if notes%> <%notes%> -- 2.20.1