\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{booktabs}
\RequirePackage{graphicx}
-\PassOptionsToPackage{fromlogo,fromalign=right,
- firstfoot=false,%Für einheitliche Randeinstellungen
- refline=nodate,
-}{scrletter}
\RequirePackage{scrletter}
\LoadLetterOption{DIN}
+\newkomavar{taxpoint}
\newkomavar{transaction}
\newkomavar[\lieferschein{}~\nr]{delivery}
\newkomavar[\angebot{}~\nr]{quote}
amount=5em,
price=7em,
pricetotal=7em,
- % desc=auto,
+ % desc=auto,
pos/header=\position,
id/header=\artikelnummer,
desc/header=\bezeichnung,
\let\ExtraDescription\__kivi_addExtraDescription:n
\setlength{\tabcolsep}{\g_kivi_tabcolsep_dim}
\seq_map_inline:Nn \l_kivi_PricingTable_seq {
+ \if_mode_horizontal: \par \fi
\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}
}}
}
\endgroup\par
+ \l__kivi_Tabular_rowsep_tl
}
\NewDocumentEnvironment{PricingTotal}{+b}{
\par\nointerlineskip
}{
- \bool_if:NT \g__kivi_Tabular_rowcolor_bool {\nointerlineskip\kivi@tabcolorbox{\g__kivi_Tabular_rowcolor_PricingTotal_tl}}
+ \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}}
\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 {
+ \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
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 =\g__kivi_Tabular_rowsep_tl,
- hrule .meta:n = {rowsep=\midrule}
+ 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}}
\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 {
+ \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 {@{}}
}
\locationentry{quote}
\locationentry{orderID}
\locationentry{projectID}
+ \locationentry{taxpoint}
\locationentry[\ansprechpartner]{fromname}
\locationentry{fromphone}
\locationentry*{fromemail}
\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}
+ \tl_gset:Nn \g_kivi_currency_tl {euro} % euro ist standard, chf oder usd alternativ
}
\input{#1/\g_kivi_currency_tl _account.tex}
}
\renewcommand*{\raggedsignature}{\raggedright}
\newkomafont{extraDescription}{}
+\newkomafont{subtotal}{}
+\newkomafont{total}{}
\endinput