33718474f759a0e529bfcfae406e2901333c6b9d
[kivitendo-erp.git] / kiviletter.sty
1 \NeedsTeXFormat{LaTeX2e}
2 \ProvidesPackage{kiviletter}[2019/10/10 Letter Layouts for Kivitendo]
3
4 \RequirePackage{expl3}
5 \RequirePackage{iftex}
6 % Schriftart, Eingabelayout der Tastatur
7 \ifPDFTeX
8 \RequirePackage[utf8]{inputenc}% Nur notwendig, wenn Basis älter als TL2018
9 \RequirePackage[T1]{fontenc}
10 \else
11 \RequirePackage{fontspec}
12 \fi
13
14 \RequirePackage{xltabular}
15 \RequirePackage{booktabs}
16 \PassOptionsToPackage{table}{xcolor}
17
18 \RequirePackage{xcolor}
19 \RequirePackage{graphicx}
20
21 \ifPDFTeX
22 \RequirePackage{eurosym}
23 \DeclareUnicodeCharacter{20AC}{\euro}
24 \fi
25
26 \RequirePackage[fromlogo,fromalign=right]{scrletter}
27 \LoadLetterOption{DIN}
28
29 \usepackage{geometry}
30 \geometry{left=\useplength{firstheadhpos}, right=\useplength{firstheadhpos}}
31
32 \ExplSyntaxOn
33 %Scratch variables
34 \int_new:N \l_kivi_tmp_int
35 \bool_new:N \l_kivi_tmp_bool
36 \ExplSyntaxOff
37
38 \newsavebox{\shippingAddressBox}
39
40
41 \DeclareNewLayer[
42 foreground,
43 hoffset=\useplength{toaddrhpos},
44 voffset=\dimexpr\useplength{toaddrvpos}+\useplength{toaddrheight}+\baselineskip,
45 contents={\usebox\shippingAddressBox}
46 ]{kivitendo.shippingaddress}
47 \DeclareNewPageStyleByLayers{kivitendo.letter.first}{kivitendo.shippingaddress}
48
49 \setkomavar{backaddress}{\firma\ $\cdot$ \strasse\ $\cdot$ \ort}
50 \@setplength{locwidth}{6cm}
51
52 \ExplSyntaxOn
53 \dim_new:N \g_kivi_tab_pos_dim
54 \dim_gset:Nn \g_kivi_tab_pos_dim {3.5ex}
55 \dim_new:N \g_kivi_tab_id_dim
56 \dim_gset:Nn \g_kivi_tab_id_dim {4em}
57 \dim_new:N \g_kivi_tab_num_dim
58 \dim_gset:Nn \g_kivi_tab_num_dim {4em}
59 \dim_new:N \g_kivi_tab_price_dim
60 \dim_gset:Nn \g_kivi_tab_price_dim {4em}
61 \dim_new:N \g_kivi_tab_desc_dim
62
63 \dim_new:N \g_kivi_tabcolsep_dim
64 \dim_gset:Nn \g_kivi_tabcolsep_dim {.5\tabcolsep}
65 \newcommand*{\CalcTabCols}{
66         \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}
67 }
68
69 \newcolumntype{P}{>{\arraybackslash}p{\g_kivi_tab_price_dim}}
70
71 \newenvironment{PricingTabular}{
72         \begingroup
73         \setlength{\tabcolsep}{\g_kivi_tabcolsep_dim}
74         \CalcTabCols
75         \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}}@{}}
76         % Tabellenkopf
77         \toprule
78         \bfseries\position & \bfseries\artikelnummer & \bfseries\bezeichnung & \bfseries\menge &\multicolumn{1}{P}{\bfseries\einzelpreis}&\multicolumn{1}{P}{\bfseries\gesamtpreis}\\
79         \midrule
80         \endhead
81         \midrule
82         \multicolumn{6}{@{}r@{}}{\weiteraufnaechsterseite}\\
83         \endfoot
84 }{
85         \endlongtable
86         \endgroup
87 }
88
89 \ExplSyntaxOff
90
91
92 \setkomavar{location}{
93         \begin{flushright}
94                 \bfseries
95                 \LARGE
96                 \usekomavar{title}
97 %               \angebot
98 %               \par
99 %               \medskip
100 %               \large\nr ~<%quonumber%>
101         \end{flushright}
102
103         \medskip
104         \begin{tabularx}{\linewidth}{@{}l<{:}>{\raggedright\arraybackslash}X@{}}
105                 \datum&\usekomavar{date}\\%%<%transdate%>\\
106                 \kundennummer&\usekomavar{customer}\\%<%customernumber%>\\
107                 \ansprechpartner&\usekomavar{fromname}\\%<%employee_name%>\\
108                 \textTelefon&\usekomavar{fromphone}\\%<%employee_tel%>\\
109                 \textEmail&\usekomavar{fromemail}\\%<%employee_email%>
110         \end{tabularx}
111 }
112
113
114 \renewcommand*{\raggedsignature}{\raggedright}
115
116 \endinput