expl3 space
[kivitendo-erp.git] / kiviletter.sty
index 62b73fb..108ce0b 100644 (file)
@@ -6,6 +6,8 @@
 \DeclareOption{infobox}{\@kivi@infoboxtrue}
 \@kivi@infoboxtrue
 
+\newif\if@kivi@faketable
+\DeclareOption{faketable}{\@kivi@faketabletrue}
 
 \ProcessOptions\relax
 
@@ -65,9 +67,9 @@ contents={\usebox\shippingAddressBox}
 \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_gset:Nn \g_kivi_tab_num_dim {5em}
 \dim_new:N \g_kivi_tab_price_dim
-\dim_gset:Nn \g_kivi_tab_price_dim {4em}
+\dim_gset:Nn \g_kivi_tab_price_dim {5em}
 \dim_new:N \g_kivi_tab_desc_dim
 
 \dim_new:N \g_kivi_tabcolsep_dim
@@ -76,16 +78,46 @@ contents={\usebox\shippingAddressBox}
        \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}}
+\newcolumntype{P}{>{\raggedleft\arraybackslash}p{\g_kivi_tab_price_dim}}
+
+%\if@kivi@faketable
+\RequirePackage{tcolorbox}
+\tcbuselibrary{breakable, skins}
+\seq_new:N \l_kivi_PricingTable_seq
+\seq_new:N \g_kivi_extraDescription_seq
+\newcommand{\FakeTable}[1]{
+%      \tl_set:No \l_tmpa_tl {\BODY}
+       \endPricingTabular
+       \seq_set_split:Nnn \l_kivi_PricingTable_seq {\tabularnewline} {#1}
+       \begingroup
+       \setlength{\tabcolsep}{\g_kivi_tabcolsep_dim}
+       \seq_map_inline:Nn \l_kivi_PricingTable_seq {
+       \seq_gclear:N \g_kivi_extraDescription_seq
+       \tabular{@{}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}}@{}}
+       ##1
+       \endtabular
+       \seq_if_empty:NTF \g_kivi_extraDescription_seq
+       {\par\nointerlineskip}
+       {\par\nointerlineskip
+               \begin{tcolorbox}[left~skip=\dim_eval:n {\g_kivi_tab_pos_dim+ \g_kivi_tab_id_dim +4\tabcolsep},right~skip=\dim_eval:n {\g_kivi_tab_num_dim+ 2\g_kivi_tab_price_dim +6\tabcolsep}, breakable, blank]
+               \seq_use:N \g_kivi_extraDescription_seq {\newline}
+               \end{tcolorbox}
+       }
+       }
+       \endgroup
+       \PricingTabular
+}
 
-\newenvironment{PricingTabular}{
+\newcommand{\ExtraDescription}[1]{\seq_gput_right:Nn \g_kivi_extraDescription_seq {#1}}
+%\else
+\newenvironment{PricingTabular}[1][]{
        \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}\\
+       \bfseries\position & \bfseries\artikelnummer & \bfseries\bezeichnung & \bfseries\menge &\multicolumn{1}{P}{\bfseries\einzelpreis}&\multicolumn{1}{P@{}}{\bfseries\gesamtpreis}\\
        \midrule
        \endhead
        \midrule
@@ -95,6 +127,7 @@ contents={\usebox\shippingAddressBox}
        \endlongtable
        \endgroup
 }
+%\fi
 
 \ExplSyntaxOff