Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 5db07950

Von Moritz Bunkus vor etwa 12 Jahren hinzugefügt

  • ID 5db079503f2becc785ea559907c17bb0aa2a096e
  • Vorgänger d575e646
  • Nachfolger 8972865b

Druckvorlagen: Standard-Vorlagensatz im kivitendo-Design nach offizieller Demo

Fixt #2049.

Unterschiede anzeigen:

templates/print/Standard/invoice.tex
1
% invoice.tex
2
% Rechnung Verkauf
3
% Überarbeitet von Norbert Simon, n.simon@linet-services.de
4
% Version 2.5 vom 16. November 2011
5
% Basiert auf der Arbeit von kmk@lilalaser.de / 2007
6
% Diese Vorlage steht unter der GPL-Lizenz, Version 3
7
% siehe http://www.gnu.de/licenses/gpl-3.0.html
8
% ----------
9
% config: tag-style=$( )$
10
% ----------
11

  
1 12
\documentclass[twoside]{scrartcl}
2
\usepackage{eurosym}
3
\usepackage{tabularx}
4
\usepackage{ifthen}
5
\usepackage[utf8]{inputenc}
6
\begin{document}
13
\usepackage{fancyhdr}       % Für den Seitenkopf und -Fuß
14
\usepackage{ifpdf}          % Erlaubt eine Code-Weiche für PDF, oder DVI Ausgabe
15
\usepackage{xifthen}        % Allgemeine Code-Weiche
16
\usepackage{graphicx}       % Fuer die Einbindung der Logo-Graphik
17
\usepackage{german}         % Deutsche Trenn-Tabelle
18
\usepackage[utf8]{inputenc} % Umlaute direkt eingeben
19
\usepackage{textcomp}       % Sonderzeichen
20
\usepackage{lastpage}       % Fuer die Angabe "Seite 2 von 5"
21
\usepackage{filecontents}   % Um von latex aus eine Datei schreiben zu koennen
22
\usepackage{etex}           % Damit Marken verwendet werden koennen
23
\usepackage{ltxtable}       % Mehrseiten-Tabellen mit variabler Spaltenbreite
24
\usepackage{booktabs}	    % Striche in Tabellen
25
\usepackage{numprint}       % Zahlen formatiert ausgeben
26
\usepackage[$(if myconfig_output_numberformat =~ "1.000,00")$german$(else)$$(if myconfig_output_numberformat =~ "1000,00")$germannosep$(else)$$(if myconfig_output_numberformat =~ "1,000.00")$english$(else)$englishnosep$(end)$$(end)$$(end)$]{zwischensumme}  % Lokales Makro zur Berechnung der Zwischensummen
27
\usepackage{microtype,relsize} %Feinpositionierung, Sperren von Text
28
\newcommand*{\sperren}[1]{\normalsize\textls*[200]{#1}} %Sperrung Überrschriften
7 29

  
8
\setlength{\parindent}{0cm}
30
% ---------- Report-Variablen zur Verwendung in kivitendobriefkopf.tex ----------
31
% ----------  Die eigenen Daten ----------
32
\newcommand{\employeename}{$(employee_name)$}
33
\newcommand{\employeecompany}{$(employee_company)$}
34
\newcommand{\employeeaddress}{$(employee_address)$}
35
\newcommand{\employeetel}{$(employee_tel)$}
36
\newcommand{\employeefax}{$(employee_fax)$}
37
\newcommand{\employeeemail}{$(employee_email)$}
38
\newcommand{\employeecoustid}{$(employee_co_ustid)$}
39
\newcommand{\employeetaxnumber}{$(employee_taxnumber)$}
40
\newcommand{\employeetable}{tabelle$(employee_login)$.tex}
9 41

  
10
\pagestyle{empty}
42
% ---------- Eigene Bankverbindung falls nicht im Briefkopf gesetzt ----------
43
% \newcommand{\companybank}{$(company_bank)$}
44
% \newcommand{\companybankcode}{$(company_bank_code)$}
45
% \newcommand{\companyaccountnumber}{$(company_account_number)$}
11 46

  
12
\newlength{\descrwidth}\setlength{\descrwidth}{10cm}
47
% ---------- Adressat ----------
48
\newcommand{\name}{$(name)$}
49
\newcommand{\departmentone}{$(department_1)$}
50
\newcommand{\departmenttwo}{$(department_2)$}
51
\newcommand{\cpgreeting}{$(cp_greeting)$}
52
\newcommand{\cptitle}{$(cp_title)$}
53
\newcommand{\cpgivenname}{$(cp_givenname)$}
54
\newcommand{\cpname}{$(cp_name)$}
55
\newcommand{\street}{$(street)$}
56
\newcommand{\country}{$(country)$}
57
\newcommand{\zipcode}{$(zipcode)$}
58
\newcommand{\city}{$(city)$}
59
\newcommand{\phone}{$(customerphone)$}
60
\newcommand{\fax}{$(customerfax)$}
61
\newcommand{\lettergreeting}{
62
	\ifthenelse{\equal{$(cp_gender)$}{f}}
63
	 {Sehr geehrte Frau $(cp_name)$,}
64
	{\ifthenelse{\equal{$(cp_gender)$}{m}}
65
	  {Sehr geehrter Herr $(cp_name)$,}
66
	  {Sehr geehrte Damen und Herren,}
67
	}\\[1\baselineskip]
68
}
13 69

  
14
\fontfamily{cmss}\fontshape{n}\selectfont
70
% ---------- Rechnungsvariablen ----------
71
\newcommand{\kundennummer}{$(customernumber)$}
72
\newcommand{\quonumber}{$(quonumber)$}		% Angebotsnummer
73
\newcommand{\ordnumber}{$(ordnumber)$}		% Auftragsnummer bei uns
74
\newcommand{\cusordnumber}{$(cusordnumber)$}	% Auftragsnummer beim Kunden
75
\newcommand{\invnumber}{$(invnumber)$}		% Rechnungsnummer
76
\newcommand{\docnumber}{Rechnung Nr. \invnumber}
77
\newcommand{\quodate}{$(quodate)$}		% Angebotsdatum
78
\newcommand{\orddate}{$(orddate)$}		% Auftragsdatum
79
\newcommand{\reqdate}{$(reqdate)$}		% gewuenschtes Lieferdatum
80
\newcommand{\deliverydate}{$(deliverydate)$}    % Lieferdatum
81
\newcommand{\invdate}{$(invdate)$}		% Rechnungsdatum
82
\newcommand{\terms}{$(terms)$}			% Zahlungsfrist
83
\newcommand{\duedate}{$(duedate)$}		% Fälligkeitsdatum
84
\newcommand{\invtotal}{$(invtotal)$}		% Gesamtbetrag
85
\newcommand{\paid}{$(paid)$}			% Schon bezahlt
86
\newcommand{\total}{$(total)$}			% Restbetrag
15 87

  
16
\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
88
% ---------- Lieferadresse ----------
89
\newcommand{\shiptoname}{$(shiptoname)$}
90
\newcommand{\shiptocontact}{$(shiptocontact)$}
91
\newcommand{\shiptodepartmentone}{$(shiptodepartment_1)$}
92
\newcommand{\shiptodepartmenttwo}{$(shiptodepartment_2)$}
93
\newcommand{\shiptostreet}{$(shiptostreet)$}
94
\newcommand{\shiptocity}{$(shiptocity)$}
95
\newcommand{\shiptocountry}{$(shiptocountry)$}
96
\newcommand{\shiptophone}{$(shiptophone)$}
97
\newcommand{\shiptozipcode}{$(shiptozipcode)$}
98
\newcommand{\shiptofax}{$(shiptofax)$}
17 99

  
18
\vspace*{1.5cm}
100
% ---------- Währungszeichen ----------
101
\newcommand{\currency}{$(currency)$}
102
\ifthenelse{\equal{\currency}{EUR}}{\let\currency\euro}{}
103
\ifthenelse{\equal{\currency}{YEN}}{\let\currency\textyen}{}
104
\ifthenelse{\equal{\currency}{GBP}}{\let\currency\pounds}{}
105
\ifthenelse{\equal{\currency}{USD}}{\let\currency\$}{}
19 106

  
20
\begin{minipage}{8cm}
21
  <%name%>
107
% ---------- Ende Reportvariablen-Umsetzung ----------
22 108

  
23
  <%street%>
109
% ---------- Briefkopf dazuladen ----------
110
\input{kivitendobriefkopf}
24 111

  
25
  <%zipcode%> <%city%>
112
\begin{document}
113
% ---------- Schrift Hauptdokuments (Computermodern-sanserif)  ----------
114
% \fontfamily{cmss}\fontsize{10}{12pt plus 0.12pt minus 0.1pt}\selectfont
115
% ---------- Schrift Helvetica ------------------------
116
\fontfamily{phv}\fontsize{10}{12pt plus 0.12pt minus 0.1pt}\selectfont
117
% ---------- Firmenlogo nur erste Seite ----------
118
\thispagestyle{briefkopf}
26 119

  
27
  <%country%>
28
\end{minipage}
120
% ---------- Datum und Nummern ----------
121
% Position unterhalb des Briefkopfs
122
\vspace*{\vlogospacing}
123
\renewcommand{\arraystretch}{0.9}
124
\begin{minipage}[b]{177mm}
125
\sperren{\textbf{Rechnung Nr. \invnumber}}
126
{\tiny Bitte stets angeben}
29 127
\hfill
30
\begin{minipage}{6cm}
31
  \rightline{\LARGE\textbf{\textit{Rechnung}}} \vspace*{0.2cm}
32
  \rightline{\large\textbf{\textit{Nr. <%invnumber%>% \vspace*{0.2cm}
33
  }}}
34

  
35
  Rechnungsdatum:\hfill <%invdate%>
36

  
37
  Auftrag-Nr:\hfill <%ordnumber%>
38

  
39
  Telefon:\hfill <%phone%>
40

  
41
  Telefax:\hfill <%fax%>
42

  
43
  Ansprechpartner:\hfill <%employee%>
128
	\small
129
	\begin{tabular}[b]{r@{\hspace{2mm}}p{\hlogospacing}}
130
		\textbf{Seite} & {\thepage} von \pageref{LastPage}\\
131
  		\textbf{Datum} & \invdate \\
132
		\textbf{Kunden Nr.} & \kundennummer\\
133
		\nonemptyline{\textbf{Auftrag Nr.} &}{\ordnumber}
134
		\nonemptyline{\textbf{Rechnung Nr.} &}{\invnumber}
135
		\textbf{Ansprechpartner} & \employeename\\
136
		\nonemptyline{\textbf{Durchwahl} &}{\employeetel}
137
		\nonemptyline{\textbf{E-Mail} &}{\employeeemail}
138
	\end{tabular}\\[10mm plus 20mm minus 10mm]
44 139
\end{minipage}
140
\renewcommand{\arraystretch}{1}
141
\normalsize
142
% ---------- Begrüßung und Bemerkungen ----------
143
\vspace{ 5mm}
144
\lettergreeting
145
Hiermit erlauben wir uns, Ihnen die nachfolgenden Positionen $(if orddate)$gemäß 
146
Ihrem Auftrag vom \orddate{ }$(end)$in Rechnung zu stellen.\\
45 147

  
46
\vspace*{0.5cm}
148
Für Nachfragen steht Ihnen \employeename \ per Telefon (\employeetel) 
149
oder per E-Mail (\employeeemail) gerne zur Verfügung.\\[1\baselineskip]
150
\ifthenelse{\isempty{$(notes)$}}{}{
151
      $(notes)$\\[1\baselineskip]
152
      }%
153
%Mit freundlichen Grüßen\\[1\baselineskip]
154
%\employeename\\[1\baselineskip]
155
% ---------- Die eigentliche-Tabelle ----------
156
% ---------- Tabelle puffern ----------
157
\begin{filecontents}{\employeetable}
158
% ---------- globale Variable laufsumme deklarieren ----------
159
\resetlaufsumme
160
% ---------- Spaltendefinition ----------
161
%\begin{longtable}{@{}rlX@{ }rlrr@{\makebox[\widthof{\textbf{~\currency}}]}}
162
\begin{longtable}{@{}rlX@{ }rlrr@{\makebox[\widthof{\textbf{}}]}}
163
% ---------- Kopfzeile der Tabelle ----------
164
	\textbf{Pos} &
165
	\textbf{Art.Nr.} &
166
	\textbf{Bezeichnung} &
167
	\textbf{Menge} &
168
	\textbf{ME} &
169
	\textbf{EP/€} &
170
	\textbf{GP/€} \\
171
	\midrule
172
  \endfirsthead
173
% ---------- Tabellenkopf nach dem Umbruch ----------
174
	\textbf{Pos} &
175
	\textbf{Art.Nr.} &
176
	\textbf{Bezeichnung} &
177
	\textbf{Menge} &
178
	\textbf{ME} &
179
	\textbf{EP/€} &
180
	\textbf{GP/€} \\
181
        \midrule
182
	& & \multicolumn{4}{r}{} & \MarkUebertrPos\\[1.5em]
183
  \endhead
184
% ---------- Fuss der Teiltabellen ----------
185
	\midrule
186
	& & \multicolumn{4}{r}{} & \MarkZwsumPos \\
187
  \endfoot
188
% ---------- Das Ende der Tabelle ----------
189
  	\midrule
190
%	& & \multicolumn{4}{r}{ Nettobetrag:} & \MarkZwsumPos \\
191
\endlastfoot
192
% ---------- Positionen ----------
193
$(foreach number)$
194
	$(runningnumber)$ &
195
	$(number)$ &
196
	$(description)$
197
% 	\ifthenelse{\equal{$(longdescription)$}{}}{}{\newline
198
% 	\renewcommand{\baselinestretch}{1}\footnotesize
199
% 	{\footnotesize $(longdescription)$
200
% 	\renewcommand{\baselinestretch}{1}\normalsize
201
% 	}}
202
 	\ifthenelse{\equal{$(deliverydate_oe)$}{\leer}}{}{
203
 	        \newline Lieferdatum:~$(deliverydate_oe)$}
204
 	&
205
	$(qty)$ &
206
	$(unit)$ &
207
	\ifthenelse{\isempty{$(sellprice)$}}{&}{
208
		\numprint{$(sellprice)$}
209
		\ifthenelse{\equal{$(p_discount)$}{0}}{}{ -$(p_discount)$\%} &
210
		\numprint{$(linetotal)$}\Wert{$(linetotal NOFORMAT)$}  
211
	}\\ %
212
  $(end number)$
47 213

  
48
Ihre Bestellung <%cusordnumber%> vom <%orddate%>
49
% \hfill
50

  
51

  
52
\vspace*{0.5cm}
53

  
54
Sehr geehrte Damen und Herren,
55

  
56
für unsere erbrachten Lieferungen und Leistungen erlauben wir uns,
57
folgende Positionen in Rechnung zu stellen.
58

  
59
\vspace{0.5cm}
60

  
61
\begin{tabularx}{\textwidth}{lrXrr}
62
  \hline
63
  \textbf{Pos} & \textbf{Menge} & \textbf{Bezeichnung} &
64
  \textbf{E-Preis/\euro} & \textbf{G-Preis/\euro} \\
65
  \hline
66
  <%foreach number%>
67
    <%runningnumber%> & <%qty%> <%unit%> & \raggedright <%description%> &
68
    <%sellprice%> \euro & <%linetotal%> \euro \\
69
    <%if discount_sub%> & Zwischensumme: &  & <%discount_sub%> \euro  & <%end if%>\\
70
  <%end number%>\hline
71
  \multicolumn{4}{l}{Nettobetrag} & <%subtotal%> \euro \\
72
  <%foreach tax%>
73
  \multicolumn{4}{l}{<%taxdescription%>} & <%tax%> \euro \\
74
  <%end tax%>
75
  \multicolumn{4}{l}{\textbf{Endbetrag}} & \textbf{<%invtotal%> \euro} \\ \hline
76
\end{tabularx}
214
\end{longtable}
215
% ----------  Ende der Hilfsdatei ----------
216
\end{filecontents}
217
% ---------- Puffertabelle öffnen ----------
218
\LTXtable{\textwidth}{\employeetable}
219
%---------- Bereich für die Summen ----------
220
\parbox{\textwidth}{
221
%---------- Summenbereich nach recht schieben  ----------
222
\hfill
223
\setlength{\tabcolsep}{0mm}
224
\begin{tabular}[b]{@{}r@{ }r@{ }l}
225
   {Nettobetrag:}& \numprint{$(subtotal)$}& \currency\\
226
% ---------- Alle Steuern ausweisen ----------
227
   $(foreach tax)$
228
%       {$(taxdescription)$ auf }\numprint{$(taxbase)$}~\currency: & \numprint{$(tax)$}& \\
229
		{$(taxdescription)$}:  & \numprint{$(tax)$}& \currency\\
230
   $(end tax)$
231
   \midrule  
232
   {\textbf{Rechnungsbetrag:}} & \bfseries\numprint{\invtotal} & \textbf{\currency}\\
233
% ---------- Wenn bereits etwas gezahlt wurde ----------
234
$(if invtotal != total)$
235
      	$(foreach payment)$
236
   	   Zahlung vom {$(paymentdate)$}: & {\numprint{-$(payment)$}} & \currency \\
237
      	$(end paymentdate)$
238
      	\midrule
239
      	\textbf{Offener Betrag: } & \textbf{\numprint{\total}} & \textbf{\currency}\\
240
$(end)$
241
\bottomrule
242
\end{tabular}
243
} %Ende des Summenkasten
77 244

  
78
\vspace{1cm}
79
\ifthenelse{\equal{<%deliverydate%>}{}}{Das Leistungsdatum entspricht, soweit nicht anders angegeben, dem Rechnungsdatum.}{Liefertermin: <%deliverydate%>} \\
80
Zahlbar bis <%duedate%> in Summe <%invtotal%> \euro\ ohne Abzüge.
245
% ---------- Lieferadresse ----------
246
\ifthenelse{%
247
     \equal{\shiptoname}{\name} \AND
248
     \equal{\shiptodepartmentone}{\leer} \AND
249
     \equal{\shiptodepartmenttwo}{\leer} \AND
250
     \equal{\shiptostreet}{\street} \AND
251
     \equal{\shiptozipcode}{\zipcode} \AND
252
     \equal{\shiptocity}{\city}
253
     }{}
254
{
255
% ---------- Umbruch dazwischen verhindern ----------
256
\vspace*{0.5em}
257
\parbox{\textwidth}{
258
% ---------- Bereich für Lieferadresse ----------
259
\textbf{Leistungsempfänger:}\hfill\parbox[t]{0.7\textwidth}{
260
                \shiptoname \\
261
                \nonemptyline{}{\shiptodepartmentone}
262
                \nonemptyline{}{\shiptodepartmenttwo}
263
                \shiptostreet \\
264
                \shiptocountry{ }\shiptozipcode{ }\shiptocity\\[1mm]
265
                \nonemptyline{Tel: }{\shiptophone}
266
                \nonemptyline{Fax: }{\shiptofax}
267
        }%ende parbox
268
}% ende parbox
269
}% ende ifthenelse
270
% ---------- Nachbemerkung mit max. Abstand nach unten ----------
271
$(if payment_terms)$
272
\vspace*{0.5em}
273
\textbf{Zahlungsbedingungen:}\hfill\parbox[t]{0.7\textwidth}{$(payment_terms)$}\\ 
274
$(end)$
275
\vspace*{0.5em}
276
%Bitte überweisen Sie den Rechnungsbetrag in Höhe von
277
%{\numprint{\total}~\currency} innerhalb von
278
%%{\numprint{\total}~\currency}
279
%\ifthenelse{\equal{\duedate}{\leer}}{{14}}{{\terms}}~Tagen
280
%auf das unten angegebene Konto.
281
%\ifthenelse{\equal{\duedate}{\leer}}{}\\ \vfil
282
%  {Nach dem {\duedate} behalten wir uns Verzugszinsen vor.}
283
Soweit nicht anders angegeben, \ifthenelse{\equal{\deliverydate}{\leer}}
284
   {entspricht das Leistungsdatum dem Rechnungsdatum.}
285
   {wurde die Leistung am {\deliverydate} erbracht.}\\
286
\vfill
287
\footnotesize
288
Bereits gelieferte Waren bleiben bis zur vollständigen Bezahlung der
289
Rechnung unser Eigentum.
290
%}
81 291

  
82 292
\end{document}
83

  

Auch abrufbar als: Unified diff