loesungsvorschlag vom prof für csvsimple

This commit is contained in:
vv01f 2016-12-09 11:01:34 +01:00
parent e8e52b5b71
commit b93e5d2ea1
1 changed files with 95 additions and 105 deletions

View File

@ -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}
\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*}
\newcommand{\Tax}{19}
\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}
}
\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 & :={}Stückpreis & :={}Netto & :={}Brutto\\
:={}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
%\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]} \\
:={}\multicolumn{6}{|r|}{Gesamtsumme:} &
\EUR{:={sum(g2:[0,-1])}} \\
\hline
:={}\multicolumn{6}{|r|}{Gesamtsumme:} & \EUR{:={sum(g2:[0,-1])}}\\
:={}\multicolumn{5}{|r|}{Enthaltene Umsatzsteuer:} &
:={\Tax}\% &
\EUR{:={[-1,0]/100*[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)}}\\
:={}\multicolumn{6}{|r|}{\textbf{Rechungsbetrag:}} &
\EUR{:={[0,-2]+[0,-1]tag(RB)}} \\
\hline
\end{spreadtab}
\bigskip
\par \textbf{CSVReader}
%Bitte begleichen Sie den Rechungsbetrag von \EUR{\STtag{RB}} innerhalb von 14 Tagen an folgendes Konto:\\
\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]}
}
\begin{tabular}{ll}
Kontoinhaber: & \Verein{}\\
IBAN: & \VereinKontoIBAN{}\\
BIC: & \VereinKontoBIC{}\\
\end{tabular}
\closing{\vspace{1.5cm}\\Mit freundlichen Grüßen,}
\par \textbf{!Integration || Transition}
\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}