diff options
Diffstat (limited to 'Master/texmf-dist/tex/latex/bankstatement/bankstatement.cls')
-rw-r--r-- | Master/texmf-dist/tex/latex/bankstatement/bankstatement.cls | 122 |
1 files changed, 122 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/bankstatement/bankstatement.cls b/Master/texmf-dist/tex/latex/bankstatement/bankstatement.cls new file mode 100644 index 00000000000..7eba22e1852 --- /dev/null +++ b/Master/texmf-dist/tex/latex/bankstatement/bankstatement.cls @@ -0,0 +1,122 @@ +\NeedsTeXFormat{LaTeX2e}% +\ProvidesClass{bankstatement}[2015/01/07 class for csv based bank statements v0.9.1]% +% +\RequirePackage{xkeyval}% +% needed to allow xxx={yyy} in class options +\RequirePackage{xkvltxp}% +% +\newcommand*\STM@JK@define@key[4]% +{% + \expandafter\gdef\csname#1@#3\endcsname{#4}% + \define@key{#2.cls}{#3}[#4]% + {% + \expandafter\gdef\csname#1@#3\endcsname{##1}% + }% + \define@key{#2}{#3}% + {% + \expandafter\def\csname#1@#3\endcsname{##1}% + }% +}% +% +\STM@JK@define@key{STM@JK}{bankstatement}{format}{csv-mt940}% +\STM@JK@define@key{STM@JK}{bankstatement}{language}{english}% +\STM@JK@define@key{STM@JK}{bankstatement}{title}{}% +\STM@JK@define@key{STM@JK}{bankstatement}{logo}{}% +\STM@JK@define@key{STM@JK}{bankstatement}{logowidth}{4cm}% +\STM@JK@define@key{STM@JK}{bankstatement}{holder}{}% +\STM@JK@define@key{STM@JK}{bankstatement}{bic}{}% +\STM@JK@define@key{STM@JK}{bankstatement}{iban}{}% +\STM@JK@define@key{STM@JK}{bankstatement}{referencewidth}{11cm}% +\STM@JK@define@key{STM@JK}{bankstatement}{negativecolor}{red}% +\STM@JK@define@key{STM@JK}{bankstatement}{sort}{PostingDate}% +\STM@JK@define@key{STM@JK}{bankstatement}{openingbalance}{none}% +\STM@JK@define@key{STM@JK}{bankstatement}{closingbalance}{none}% +\STM@JK@define@key{STM@JK}{bankstatement}{left}{2cm}% +\STM@JK@define@key{STM@JK}{bankstatement}{right}{2cm}% +\STM@JK@define@key{STM@JK}{bankstatement}{top}{2cm}% +\STM@JK@define@key{STM@JK}{bankstatement}{bottom}{2cm}% +% +\DeclareOptionX*{\PassOptionsToClass{\CurrentOption}{article}}% +\ExecuteOptionsX{format,language,title,logo,logowidth,holder,bic,iban,referencewidth,negativecolor,sort,openingbalance,closingbalance,left,right,top,bottom}% +\ProcessOptionsX*\relax% +\LoadClass{article}% +% +\RequirePackage[left=\STM@JK@left,right=\STM@JK@right,top=\STM@JK@top,bottom=\STM@JK@bottom]{geometry}% +\RequirePackage{longtable}% +\RequirePackage{tabularx}% +\RequirePackage{xcolor}% +\RequirePackage{graphicx}% +\RequirePackage{booktabs}% +\RequirePackage{datatool}% +\RequirePackage{calc}% +\RequirePackage{ifthen}% +% +\newcommand*\STM@JK@dbkeys{}% +\newcommand*\STM@JK@DTLforeach{}% +\newcommand*\STM@JK@holdername{}% +\newcommand*\STM@JK@bicname{}% +\newcommand*\STM@JK@ibanname{}% +\newcommand*\STM@JK@firstcolumnheading{}% +\newcommand*\STM@JK@secondcolumnheading{}% +\newcommand*\STM@JK@thirdcolumnheading{}% +\newcommand*\STM@JK@openingbalancenamename{}% +\newcommand*\STM@JK@closingbalancenamename{}% +% +\newcommand*\STM@JK@headingsep{0.5cm}% +\newcommand*\STM@JK@noheader{false}% +% +\newlength\STM@JK@parspace% +\AtBeginDocument{\setlength\STM@JK@parspace{\widthof{(}}}% +\newcounter{STM@JK@count}% +% +\input{\STM@JK@format.def}% +\input{stm\STM@JK@language.def}% +% +\newcommand*\STM@JK@includelogo% +{% + \ifthenelse{\equal{\STM@JK@logo}{}}% + {}% + {\hfill\includegraphics[width=\STM@JK@logowidth]{\STM@JK@logo}}% +}% +% +\newcommand*\STM@JK@header% +{% + \noindent% + \begin{tabularx}{\textwidth}{XXr}% + \multicolumn{3}{l}{\Huge{}\hspace{.22em}\STM@JK@title\STM@JK@includelogo}\\% + & &\\% + \begin{tabular}{l}\textbf{\STM@JK@holdername}\\\STM@JK@holder\end{tabular} &% + \begin{tabular}{l}\textbf{\STM@JK@bicname}\\\STM@JK@bic\end{tabular} &% + \begin{tabular}{l}\textbf{\STM@JK@ibanname}\\\STM@JK@iban\end{tabular}\\% + \end{tabularx}% + \vspace{\STM@JK@headingsep}% +}% +% +\newcommand\bankstatement[2][]% +{% + \begingroup% + \setkeys{bankstatement}{#1}% + \stepcounter{STM@JK@count}% + \xdef\STM@JK@dbname{stm\arabic{STM@JK@count}}% + \ifthenelse{\equal{\STM@JK@noheader}{false}}% + {\DTLloaddb[keys={\STM@JK@dbkeys},noheader=false]{\STM@JK@dbname}{#2}}% + {\DTLloaddb[keys={\STM@JK@dbkeys},noheader=true]{\STM@JK@dbname}{#2}}% + \DTLsort{\STM@JK@sort}{\STM@JK@dbname}% + \STM@JK@header% + \begin{longtable}{llr}% + \toprule% + \STM@JK@firstcolumnheading &% + \STM@JK@secondcolumnheading &% + \STM@JK@thirdcolumnheading% + \\\toprule% + \endhead% + \ifthenelse{\equal{\STM@JK@openingbalance}{none}}% + {}% + { & & \\ & \STM@JK@openingbalancenamename & \DTLifStartsWith{\STM@JK@openingbalance}{-}{\textcolor{\STM@JK@negativecolor}{\STM@JK@openingbalance}}{\STM@JK@openingbalance} \\\midrule}% + \STM@JK@DTLforeach% + \end{longtable}% + \endgroup% +}% +% +\AtBeginDocument{\disable@keys{bankstatement}{format,language,left,right,top,bottom}}% +%
\ No newline at end of file |