From dcbcb7bb339bafacc133ac761ff2aab78d573b46 Mon Sep 17 00:00:00 2001 From: Tom Kazimiers Date: Tue, 21 Nov 2023 16:32:36 +0100 Subject: [PATCH] =?UTF-8?q?Neues=20Makro=20\Storno=20f=C3=BCr=20Stornorech?= =?UTF-8?q?nungen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sollte mittels \Storno die Rechnung als Stornorechnung deklariert werden, sind alle Einträge in der "Anzahl"-Spalte negativ und somit auch der Gesamtpreis. --- rechnung.dtx | 56 +++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 53 insertions(+), 3 deletions(-) diff --git a/rechnung.dtx b/rechnung.dtx index 4f16bd1..19d306b 100644 --- a/rechnung.dtx +++ b/rechnung.dtx @@ -327,6 +327,11 @@ % nur das letzte vor dem ersten Artikel beachtet. Sobald ein Artikel angegeben % wurde, kann die Einstellung nicht mehr verändert werden. % +% \DescribeMacro{\Storno} +% Mit diesem Macro kann eine Stornorechnung erstellt werden. Alle Einträge der +% Anzahl-Spalte werden Negativ dargestellt, sodass auch die Zwischensummen und +% Gesamtsummen negativ werden. +% % \section{Beispiele} % % \subsection{Bestellung ohne Artikelnummern} @@ -455,6 +460,30 @@ % \end{Rechnung} % } % +% \subsection{Stornorechnung} +% +% Stornorechnungen haben negative Einträge in der Anzahl-Spalte. +% +% \begin{verbatim} +% \Euro +% \Storno +% \begin{Rechnung}[B] +% \Artikel[e]{1}{Donald E. Knuth: The \TeX-Book}{42,73} +% \Artikel{20}{Erdnüsse}{0,49} +% \Versandkosten{5,80} +% \end{Rechnung} +% \end{verbatim} +% +% \vbox{ +% \Euro +% \Storno +% \begin{Rechnung}[B] +% \Artikel[e]{1}{Donald E. Knuth: The \TeX-Book}{42,73} +% \Artikel{20}{Erdnüsse}{0,49} +% \Versandkosten{5,80} +% \end{Rechnung} +% } +% % \cleardoublepage % % @@ -584,6 +613,13 @@ % \end{macrocode} % \end{macro} % +% \begin{macro}{\@RCHstorno} +% Ein Schalter der die Rechnung als Stornorechnung kennzeichnen kann +% \begin{macrocode} +\newif\if@RCHstorno +% \end{macrocode} +% \end{macro} +% % \begin{macro}{\@ArtikelPrefix} % aktueller Artikelprefix. Voreingestellt ist dieser leer. % \begin{macrocode} @@ -660,6 +696,13 @@ % \end{macrocode} % \end{macro} % +% \begin{macro}{\Storno} +% Schaltet Stornorechnungsmodus ein. +% \begin{macrocode} +\newcommand*\Storno{\if@RCHinit\else\global\@RCHstornotrue\fi} +% \end{macrocode} +% \end{macro} +% % \begin{macro}{\ArtikelPrefix} % Setzt einen belibigen Prefix für das Setzen der Artikelbeschreibung. Damit % kann beispielsweise die Schriftgröße angepasst werden. @@ -1212,9 +1255,16 @@ \advance\@RCHcnt1% \@readNum{#5} \@RCHtmptmp=\@RCHtmp% - \@readNum{#2}\multiply\@RCHtmp\@RCHtmptmp - \advance\@RCHtmp99\divide\@RCHtmp100%Aufrunden auf 2 Nachkommastellen. - \@lineBaseX[#1]{\the\@RCHcnt}{#2\@AnzahlSuffix}{#3}{#4}{\writeCurrency\@RCHtmptmp} + \@readNum{#2} + \if@RCHstorno + \multiply\@RCHtmp-1 + \multiply\@RCHtmp\@RCHtmptmp + \advance\@RCHtmp-99\divide\@RCHtmp100%Aufrunden auf 2 Nachkommastellen. + \else + \multiply\@RCHtmp\@RCHtmptmp + \advance\@RCHtmp99\divide\@RCHtmp100%Aufrunden auf 2 Nachkommastellen. + \fi + \@lineBaseX[#1]{\the\@RCHcnt}{\if@RCHstorno--\fi#2\@AnzahlSuffix}{#3}{#4}{\writeCurrency\@RCHtmptmp} } % \end{macrocode} % \end{macro}%