<title>Dokumentenvorlagen und verfügbare Variablen</title>
<style type="text/css">
<!--
-.blue {
+.blue {
color: #000000;
background-color: #b0ecff;
border: 1px solid blue;
border-collapse: collapse;
}
-td {
+td {
border: 1px solid #be5303;
padding: 3px;
}
<li><a href="dokumentenvorlagen-und-variablen.html#invoice_zahlungen">
Variablen für die Zahlungseingänge</a></li>
- <li><a href="dokumentenvorlagen-und-variablen.html#benutzerdefinierte_variablen_vc">
+ <li><a href="dokumentenvorlagen-und-variablen.html#invoice_benutzerdefinierte_variablen_vc">
Benutzerdefinierte Kunden- und Lieferantenvariablen</a></li>
</ol>
</li>
</li>
<li><a href="dokumentenvorlagen-und-variablen.html#anderevorlagen">
- Variablen in anderen Vorlagen</a></li>
+ Variablen in anderen Vorlagen</a>
+
+ <ol>
+ <li><a href="dokumentenvorlagen-und-variablen.html#anderevorlagen_quotations">Angebote und Preisanfragen</a></li>
+ <li><a href="dokumentenvorlagen-und-variablen.html#anderevorlagen_orders">Auftragsbestätigungen und Lieferantenaufträge</a></li>
+ <li><a href="dokumentenvorlagen-und-variablen.html#anderevorlagen_delivery_orders">Lieferscheine (Verkauf und Einkauf)</a></li>
+ </ol>
+ </li>
<li><a href="dokumentenvorlagen-und-variablen.html#bloecke">
Blöcke, bedingte Anweisungen und Schleifen</a>
<ol>
- <li><a href="dokumentenvorlagen-und-variablen.html#bloecke_ifnot">
- Der <code>if not</code>-Block</a></li>
-
<li><a href="dokumentenvorlagen-und-variablen.html#bloecke_if">
Der <code>if</code>-Block</a></li>
<p>Dies würde Lx-Office dazu veranlassen, Variablen zu ersetzen,
wenn sie wie folgt aussehen: <code>($customer$)</code>. Das
- äquivalente Beispiel für HTML-Dokumentenvorlagen sieht so
+ äquivalente Beispiel für HTML-Dokumentenvorlagen sieht so
aus:</p>
<p><code><!-- config: tag-stye=($ $)></code></p>
geeignet zu ersetzen: ".tex" fü LaTeX-Vorlagen und
".odt" für OpenDocument-Vorlagen.</p>
- <ul>
- <li><code>bin_list.ext</code> -- Lagerliste</li>
- <li><code>check.ext</code> -- ?</li>
- <li><code>invoice.ext</code> -- Rechnung</li>
- <li><code>packing_list.ext</code> -- Verpackungsliste</li>
- <li><code>pick_list.ext</code> -- Sammelliste</li>
- <li><code>purcharse_order.ext</code> -- Bestellung an Lieferanten</li>
- <li><code>request_quotation.ext</code> -- Anfrage an Lieferanten</li>
- <li><code>sales_order.ext</code> -- Bestellung</li>
- <li><code>sales_quotation.ext</code> -- Angebot an Kunden</li>
- </ul>
+ <p>
+ <table border="1">
+ <tr>
+ <th>Dateiname</th>
+ <th>Bedeutung</th>
+ </tr>
+ <tr>
+ <td><code>bin_list.ext</code></td>
+ <td>Lagerliste</td>
+ </tr>
+ <tr>
+ <td><code>check.ext</code></td>
+ <td>?</td>
+ </tr>
+ <tr>
+ <td><code>invoice.ext</code></td>
+ <td>Rechnung</td>
+ </tr>
+ <tr>
+ <td><code>packing_list.ext</code></td>
+ <td>Packliste</td>
+ </tr>
+ <tr>
+ <td><code>pick_list.ext</code></td>
+ <td>Sammelliste</td>
+ </tr>
+ <tr>
+ <td><code>purchase_delivery_order.ext</code></td>
+ <td>Lieferschein (Einkauf)</td>
+ </tr>
+ <tr>
+ <td><code>purcharse_order.ext</code></td>
+ <td>Bestellung an Lieferanten</td>
+ </tr>
+ <tr>
+ <td><code>request_quotation.ext</code></td>
+ <td>Anfrage an Lieferanten</td>
+ </tr>
+ <tr>
+ <td><code>sales_delivery_order.ext</code></td>
+ <td>Lieferschein (Verkauf)</td>
+ </tr>
+ <tr>
+ <td><code>sales_order.ext</code></td>
+ <td>Bestellung</td>
+ </tr>
+ <tr>
+ <td><code>sales_quotation.ext</code></td>
+ <td>Angebot an Kunden</td>
+ </tr>
+ <tr>
+ <td><code>zahlungserinnerung.ext</code></td>
+ <td>Mahnung (Dateiname im Programm konfigurierbar)</td>
+ </tr>
+ <tr>
+ <td><code>zahlungserinnerung_invoice.ext</code></td>
+ <td>Rechnung über Mahngebühren (Dateiname im Programm konfigurierbar)</td>
+ </tr>
+ </table>
+ </p>
<small><a href="dokumentenvorlagen-und-variablen.html#inhaltsverzeichnis">
zum Inhaltsverzeichnis</a></small><br>
<td><code>bank_code</code></td>
<td>Bankleitzahl</td>
</tr>
+ <tr>
+ <td><code>bic</code></td>
+ <td>Bank-Identifikations-Code (Bank Identifier Code, BIC)</td>
+ </tr>
<tr>
<td><code>business</code></td>
<td>Kunden-/Lieferantentyp</td>
<td><code>homepage</code></td>
<td>Homepage</td>
</tr>
+ <tr>
+ <td><code>iban</code></td>
+ <td>Internationale Kontonummer (International Bank Account Number, IBAN)</td>
+ </tr>
<tr>
<td><code>language</code></td>
<td>Sprache</td>
</tr>
<tr>
<td><code>shiptostreet</code></td>
- <td>Straße und Hausnummer (Lieferadresse)
+ <td>Straße und Hausnummer (Lieferadresse)
<a href="dokumentenvorlagen-und-variablen.html#anmerkung_shipto">*</a></td>
</tr>
<tr>
</tr>
<tr>
<td><code>street</code></td>
- <td>Straße und Hausnummer</td>
+ <td>Straße und Hausnummer</td>
</tr>
<tr>
<td><code>taxnumber</code></td>
</p>
<h3><a name="allgemein_verkaeufer">
- Informationen über den Verkäfer (nur bei Verkaufsmasken):</a></h3>
+ Informationen über den Verkäufer (nur bei Verkaufsmasken):</a></h3>
<p>
<table border="1">
</tr>
<tr>
<td><code>currency</code></td>
- <td>Währung</td>
+ <td>Währung</td>
</tr>
<tr>
<td><code>cusordnumber</code></td>
</tr>
<tr>
<td><code>duedate</code></td>
- <td>Fälligkeitsdatum</td>
+ <td>Fälligkeitsdatum</td>
</tr>
<tr>
<td><code>globalprojectnumber</code></td>
<td>Projektnummer des ganzen Beleges</td>
</tr>
+ <tr>
+ <td><code>globalprojectdescription</code></td>
+ <td>Projekbeschreibung des ganzen Beleges</td>
+ </tr>
<tr>
<td><code>intnotes</code></td>
<td>Interne Bemerkungen</td>
<p>
<table border="1">
<tr><th>Variablenname</th><th>Bedeutung</th></tr>
- <tr>
- <td><code>assembly</code></td>
- <td>Erzeugnis</td>
- </tr>
<tr>
<td><code>bin</code></td>
<td>Stellage</td>
<td><code>discount</code></td>
<td>Rabatt als Betrag</td>
</tr>
+ <tr>
+ <td><code>discount_sub</code></td>
+ <td>Zwischensumme mit Rabatt</td>
+ </tr>
+ <tr>
+ <td><code>drawing</code></td>
+ <td>Zeichnung</td>
+ </tr>
+ <tr>
+ <td><code>ean</code></td>
+ <td>EAN-Code</td>
+ </tr>
+ <tr>
+ <td><code>image</code></td>
+ <td>Grafik</td>
+ </tr>
<tr>
<td><code>linetotal</code></td>
<td>Zeilensumme (Anzahl * Einzelpreis)</td>
</tr>
<tr>
- <td><code>listprice</code></td>
- <td>Listenpreis</td>
+ <td><code>longdescription</code></td>
+ <td>Langtext</td>
+ </tr>
+ <tr>
+ <td><code>microfiche</code></td>
+ <td>Mikrofilm</td>
</tr>
<tr>
<td><code>netprice</code></td>
<td>Nettopreis</td>
</tr>
+ <tr>
+ <td><code>nodiscount_linetotal</code></td>
+ <td>Zeilensumme ohne Rabatt</td>
+ </tr>
+ <tr>
+ <td><code>nodiscount_sub</code></td>
+ <td>Zwischensumme ohne Rabatt</td>
+ </tr>
<tr>
<td><code>number</code></td>
<td>Artikelnummer</td>
<td><code>projectnumber</code></td>
<td>Projektnummer</td>
</tr>
+ <tr>
+ <td><code>projectdescription</code></td>
+ <td>Projektbeschreibung</td>
+ </tr>
<tr>
<td><code>qty</code></td>
<td>Anzahl</td>
<td><code>unit</code></td>
<td>Einheit</td>
</tr>
+ <tr>
+ <td><code>weight</code></td>
+ <td>Gewicht</td>
+ </tr>
</table>
</p>
- <h3><a name="invoice_zahlungen">
- Variablen für die einzelnen Zahlungseingänge:</a></h3>
+ <p>Für jeden Posten gibt es ein Unterarray mit den Informationen über
+ Lieferanten und Lieferantenartikelnummer. Diese müssen mit
+ einer <code>foreach</code>-Schleife ausgegeben werden, da für jeden
+ Artikel mehrere Lieferanteninformationen hinterlegt sein können. Die
+ Variablen dafür lauten:</p>
<p>
<table border="1">
<tr><th>Variablenname</th><th>Bedeutung</th></tr>
<tr>
- <td><code>datepaid</code></td>
- <td>Datum</td>
+ <td><code>make</code></td>
+ <td>Lieferant</td>
</tr>
<tr>
- <td><code>memo</code></td>
- <td>Memo</td>
+ <td><code>model</code></td>
+ <td>Lieferantenartikelnummer</td>
</tr>
+ </table>
+ </p>
+
+ <h3><a name="invoice_zahlungen">
+ Variablen für die einzelnen Zahlungseingänge:</a></h3>
+
+ <p>
+ <table border="1">
+ <tr><th>Variablenname</th><th>Bedeutung</th></tr>
<tr>
- <td><code>paid</code></td>
+ <td><code>payment</code></td>
<td>Betrag</td>
</tr>
<tr>
- <td><code>source</code></td>
- <td>Beleg</td>
+ <td><code>paymentaccount</code></td>
+ <td>Konto</td>
</tr>
<tr>
- <td><code>exchangerate</code></td>
- <td>Wechselkurs</td>
+ <td><code>paymentdate</code></td>
+ <td>Datum</td>
</tr>
<tr>
- <td><code>forex</code></td>
- <td>Konto</td>
+ <td><code>paymentmemo</code></td>
+ <td>Memo</td>
+ </tr>
+ <tr>
+ <td><code>paymentsource</code></td>
+ <td>Beleg</td>
</tr>
</table>
</p>
- <h3><a name="benutzerdefinierte_variablen_vc">
+ <h3><a name="invoice_benutzerdefinierte_variablen_vc">
Benutzerdefinierte Kunden- und Lieferantenvariablen:</a></h3>
<p>
<h3><a name="dunning_allgemein">Allgemeine Variablen in Mahnungen:</a></h3>
- <p>Die Variablen des Verkäufers stehen wie gewohnt
- als <code>employee_...</code> zur Verfügung. Die Adressdaten des
+ <p>Die Variablen des Verkäufers stehen wie gewohnt
+ als <code>employee_...</code> zur Verfügung. Die Adressdaten des
Kunden stehen als Variablen <code>name</code>, <code>street</code>,
<code>zipcode</code>, <code>city</code>, <code>country</code>,
<code>department_1</code>, <code>department_2</code>, und
- <code>email</code> zur Verfügung.
+ <code>email</code> zur Verfügung.
</p>
<p>Weitere Variablen beinhalten:</p>
<td><code>dunning_duedate</code></td>
<td>Fälligkeitsdatum für diese Mahhnung</td>
</tr>
+ <tr>
+ <td><code>dunning_id</code></td>
+ <td>Mahnungsnummer</td>
+ </tr>
<tr>
<td><code>fee</code></td>
- <td>Kummulative Mahngebühren</td>
+ <td>Kummulative Mahngebühren</td>
</tr>
<tr>
<td><code>interest_rate</code></td>
<h3><a name="dunning_invoice">Variablen in automatisch erzeugten
Rechnungen über Mahngebühren</a></h3>
- <p>Die Variablen des Verkäufers stehen wie gewohnt
- als <code>employee_...</code> zur Verfügung. Die Adressdaten des
+ <p>Die Variablen des Verkäufers stehen wie gewohnt
+ als <code>employee_...</code> zur Verfügung. Die Adressdaten des
Kunden stehen als Variablen <code>name</code>, <code>street</code>,
<code>zipcode</code>, <code>city</code>, <code>country</code>,
<code>department_1</code>, <code>department_2</code>, und
- <code>email</code> zur Verfügung.
+ <code>email</code> zur Verfügung.
</p>
<p>Weitere Variablen beinhalten:</p>
<tr><th>Variablenname</th><th>Bedeutung</th></tr>
<tr>
<td><code>duedate</code></td>
- <td>Fälligkeitsdatum der Rechnung</td>
+ <td>Fälligkeitsdatum der Rechnung</td>
</tr>
<tr>
<td><code>dunning_id</code></td>
Variablen, die vom Geschäftsablauf her in der entsprechenden Vorlage
keine Bedeutung haben oder noch nicht belegt sein können.</p>
+ <p>Im Folgenden werden nur wichtige Unterschiede zu den Variablen in
+ Rechnungen aufgeführt.</p>
+
+ <h3><a name="anderevorlagen_quotations">Angebote und Preisanfragen</a></h3>
+
+ <p>
+ <table border="1">
+ <tr><th>Variablenname</th><th>Bedeutung</th></tr>
+ <tr>
+ <td><code>quonumber</code></td>
+ <td>Angebots- bzw. Anfragenummer</td>
+ </tr>
+ <tr>
+ <td><code>reqdate</code></td>
+ <td>Gültigkeitsdatum (bei Angeboten) bzw. Lieferdatum (bei Preisanfragen)</td>
+ </tr>
+ <tr>
+ <td><code>transdate</code></td>
+ <td>Angebots- bzw. Anfragedatum</td>
+ </tr>
+ </table>
+ </p>
+
+ <h3><a name="anderevorlagen_orders">Auftragsbestätigungen und Lieferantenaufträge</a></h3>
+
+ <p>
+ <table border="1">
+ <tr><th>Variablenname</th><th>Bedeutung</th></tr>
+ <tr>
+ <td><code>ordnumber</code></td>
+ <td>Auftragsnummer</td>
+ </tr>
+ <tr>
+ <td><code>reqdate</code></td>
+ <td>Lieferdatum</td>
+ </tr>
+ <tr>
+ <td><code>transdate</code></td>
+ <td>Auftragsdatum</td>
+ </tr>
+ </table>
+ </p>
+
+ <h3><a name="anderevorlagen_delivery_orders">Lieferscheine (Verkauf und Einkauf)</a></h3>
+
+ <p>
+ <table border="1">
+ <tr><th>Variablenname</th><th>Bedeutung</th></tr>
+ <tr>
+ <td><code>cusordnumber</code></td>
+ <td>Bestellnummer des Kunden (im Verkauf) bzw. Bestellnummer des Lieferanten (im Einkauf)</td>
+ </tr>
+ <tr>
+ <td><code>donumber</code></td>
+ <td>Lieferscheinnummer</td>
+ </tr>
+ <tr>
+ <td><code>transdate</code></td>
+ <td>Lieferscheindatum</td>
+ </tr>
+ </table>
+ </p>
+
+ <p>Für jede Position eines Lieferscheines gibt es ein Unterarray mit
+ den Informationen darüber, von welchem Lager und Lagerplatz aus die
+ Waren verschickt wurden (Verkaufslieferscheine) bzw. auf welchen
+ Lagerplatz sie eingelagert wurden. Diese müssen mittels
+ einer <code>foreach</code>-Schleife ausgegeben werden. Diese
+ Variablen sind:</p>
+
+ <p>
+ <table border="1">
+ <tr><th>Variablenname</th><th>Bedeutung</th></tr>
+ <tr>
+ <td><code>si_bin</code></td>
+ <td>Lagerplatz</td>
+ </tr>
+ <tr>
+ <td><code>si_chargenumber</code></td>
+ <td>Chargennummer</td>
+ </tr>
+ <tr>
+ <td><code>si_bestbefore</code></td>
+ <td>Mindesthaltbarkeit</td>
+ </tr>
+ <tr>
+ <td><code>si_number</code></td>
+ <td>Artikelnummer</td>
+ </tr>
+ <tr>
+ <td><code>si_qty</code></td>
+ <td>Anzahl bzw. Menge</td>
+ </tr>
+ <tr>
+ <td><code>si_runningnumber</code></td>
+ <td>Positionsnummer (1, 2, 3 etc)</td>
+ </tr>
+ <tr>
+ <td><code>si_unit</code></td>
+ <td>Einheit</td>
+ </tr>
+ <tr>
+ <td><code>si_warehouse</code></td>
+ <td>Lager</td>
+ </tr>
+ </table>
+ </p>
+
<small><a href="dokumentenvorlagen-und-variablen.html#inhaltsverzeichnis">
zum Inhaltsverzeichnis</a></small><br>
<hr>
<h2><a name="bloecke">
Blöcke, bedingte Anweisungen und Schleifen</a></h2>
- <p>Der Parser kennt neben den Variablen einige weitere Konstrukte, die
- gesondert behandelt werden. Diese sind wie Variablennamen in spezieller
- Weise markiert: <code><%anweisung%></code></p>
-
- <h3><a name="bloecke_ifnot">Der <code>if not</code>-Block</a></h3>
-
- <p class="blue"><code><%if not variablenname%><br>
- ...<br>
- <%end></code></p>
-
- <p>Eine normale "if-not-then"-Bedingung. Die Zeilen zwischen dem "if not" und
- dem "end" werden nur ausgegeben, wenn die Variable "variablenname" nicht
- gesetzt oder gleich 0 ist.</p>
+ <p>Der Parser kennt neben den Variablen einige weitere Konstrukte,
+ die gesondert behandelt werden. Diese sind wie Variablennamen in
+ spezieller Weise markiert: <code><%anweisung%>
+ ... <%end%></code></p>
+
+ <p>Anmerkung zum <code><%end%></code>: Der besseren
+ Verständlichkeit halber kann man nach dem <code>end</code> noch
+ beliebig weitere Wörter schreiben, um so zu markieren, welche
+ Anweisung (z.B. <code>if</code> oder <code>foreach</code>) damit
+ abgeschlossen wird.</p>
+
+ <p>Beispiel: Lautet der Beginn eines Blockes
+ z.B. <code class="blue"><%if type ==
+ "sales_quotation"%></code>, so könnte er mit
+ <code class="blue"><%end%></code> genauso abgeschlossen werden
+ wie mit
+ <code class="blue"><%end if%></code> oder auch
+ <code class="blue"><%end type ==
+ "sales_quotation"%></code>.</p>
<h3><a name="bloecke_if">Der <code>if</code>-Block</a></h3>
<p class="blue"><code><%if variablenname%><br>
...<br>
- <%end></code></p>
-
- <p>Eine normale "if-then"-Bedingung. Die Zeilen zwischen dem "if" und dem
- "end" werden nur ausgegeben, wenn die Variable "variablenname" gesetzt und
- ungleich 0 ist.</p>
+ <%end%></code></p>
+
+ <p>Eine normale "if-then"-Bedingung. Die Zeilen zwischen
+ dem "if" und dem "end" werden nur ausgegeben,
+ wenn die Variable "variablenname" gesetzt und ungleich 0
+ ist.</p>
+
+ <p>Die Bedingung kann auch negiert werden, indem das Wort
+ "not" nach dem "if" verwendet
+ wird. Beispiel: <code class="blue"><%if not
+ cp_greeting%></code></p>
+
+ <p>Zusätzlich zu dem einfachen Test, ob eine Variable gesetzt ist
+ oder nicht, bietet dieser Block auch die Möglichkeit, den Inhalt
+ einer Variablen mit einer festen Zeichenkette oder einer anderen
+ Variablen zu vergleichen. Ob der Vergleich mit einer Zeichenkette
+ oder einer anderen Variablen vorgenommen wird, hängt davon ab, ob
+ die rechte Seite des Vergleichsoperators in Anführungszeichen
+ gesetzt wird (Vergleich mit Zeichenkette) oder nicht (Vergleich mit
+ anderer Variablen). Zwei Beispiele, die beide Vergleiche zeigen:</p>
+
+ <p><code class="blue"><%if var1 == "Wert"%></code>
+ testet die Variable "var1" auf Übereinstimmung mit der
+ Zeichenkette "Wert". Mittels "!=" anstelle von
+ "==" würde auf Ungleichheit getestet.</p>
+
+ <p><code class="blue"><%if var1 == var2%></code> testet die
+ Variable "var1" auf Übereinstimmung mit der Variablen
+ "var2". Mittels "!=" anstelle von "=="
+ würde auf Ungleichheit getestet.</p>
+
+ <p>Erfahrere Benutzer können neben der Tests auf (Un-)Gleichheit auch
+ Tests auf Übereinstimmung mit regulären Ausdrücken ohne
+ Berücksichtung der Groß- und Kleinschreibung durchführen. Dazu dient
+ dieselbe Syntax wie oben nur mit "=~" und "!~"
+ als Vergleichsoperatoren.</p>
+
+ <p>Beispiel für einen Test, ob die Variable "intnotes"
+ (interne Bemerkungen) das Wort "schwierig" enthält:
+ <code class="blue"><%if intnotes =~
+ "schwierig"%></code></p>
<h3><a name="bloecke_foreach">Die <code>foreach</code>-Schleife</a></h3>
<p class="blue"><code><%foreach variablenname%><br>
...<br>
- <%end></code></p>
+ <%end%></code></p>
<p>Fügt die Zeilen zwischen den beiden Anweisungen so oft ein, wie das
Perl-Array der Variablen "variablenname" Elemente enthät. Dieses
Artikelnummer: <%number%><br>
Beschreibung: <%description%><br>
...<br>
- <%end></code></p>
+ <%end%></code></p>
<p>Besonderheit in OpenDocument-Vorlagen: Tritt ein
- <code><foreach></code>-Block innerhalb einer Tabellenzelle
+ <code><%foreach%></code>-Block innerhalb einer Tabellenzelle
auf, so wird die komplette Tabellenzeile so oft wiederholt wie
notwendig. Tritt er außerhalb auf, so wird nur der Inhalt
- zwischen <code><foreach></code> und <code><end></code>
+ zwischen <code><%foreach%></code> und <code><%end%></code>
wiederholt, nicht aber die komplette Zeile, in der er steht.</p>
<h3><a name="bloecke_pagebreak">Der <code>pagebreak</code>-Block</a></h3>
<p class="blue"><code><%pagebreak ZpZ ZeS ZzS%><br>
...<br>
- <%end></code></p>
+ <%end%></code></p>
<p>Dieser Block existiert nur in LaTeX-Vorlagen.</p>
href="dokumentenvorlagen-und-variablen.html#bloecke_pagebreak">pagebreak-Block</a>
voreingestellten Werte einen Seitenumbruch nach der aktuellen
Rechnungsposition. Dementsprechend funktioniert er nur innerhalb von
- <code><foreach...></code>-Schleifen. Weiterhin benötigt er kein
- Endtag.</p>
+ <code><%foreach...%></code>-Schleifen. Weiterhin benötigt
+ er kein Endtag.</p>
<small><a href="dokumentenvorlagen-und-variablen.html#inhaltsverzeichnis">
zum Inhaltsverzeichnis</a></small><br>