645014024187c5047cbf9da056a68042aa0ca1ea
[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
31 \geometry{left=\useplength{toaddrhpos}, right=\useplength{toaddrhpos}}
32
33 \ExplSyntaxOn
34 %Scratch variables
35 \int_new:N \l_kivi_tmp_int
36 \bool_new:N \l_kivi_tmp_bool
37 \ExplSyntaxOff
38
39 \newsavebox{\shippingAddressBox}
40
41
42 \DeclareNewLayer[
43 foreground,
44 hoffset=\useplength{toaddrhpos},
45 voffset=\dimexpr\useplength{toaddrvpos}+\useplength{toaddrheight}+\baselineskip,
46 contents={\usebox\shippingAddressBox}
47 ]{kivitendo.shippingaddress}
48 \DeclareNewPageStyleByLayers{kivitendo.letter.first}{kivitendo.shippingaddress}
49
50 \setkomavar{backaddress}{\firma\ $\cdot$ \strasse\ $\cdot$ \ort}
51 \@setplength{locwidth}{6cm}
52
53 \ExplSyntaxOn
54 \dim_new:N \g_kivi_tab_pos_dim
55 \dim_gset:Nn \g_kivi_tab_pos_dim {3.5ex}
56 \dim_new:N \g_kivi_tab_id_dim
57 \dim_gset:Nn \g_kivi_tab_id_dim {4em}
58 \dim_new:N \g_kivi_tab_num_dim
59 \dim_gset:Nn \g_kivi_tab_num_dim {4em}
60 \dim_new:N \g_kivi_tab_price_dim
61 \dim_gset:Nn \g_kivi_tab_price_dim {4em}
62 \dim_new:N \g_kivi_tab_desc_dim
63
64 \dim_new:N \g_kivi_tabcolsep_dim
65 \dim_gset:Nn \g_kivi_tabcolsep_dim {.5\tabcolsep}
66 \newcommand*{\CalcTabCols}{
67         \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}
68 }
69
70 \newcolumntype{P}{>{\arraybackslash}p{\g_kivi_tab_price_dim}}
71
72 \newenvironment{PricingTabular}{
73         \begingroup
74         \setlength{\tabcolsep}{\g_kivi_tabcolsep_dim}
75         \CalcTabCols
76         \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}}@{}}
77         % Tabellenkopf
78         \toprule
79         \bfseries\position & \bfseries\artikelnummer & \bfseries\bezeichnung & \bfseries\menge &\multicolumn{1}{P}{\bfseries\einzelpreis}&\multicolumn{1}{P}{\bfseries\gesamtpreis}\\
80         \midrule
81         \endhead
82         \midrule
83         \multicolumn{6}{@{}r@{}}{\weiteraufnaechsterseite}\\
84         \endfoot
85 }{
86         \endlongtable
87         \endgroup
88 }
89
90 \ExplSyntaxOff
91
92
93 \setkomavar{location}{
94         \begin{flushright}
95                 \bfseries
96                 \LARGE
97                 \usekomavar{title}
98 %               \angebot
99 %               \par
100 %               \medskip
101 %               \large\nr ~<%quonumber%>
102         \end{flushright}
103
104         \medskip
105         \begin{tabularx}{\linewidth}{@{}l<{:}>{\raggedright\arraybackslash}X@{}}
106                 \datum&\usekomavar{date}\\%%<%transdate%>\\
107                 \kundennummer&\usekomavar{customer}\\%<%customernumber%>\\
108                 \ansprechpartner&\usekomavar{fromname}\\%<%employee_name%>\\
109                 \textTelefon&\usekomavar{fromphone}\\%<%employee_tel%>\\
110                 \textEmail&\usekomavar{fromemail}\\%<%employee_email%>
111         \end{tabularx}
112 }
113
114
115 \renewcommand*{\raggedsignature}{\raggedright}
116
117 \endinput