|
|
|
@ -1,37 +1,13 @@
|
|
|
|
|
%todo:
|
|
|
|
|
% + abgleich mit anderen briefen
|
|
|
|
|
% * datenspuren/Teilnahme.tex
|
|
|
|
|
% * serienbrief
|
|
|
|
|
% + umgebungsvariable(n) für (zwecks Automatisierung aus einer Buchhaltung)
|
|
|
|
|
% * PoC: https://gitlab.com/8fragezeichen/8fragezeichen/blob/master/doc/praeamble.tex u. https://gitlab.com/8fragezeichen/8fragezeichen/blob/master/doc/MAN/convert.sh
|
|
|
|
|
% * Kunde, Anschrift etc.
|
|
|
|
|
% * Rechnungsnummer
|
|
|
|
|
% * Zahlungsbedingungen
|
|
|
|
|
% * Textpart
|
|
|
|
|
% + Footer
|
|
|
|
|
% * wie bei üblichen Firmen mit Bankverbindung, Homepage und Kontaktdaten
|
|
|
|
|
% + Logo
|
|
|
|
|
% * s.a. datenspuren/Teilnahme.tex
|
|
|
|
|
% + ZUGFeRD
|
|
|
|
|
% * https://de.wikipedia.org/wiki/ZUGFeRD
|
|
|
|
|
\documentclass[
|
|
|
|
|
10pt,
|
|
|
|
|
a4paper,
|
|
|
|
|
addrfield=on,
|
|
|
|
|
fromalign=right,
|
|
|
|
|
fromphone=off,
|
|
|
|
|
fromemail=on]{scrlttr2}
|
|
|
|
|
\documentclass{scrlttr2}
|
|
|
|
|
\usepackage[T1]{fontenc}
|
|
|
|
|
\usepackage[utf8]{inputenc}
|
|
|
|
|
\usepackage[ngerman]{babel}
|
|
|
|
|
\usepackage{csquotes}
|
|
|
|
|
\usepackage[right]{eurosym}
|
|
|
|
|
\usepackage{tabularx}
|
|
|
|
|
\usepackage{tabularx,booktabs}
|
|
|
|
|
\usepackage{spreadtab}
|
|
|
|
|
\usepackage{filecontents}
|
|
|
|
|
\STautoround*{2}
|
|
|
|
|
\usepackage{pgfplotstable}
|
|
|
|
|
%\usepackage{calc} %ermöglicht rechnen mit real, ausgabe bleibt aber ganzzahlig
|
|
|
|
|
%\usepackage{tabularcalc} %Tebellenkalkulation mit LaTeX, s. http://www.namsu.de/Extra/pakete/Tabularcalc.html
|
|
|
|
|
\usepackage{csvsimple}
|
|
|
|
|
|
|
|
|
|
%\begin{filecontents*}{test.csv}
|
|
|
|
|
%name,steuersatz,anzahl,betrag,artikelnr,konfektionierung,beschreibung
|
|
|
|
@ -40,91 +16,105 @@
|
|
|
|
|
%Vortrag,0,100,13.37,0001,schön laut,,
|
|
|
|
|
%\end{filecontents*}
|
|
|
|
|
|
|
|
|
|
%variablen einlesen
|
|
|
|
|
\input{netzbiotop-definition.tex}
|
|
|
|
|
\newcommand{\ReNr}{XXXXXX}
|
|
|
|
|
\newcommand{\Tax}{19}
|
|
|
|
|
\begin{filecontents*}{data.csv}
|
|
|
|
|
ArtID,Desc,Amount,PriceBrut,PriceNett,Tax
|
|
|
|
|
1,T-Shirt,1,-1,15,19
|
|
|
|
|
2,Hackerpass,1,-1,5,19
|
|
|
|
|
3,c3d2-Pin,1,-1,3,19
|
|
|
|
|
4,Vortragsstunde,2,-1,60,0
|
|
|
|
|
\end{filecontents*}
|
|
|
|
|
|
|
|
|
|
\usepackage{hyperref}
|
|
|
|
|
\hypersetup{
|
|
|
|
|
%linkbordercolor={1 0 0},
|
|
|
|
|
%citebordercolor={0 1 0},
|
|
|
|
|
%urlbordercolor={0 1 1},
|
|
|
|
|
filecolor=red,
|
|
|
|
|
citecolor=green,
|
|
|
|
|
colorlinks=true, % farbige Links, nicht umrandet
|
|
|
|
|
%hidelinks,
|
|
|
|
|
linkcolor=blue, % Farbe fuer dokumentinterne Links
|
|
|
|
|
urlcolor=magenta, % Farbe fuer dokumentexterne Links
|
|
|
|
|
linktoc=all, % (none,section,page,all) in Verzeichnissen Zahlen und Texte verlinken
|
|
|
|
|
unicode, % Umlaute in PDF-Strings
|
|
|
|
|
pdfnewwindow=true,
|
|
|
|
|
pdftitle={Rechnung vom \Verein{}},
|
|
|
|
|
pdfsubject={Rechnungsnummer \ReNr{}},
|
|
|
|
|
pdfauthor={\Verein{}},
|
|
|
|
|
pdfkeywords={Verein \Verein{}, Chaos Computer Club \Ort{}, Erfa, Rechnung},
|
|
|
|
|
pdfstartview={FitH}
|
|
|
|
|
}
|
|
|
|
|
\newcommand{\Tax}{19}
|
|
|
|
|
|
|
|
|
|
\begin{document}
|
|
|
|
|
\makeatletter
|
|
|
|
|
\date{\today}
|
|
|
|
|
\setkomavar{fromname}{\Verein{}}
|
|
|
|
|
\setkomavar{fromaddress}{\VereinAdresse{}}
|
|
|
|
|
\setkomavar{fromemail}{\VereinEmail{}}
|
|
|
|
|
\setkomavar{subject}{Rechnung Nr. \ReNr{}}
|
|
|
|
|
\setkomavar{place}{\Ort{}}
|
|
|
|
|
|
|
|
|
|
\begin{letter}{
|
|
|
|
|
Max Mustermann\\
|
|
|
|
|
Musterstraße 1\\
|
|
|
|
|
01001 Musterhausen
|
|
|
|
|
}
|
|
|
|
|
\opening{}
|
|
|
|
|
|
|
|
|
|
%\begin{tabular}{rr}
|
|
|
|
|
% \csvloop{file={test.csv},command={\name & \betrag \\}}
|
|
|
|
|
%\end{tabular}
|
|
|
|
|
\par \textbf{SpreadTab}
|
|
|
|
|
|
|
|
|
|
\begin{spreadtab}{{tabularx}{\textwidth}{|l|X|l|l|l|r|r|}}
|
|
|
|
|
\hline
|
|
|
|
|
:={}Artikelnr. &
|
|
|
|
|
:={}Bezeichnung &
|
|
|
|
|
:={}Anzahl &
|
|
|
|
|
:={}Steuersatz &
|
|
|
|
|
:={}Netto &
|
|
|
|
|
:={}Brutto &
|
|
|
|
|
:={}Gesamt \\
|
|
|
|
|
\hline\hline
|
|
|
|
|
:={}1337 &
|
|
|
|
|
:={}Bla &
|
|
|
|
|
1 &
|
|
|
|
|
:={19} &
|
|
|
|
|
\EUR{:={[1,0]/(100+[-1,0])*100}} &
|
|
|
|
|
\EUR{:={10}} &
|
|
|
|
|
\EUR{:={[-1,0]*[-4,0]}} \\
|
|
|
|
|
\hline
|
|
|
|
|
:={}\multicolumn{6}{|r|}{Gesamtsumme:} &
|
|
|
|
|
\EUR{:={sum(g2:[0,-1])}} \\
|
|
|
|
|
\hline
|
|
|
|
|
:={}\multicolumn{5}{|r|}{Enthaltene Umsatzsteuer:} &
|
|
|
|
|
:={\Tax}\% &
|
|
|
|
|
\EUR{:={[-1,0]/100*[0,-1]}} \\
|
|
|
|
|
\hline
|
|
|
|
|
:={}\multicolumn{6}{|r|}{\textbf{Rechungsbetrag:}} &
|
|
|
|
|
\EUR{:={[0,-2]+[0,-1]tag(RB)}} \\
|
|
|
|
|
\hline
|
|
|
|
|
\end{spreadtab}
|
|
|
|
|
|
|
|
|
|
\begin{spreadtab}{{tabularx}{\textwidth}{|l|X|l|l|l|r|r|}}
|
|
|
|
|
\hline
|
|
|
|
|
:={}Artikelnr. & :={}Bezeichnung & :={}Anzahl & :={}Steuersatz & :={}Stückpreis & :={}Netto & :={}Brutto\\
|
|
|
|
|
\hline
|
|
|
|
|
%\pgfplotstabletypeset[%
|
|
|
|
|
% multicolumn names,%
|
|
|
|
|
% col sep = comma,%
|
|
|
|
|
% columns={artikelnr, name, anzahl, steuersatz, betrag, betrag, betrag}%
|
|
|
|
|
%]{test.csv}
|
|
|
|
|
%\csvreader[late after line={\\\hline}]%
|
|
|
|
|
% {test.csv}{artikelnr=\nr,name=\nm,anzahl=\az,steuersatz=\st,betrag=\br}{
|
|
|
|
|
% :={}\nr &
|
|
|
|
|
% :={}\nm &
|
|
|
|
|
% :={\az} &
|
|
|
|
|
% :={\st}\% &
|
|
|
|
|
% \EUR{:={[1,0]/(100+[-1,0])*100}} &
|
|
|
|
|
% \EUR{:={\br}} &
|
|
|
|
|
% :={[-1,0]*[-4,0]}}%
|
|
|
|
|
:={}1337 & :={}Bla & 1 & :={19} & \EUR{:={[1,0]/(100+[-1,0])*100}} & \EUR{:={10}} & :={[-1,0]*[-4,0]} \\
|
|
|
|
|
\hline
|
|
|
|
|
:={}\multicolumn{6}{|r|}{Gesamtsumme:} & \EUR{:={sum(g2:[0,-1])}}\\
|
|
|
|
|
\hline
|
|
|
|
|
:={}\multicolumn{5}{|r|}{Umsatzsteuer:} & :={\Tax}\% & \EUR{:={[-1,0]/100*[0,-1]}}\\
|
|
|
|
|
\hline
|
|
|
|
|
:={}\multicolumn{6}{|r|}{\textbf{Rechungsbetrag:}} & \EUR{:={[0,-2]+[0,-1] tag(RB)}}\\
|
|
|
|
|
\hline
|
|
|
|
|
\end{spreadtab}
|
|
|
|
|
\par \textbf{CSVReader}
|
|
|
|
|
|
|
|
|
|
\bigskip
|
|
|
|
|
\csvreader[
|
|
|
|
|
tabular=|r|l|r|r|r|r|r|r|,
|
|
|
|
|
table head=\hline \textbf{\#} & \textbf{Artikel} & \textbf{Anzahl} & \textbf{USt} & \textbf{Netto} & \textbf{Brutto} & \textbf{berechnet!} \\ \hline\hline,
|
|
|
|
|
late after line={\\\hline}
|
|
|
|
|
]{data.csv}{
|
|
|
|
|
ArtID=\nr,
|
|
|
|
|
Desc=\name,
|
|
|
|
|
Amount=\anz,
|
|
|
|
|
Tax=\st,
|
|
|
|
|
PriceNett=\ne,
|
|
|
|
|
PriceBrut=\br
|
|
|
|
|
}{
|
|
|
|
|
\nr &
|
|
|
|
|
\name &
|
|
|
|
|
\anz &
|
|
|
|
|
\st\,\% &
|
|
|
|
|
\br &
|
|
|
|
|
\ne &
|
|
|
|
|
:={[-1,0]/100*[0,-1]}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
%Bitte begleichen Sie den Rechungsbetrag von \EUR{\STtag{RB}} innerhalb von 14 Tagen an folgendes Konto:\\
|
|
|
|
|
|
|
|
|
|
\begin{tabular}{ll}
|
|
|
|
|
Kontoinhaber: & \Verein{}\\
|
|
|
|
|
IBAN: & \VereinKontoIBAN{}\\
|
|
|
|
|
BIC: & \VereinKontoBIC{}\\
|
|
|
|
|
\end{tabular}
|
|
|
|
|
\par \textbf{!Integration || Transition}
|
|
|
|
|
|
|
|
|
|
\closing{\vspace{1.5cm}\\Mit freundlichen Grüßen,}
|
|
|
|
|
\FPeval\summe{0}
|
|
|
|
|
\csvreader[
|
|
|
|
|
tabular=|r|l|r|r|r|r|r|r|,
|
|
|
|
|
table head=\hline \textbf{\#} & \textbf{Artikel} & \textbf{Anzahl} &
|
|
|
|
|
\textbf{USt} & \textbf{Netto} & \textbf{Brutto} & \textbf{berechnet!} \\
|
|
|
|
|
\hline\hline,
|
|
|
|
|
late after line={\\\hline},
|
|
|
|
|
table foot=\multicolumn{7}{|r|}{Summe: \FPeval\result{round(summe:2)}\EUR{\result}}\\\hline
|
|
|
|
|
]{data.csv}{
|
|
|
|
|
ArtID=\nr,
|
|
|
|
|
Desc=\name,
|
|
|
|
|
Amount=\anz,
|
|
|
|
|
Tax=\st,
|
|
|
|
|
PriceNett=\ne,
|
|
|
|
|
PriceBrut=\br
|
|
|
|
|
}{
|
|
|
|
|
\nr &
|
|
|
|
|
\name &
|
|
|
|
|
\anz &
|
|
|
|
|
\st\,\% &
|
|
|
|
|
%\br
|
|
|
|
|
\FPeval\result{round(ne/(1+st/100):2)}\EUR{\result}
|
|
|
|
|
&
|
|
|
|
|
% \ne
|
|
|
|
|
\FPeval\result{round(ne:2)}\EUR{\result}
|
|
|
|
|
&
|
|
|
|
|
% :={[-1,0]/100*[0,-1]}
|
|
|
|
|
\FPeval\result{round(ne*anz:2)}\EUR{\result}%
|
|
|
|
|
\FPeval\summe{summe+result}\xdef\summe{\summe}%
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
\end{letter}
|
|
|
|
|
\end{document}
|
|
|
|
|