loesungsvorschlag vom prof für csvsimple
This commit is contained in:
parent
e8e52b5b71
commit
b93e5d2ea1
|
@ -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}
|
||||
|
|
Loading…
Reference in New Issue