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