+ <varlistentry>
+ <term><varname>delivery_term.description_long</varname></term>
+
+ <listitem>
+ <para>Langtext bzw. übersetzter Langtext der
+ Lieferbedingung</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </sect3>
+
+ <sect3 id="dokumentenvorlagen-und-variablen.abweichende-rechnungsadresse">
+ <title>Informationen über abweichende Rechnungsadressen (nur Verkaufsbelege)</title>
+
+ <para>
+ Abweichende Rechnungsadressen gibt es nur in Verkaufsbelegen. Die entsprechenden Variablen sind nur dann mit Inhalt gefüllt,
+ wenn im Beleg eine abweichende Rechnungsadresse ausgewählt wurde. Ob eine Adresse überhaupt ausgewählt wurde, kann über die
+ Variable <literal>billing_address_id</literal> getestet werden, die die Datenbank-ID der abweichenden Rechnungsadresse enthält,
+ wenn eine ausgewählt ist.
+ </para>
+
+ <para>
+ Die Variablennamen starten alle mit dem Präfix <literal>billing_address_</literal> und heißen anschließend so, wie ihre Pendants
+ aus der Standard-Rechnungsadresse des Kunden. Beispiel: die Postleitzahl, die in der normalen Rechnungsadresse in
+ <literal>zipcode</literal> steht, steht für die abweichende Rechnungsadresse in <literal>billing_address_zipcode</literal>.
+ </para>
+
+ <para>
+ Die folgenden Variablen stehen so zur Verfügung: <literal>billing_address_name</literal>,
+ <literal>billing_address_department_1</literal>, <literal>billing_address_department_2</literal>,
+ <literal>billing_address_contact</literal>, <literal>billing_address_street</literal>,
+ <literal>billing_address_zipcode</literal>, <literal>billing_address_city</literal>, <literal>billing_address_country</literal>,
+ <literal>billing_address_gln</literal>, <literal>billing_address_email</literal>, <literal>billing_address_phone</literal> und
+ <literal>billing_address_fax</literal>.
+ </para>
+ </sect3>
+ </sect2>
+
+ <sect2 id="dokumentenvorlagen-und-variablen.invoice">
+ <title>Variablen in Rechnungen</title>
+
+ <sect3 id="dokumentenvorlagen-und-variablen.invoice-allgemein">
+ <title>Allgemeine Variablen</title>
+
+ <variablelist>
+ <varlistentry>
+ <term><varname>creditremaining</varname></term>
+
+ <listitem>
+ <para>Verbleibender Kredit</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>currency</varname></term>
+
+ <listitem>
+ <para>Währung</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>cusordnumber</varname></term>
+
+ <listitem>
+ <para>Bestellnummer beim Kunden</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>deliverydate</varname></term>
+
+ <listitem>
+ <para>Lieferdatum</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>duedate</varname></term>
+
+ <listitem>
+ <para>Fälligkeitsdatum</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>globalprojectnumber</varname></term>
+
+ <listitem>
+ <para>Projektnummer des ganzen Beleges</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>globalprojectdescription</varname></term>
+
+ <listitem>
+ <para>Projekbeschreibung des ganzen Beleges</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>intnotes</varname></term>
+
+ <listitem>
+ <para>Interne Bemerkungen</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>invdate</varname></term>
+
+ <listitem>
+ <para>Rechnungsdatum</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>invnumber</varname></term>
+
+ <listitem>
+ <para>Rechnungsnummer</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>invtotal</varname></term>
+
+ <listitem>
+ <para>gesamter Rechnungsbetrag</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>notes</varname></term>
+
+ <listitem>
+ <para>Bemerkungen der Rechnung</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>orddate</varname></term>
+
+ <listitem>
+ <para>Auftragsdatum</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>ordnumber</varname></term>
+
+ <listitem>
+ <para>Auftragsnummer, wenn die Rechnung aus einem Auftrag
+ erstellt wurde</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>payment_description</varname></term>
+
+ <listitem>
+ <para>Name der Zahlart</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>payment_terms</varname></term>
+
+ <listitem>
+ <para>Zahlungskonditionen</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>quodate</varname></term>
+
+ <listitem>
+ <para>Angebotsdatum</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>quonumber</varname></term>
+
+ <listitem>
+ <para>Angebotsnummer</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>rounding</varname></term>
+
+ <listitem>
+ <para>Betrag, um den <varname>invtotal</varname> gerundet
+ wurde (kann positiv oder negativ sein)</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>shippingpoint</varname></term>
+
+ <listitem>
+ <para>Versandort</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>shipvia</varname></term>
+
+ <listitem>
+ <para>Transportmittel</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>subtotal</varname></term>
+
+ <listitem>
+ <para>Zwischensumme aller Posten ohne Steuern</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>total</varname></term>
+
+ <listitem>
+ <para>Restsumme der Rechnung (Summe abzüglich bereits
+ bezahlter Posten)</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>transaction_description</varname></term>
+
+ <listitem>
+ <para>Vorgangsbezeichnung</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>transdate</varname></term>
+
+ <listitem>
+ <para>Auftragsdatum wenn die Rechnung aus einem Auftrag
+ erstellt wurde</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </sect3>
+
+ <sect3 id="dokumentenvorlagen-und-variablen.invoice-posten">
+ <title>Variablen für jeden Posten auf der Rechnung</title>
+
+ <variablelist>
+ <varlistentry>
+ <term><varname>bin</varname></term>
+
+ <listitem>
+ <para>Stellage</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>description</varname></term>
+
+ <listitem>
+ <para>Artikelbeschreibung</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>cusordnumber_oe</varname></term>
+
+ <listitem>
+ <para>Bestellnummer des Kunden aus dem Auftrag, aus dem der
+ Posten ursprünglich stammt (nur Verkauf)</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>discount</varname></term>
+
+ <listitem>
+ <para>Rabatt als Betrag</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>discount_sub</varname></term>
+
+ <listitem>
+ <para>Zwischensumme mit Rabatt</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>donumber_do</varname></term>
+
+ <listitem>
+ <para>Lieferscheinnummer des Lieferscheins, aus dem die
+ Position ursprünglich stammt, wenn die Rechnung im Rahmen des
+ Workflows aus einem Lieferschein erstellt wurde.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>drawing</varname></term>
+
+ <listitem>
+ <para>Zeichnung</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>ean</varname></term>
+
+ <listitem>
+ <para>EAN-Code</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>image</varname></term>
+
+ <listitem>
+ <para>Grafik</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>linetotal</varname></term>
+
+ <listitem>
+ <para>Zeilensumme (Anzahl * Einzelpreis)</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>longdescription</varname></term>
+
+ <listitem>
+ <para>Langtext, vorbelegt mit dem Feld Bemerkungen der entsprechenden Ware</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>microfiche</varname></term>
+
+ <listitem>
+ <para>Mikrofilm</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>netprice</varname></term>
+
+ <listitem>
+ <para>Alternative zu <varname>sellprice</varname>, aber
+ <varname>netprice</varname> entspricht dem effektiven
+ Einzelpreis und beinhaltet Zeilenrabatt und Preisfaktor.
+ <varname>netprice</varname> wird rückgerechnet aus Zeilensumme
+ / Menge. Diese Variable ist nützlich, wenn man den gewährten
+ Rabatt in der Druckvorlage nicht anzeigen möchte, aber Menge *
+ Einzelpreis trotzdem die angezeigte Zeilensumme ergeben soll.
+ <varname>netprice</varname> hat nichts mit Netto/Brutto im
+ Sinne von Steuern zu tun.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>nodiscount_linetotal</varname></term>
+
+ <listitem>
+ <para>Zeilensumme ohne Rabatt</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>nodiscount_sub</varname></term>
+
+ <listitem>
+ <para>Zwischensumme ohne Rabatt</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>number</varname></term>
+
+ <listitem>
+ <para>Artikelnummer</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>ordnumber_oe</varname></term>
+
+ <listitem>
+ <para>Auftragsnummer des Originalauftrags, aus dem der Posten
+ ursprünglich stammt. Nützlich, wenn die Rechnung aus mehreren
+ Lieferscheinen zusammengefasst wurde, oder wenn zwischendurch
+ eine Sammelauftrag aus mehreren Aufträgen erstellt wurde. In
+ letzterem Fall wird die unsprüngliche Auftragsnummer
+ angezeigt.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>p_discount</varname></term>
+
+ <listitem>
+ <para>Rabatt in Prozent</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>partnotes</varname></term>
+
+ <listitem>
+ <para>Die beim Artikel gespeicherten Bemerkungen</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>partsgroup</varname></term>
+
+ <listitem>
+ <para>Warengruppe</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>price_factor</varname></term>
+
+ <listitem>
+ <para>Der Preisfaktor als Zahl, sofern einer eingestellt
+ ist</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>price_factor_name</varname></term>
+
+ <listitem>
+ <para>Der Name des Preisfaktors, sofern einer eingestellt
+ ist</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>projectnumber</varname></term>
+
+ <listitem>
+ <para>Projektnummer</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>projectdescription</varname></term>
+
+ <listitem>
+ <para>Projektbeschreibung</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>qty</varname></term>
+
+ <listitem>
+ <para>Anzahl</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>reqdate</varname></term>
+
+ <listitem>
+ <para>Lieferdatum</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>runningnumber</varname></term>
+
+ <listitem>
+ <para>Position auf der Rechnung (1, 2, 3...)</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>sellprice</varname></term>
+
+ <listitem>
+ <para>Verkaufspreis</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>serialnumber</varname></term>
+
+ <listitem>
+ <para>Seriennummer</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>tax_rate</varname></term>
+
+ <listitem>
+ <para>Steuersatz</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>transdate_do</varname></term>
+
+ <listitem>
+ <para>Datum des Lieferscheins, wenn die Rechnung im Rahmen des
+ Workflows aus einem Lieferschein stammte.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>transdate_oe</varname></term>
+
+ <listitem>
+ <para>Datum des Auftrags, wenn die Rechnung im Rahmen des
+ Workflows aus einem Auftrag erstellt wurde. Wenn es
+ Sammelaufträge gab wird das Datum des ursprünglichen Auftrags
+ genommen.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>transdate_quo</varname></term>
+
+ <listitem>
+ <para>Datum des Angebots, wenn die Position im Rahmen des
+ Workflows aus einem Angebot stammte.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>unit</varname></term>
+
+ <listitem>
+ <para>Einheit</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>weight</varname></term>
+
+ <listitem>
+ <para>Gewicht</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ <para>Für jeden Posten gibt es ein Unterarray mit den Informationen
+ über Lieferanten und Lieferantenartikelnummer. Diese müssen mit
+ einer <function>foreach</function>-Schleife ausgegeben werden, da
+ für jeden Artikel mehrere Lieferanteninformationen hinterlegt sein
+ können. Die Variablen dafür lauten:</para>
+
+ <variablelist>
+ <varlistentry>
+ <term><varname>make</varname></term>
+
+ <listitem>
+ <para>Lieferant</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>model</varname></term>
+
+ <listitem>
+ <para>Lieferantenartikelnummer</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </sect3>
+
+ <sect3 id="dokumentenvorlagen-und-variablen.invoice-zahlungen">
+ <title>Variablen für die einzelnen Zahlungseingänge</title>
+
+ <variablelist>
+ <varlistentry>
+ <term><varname>payment</varname></term>
+
+ <listitem>
+ <para>Betrag</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>paymentaccount</varname></term>
+
+ <listitem>
+ <para>Konto</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>paymentdate</varname></term>
+
+ <listitem>
+ <para>Datum</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>paymentmemo</varname></term>
+
+ <listitem>
+ <para>Memo</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>paymentsource</varname></term>
+
+ <listitem>
+ <para>Beleg</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </sect3>
+
+ <sect3 id="dokumentenvorlagen-und-variablen.benutzerdefinierte-variablen-vc">
+ <title>Benutzerdefinierte Kunden- und Lieferantenvariablen</title>
+
+ <para>Die vom Benutzer definierten Variablen für Kunden und
+ Lieferanten stehen beim Ausdruck von Einkaufs- und Verkaufsbelegen
+ ebenfalls zur Verfügung. Ihre Namen setzen sich aus dem Präfix
+ <varname>vc_cvar_</varname> und dem vom Benutzer festgelegten
+ Variablennamen zusammen.</para>
+
+ <para>Beispiel: Der Benutzer hat eine Variable namens
+ <varname>number_of_employees</varname> definiert, die die Anzahl der
+ Mitarbeiter des Unternehmens enthält. Diese Variable steht dann
+ unter dem Namen <varname>vc_cvar_number_of_employees</varname> zur
+ Verfügung.</para>
+
+ <para>Die benutzerdefinierten Variablen der Lieferadressen stehen
+ unter einem ähnlichen Namensschema zur Verfügung. Hier lautet der
+ Präfix <varname>shiptocvar_</varname>.</para>
+
+ <para>Analog stehen die benutzerdefinierten Variablen für
+ Ansprechpersonen mit dem Namenspräfix <varname>cp_cvar_</varname>
+ zur Verfügung.</para>
+ </sect3>
+ </sect2>
+
+ <sect2 id="dokumentenvorlagen-und-variablen.dunning">
+ <title>Variablen in Mahnungen und Rechnungen über Mahngebühren</title>
+
+ <sect3 id="dokumentenvorlagen-und-variablen.dunning-vorlagennamen">
+ <title>Namen der Vorlagen</title>
+
+ <para>Die Namen der Vorlagen werden im System-Menü vom Benutzer
+ eingegeben. Wird für ein Mahnlevel die Option zur automatischen
+ Erstellung einer Rechnung über die Mahngebühren und Zinsen
+ aktiviert, so wird der Name der Vorlage für diese Rechnung aus dem
+ Vorlagenname für diese Mahnstufe mit dem Zusatz
+ <constant>_invoice</constant> gebildet. Weiterhin werden die Kürzel
+ für die ausgewählte Sprache und den ausgewählten Drucker
+ angehängt.</para>
+ </sect3>
+
+ <sect3 id="dokumentenvorlagen-und-variablen.dunning-allgemein">
+ <title>Allgemeine Variablen in Mahnungen</title>
+
+ <para>Die Variablen des Bearbeiters, bzw. Verkäufers stehen wie
+ gewohnt als <varname>employee_...</varname> bzw.
+ <varname>salesman_...</varname> zur Verfügung. Werden mehrere
+ Rechnungen in einer Mahnung zusammengefasst, so werden die Metadaten
+ (Bearbeiter, Abteilung, etc) der ersten angemahnten Rechnung im
+ Ausdruck genommen.</para>
+
+ <para>Die Adressdaten des Kunden stehen als Variablen
+ <varname>name</varname>, <varname>street</varname>,
+ <varname>zipcode</varname>, <varname>city</varname>,
+ <varname>country</varname>, <varname>department_1</varname>,
+ <varname>department_2</varname>, und <varname>email</varname> zur
+ Verfügung. Der Ansprechpartner <varname>cp_...</varname> steht auch
+ zu Verfügung, wird allerdings auch nur von der ersten angemahnten
+ Rechnung (s.o.) genommen.</para>
+
+ <para>Weitere Variablen beinhalten:</para>
+
+ <variablelist>
+ <varlistentry>
+ <term><varname>dunning_date</varname></term>
+
+ <listitem>
+ <para>Datum der Mahnung</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>dunning_duedate</varname></term>
+
+ <listitem>
+ <para>Fälligkeitsdatum für diese Mahhnung</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>dunning_id</varname></term>
+
+ <listitem>
+ <para>Mahnungsnummer</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>fee</varname></term>
+
+ <listitem>
+ <para>Kumulative Mahngebühren</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>interest_rate</varname></term>
+
+ <listitem>
+ <para>Zinssatz per anno in Prozent</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>total_amount</varname></term>
+
+ <listitem>
+ <para>Gesamter noch zu zahlender Betrag als
+ <function>fee</function> + <function>total_interest</function>
+ + <function>total_open_amount</function></para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>total_interest</varname></term>
+
+ <listitem>
+ <para>Zinsen per anno über alle Rechnungen</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>total_open_amount</varname></term>
+
+ <listitem>
+ <para>Summe über alle offene Beträge der Rechnungen</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </sect3>
+
+ <sect3 id="dokumentenvorlagen-und-variablen.dunning-details">
+ <title>Variablen für jede gemahnte Rechnung in einer Mahnung</title>
+
+ <variablelist>
+ <varlistentry>
+ <term><varname>dn_amount</varname></term>
+
+ <listitem>
+ <para>Rechnungssumme (brutto)</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>dn_duedate</varname></term>
+
+ <listitem>
+ <para>Originales Fälligkeitsdatum der Rechnung</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>dn_dunning_date</varname></term>
+
+ <listitem>
+ <para>Datum der Mahnung</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>dn_dunning_duedate</varname></term>
+
+ <listitem>
+ <para>Fälligkeitsdatum der Mahnung</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>dn_fee</varname></term>
+
+ <listitem>
+ <para>Kummulative Mahngebühr</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>dn_interest</varname></term>
+
+ <listitem>
+ <para>Zinsen per anno für diese Rechnung</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>dn_invnumber</varname></term>
+
+ <listitem>
+ <para>Rechnungsnummer</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>dn_linetotal</varname></term>
+
+ <listitem>
+ <para>Noch zu zahlender Betrag (ergibt sich aus
+ <varname>dn_open_amount</varname> + <varname>dn_fee</varname>
+ + <varname>dn_interest</varname>)</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>dn_netamount</varname></term>
+
+ <listitem>
+ <para>Rechnungssumme (netto)</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>dn_open_amount</varname></term>
+
+ <listitem>
+ <para>Offener Rechnungsbetrag</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>dn_ordnumber</varname></term>
+
+ <listitem>
+ <para>Bestellnummer</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>dn_transdate</varname></term>
+
+ <listitem>
+ <para>Rechnungsdatum</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>dn_curr</varname></term>
+
+ <listitem>
+ <para>Währung, in der die Rechnung erstellt wurde. (Die
+ Rechnungsbeträge sind aber immer in der Hauptwährung)</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </sect3>
+
+ <sect3 id="dokumentenvorlagen-und-variablen.dunning-invoice">
+ <title>Variablen in automatisch erzeugten Rechnungen über
+ Mahngebühren</title>
+
+ <para>Die Variablen des Verkäufers stehen wie gewohnt als
+ <varname>employee_...</varname> zur Verfügung. Die Adressdaten des
+ Kunden stehen als Variablen <varname>name</varname>,
+ <varname>street</varname>, <varname>zipcode</varname>,
+ <varname>city</varname>, <varname>country</varname>,
+ <varname>department_1</varname>, <varname>department_2</varname>,
+ und <varname>email</varname> zur Verfügung.</para>
+
+ <para>Weitere Variablen beinhalten:</para>
+
+ <variablelist>
+ <varlistentry>
+ <term><varname>duedate</varname></term>
+
+ <listitem>
+ <para>Fälligkeitsdatum der Rechnung</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>dunning_id</varname></term>
+
+ <listitem>
+ <para>Mahnungsnummer</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>fee</varname></term>
+
+ <listitem>
+ <para>Mahngebühren</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>interest</varname></term>
+
+ <listitem>
+ <para>Zinsen</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>invamount</varname></term>
+
+ <listitem>
+ <para>Rechnungssumme (ergibt sich aus <varname>fee</varname> +
+ <varname>interest</varname>)</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>invdate</varname></term>
+
+ <listitem>
+ <para>Rechnungsdatum</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>invnumber</varname></term>
+
+ <listitem>
+ <para>Rechnungsnummer</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </sect3>
+ </sect2>
+
+ <sect2 id="dokumentenvorlagen-und-variablen.andere-vorlagen">
+ <title>Variablen in anderen Vorlagen</title>
+
+ <sect3>
+ <title>Einführung</title>
+
+ <para>Die Variablen in anderen Vorlagen sind ähnlich wie in der
+ Rechnung. Allerdings heißen die Variablen, die mit
+ <varname>inv</varname> beginnen, jetzt anders. Bei den Angeboten
+ fangen sie mit <varname>quo</varname> für "quotation" an:
+ <varname>quodate</varname> für Angebotsdatum etc. Bei Bestellungen
+ wiederum fangen sie mit <varname>ord</varname> für "order" an:
+ <varname>ordnumber</varname> für Bestellnummer etc.</para>
+
+ <para>Manche Variablen sind in anderen Vorlagen hingegen gar nicht
+ vorhanden wie z.B. die für bereits verbuchte Zahlungseingänge. Dies
+ sind Variablen, die vom Geschäftsablauf her in der entsprechenden
+ Vorlage keine Bedeutung haben oder noch nicht belegt sein
+ können.</para>
+
+ <para>Im Folgenden werden nur wichtige Unterschiede zu den Variablen
+ in Rechnungen aufgeführt.</para>
+ </sect3>
+
+ <sect3 id="dokumentenvorlagen-und-variablen.andere-vorlagen-quotations">
+ <title>Angebote und Preisanfragen</title>
+
+ <variablelist>
+ <varlistentry>
+ <term><varname>quonumber</varname></term>
+
+ <listitem>
+ <para>Angebots- bzw. Anfragenummer</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>reqdate</varname></term>
+
+ <listitem>
+ <para>Gültigkeitsdatum (bei Angeboten) bzw. Lieferdatum (bei
+ Preisanfragen)</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>transdate</varname></term>
+
+ <listitem>
+ <para>Angebots- bzw. Anfragedatum</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </sect3>
+
+ <sect3 id="dokumentenvorlagen-und-variablen.andere-vorlagen-orders">
+ <title>Auftragsbestätigungen und Lieferantenaufträge</title>
+
+ <variablelist>
+ <varlistentry>
+ <term><varname>ordnumber</varname></term>
+
+ <listitem>
+ <para>Auftragsnummer</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>reqdate</varname></term>
+
+ <listitem>
+ <para>Lieferdatum</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>transdate</varname></term>
+
+ <listitem>
+ <para>Auftragsdatum</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </sect3>
+
+ <sect3 id="dokumentenvorlagen-und-variablen.andere-vorlagen-delivery-orders">
+ <title>Lieferscheine (Verkauf und Einkauf)</title>
+
+ <variablelist>
+ <varlistentry>
+ <term><varname>cusordnumber</varname></term>
+
+ <listitem>
+ <para>Bestellnummer des Kunden (im Verkauf) bzw. Bestellnummer
+ des Lieferanten (im Einkauf)</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>donumber</varname></term>
+
+ <listitem>
+ <para>Lieferscheinnummer</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>transdate</varname></term>
+
+ <listitem>
+ <para>Lieferscheindatum</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ <para>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
+ <function>foreach</function>-Schleife ausgegeben werden. Diese
+ Variablen sind:</para>
+
+ <variablelist>
+ <varlistentry>
+ <term><varname>si_bin</varname></term>
+
+ <listitem>
+ <para>Lagerplatz</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>si_chargenumber</varname></term>
+
+ <listitem>
+ <para>Chargennummer</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>si_bestbefore</varname></term>
+
+ <listitem>
+ <para>Mindesthaltbarkeit</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>si_number</varname></term>
+
+ <listitem>
+ <para>Artikelnummer</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>si_qty</varname></term>
+
+ <listitem>
+ <para>Anzahl bzw. Menge</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>si_runningnumber</varname></term>
+
+ <listitem>
+ <para>Positionsnummer (1, 2, 3 etc)</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>si_unit</varname></term>
+
+ <listitem>
+ <para>Einheit</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>si_warehouse</varname></term>
+
+ <listitem>
+ <para>Lager</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </sect3>
+
+ <sect3 id="dokumentenvorlagen-und-variablen.andere-vorlagen-statement">
+ <title>Variablen für Sammelrechnung</title>
+
+ <variablelist>
+ <varlistentry>
+ <term><varname>c0total</varname></term>
+
+ <listitem>
+ <para>Gesamtbetrag aller Rechnungen mit Fälligkeit < 30
+ Tage</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>c30total</varname></term>
+
+ <listitem>
+ <para>Gesamtbetrag aller Rechnungen mit Fälligkeit >= 30
+ und < 60 Tage</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>c60total</varname></term>
+
+ <listitem>
+ <para>Gesamtbetrag aller Rechnungen mit Fälligkeit >= 60
+ und < 90 Tage</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>c90total</varname></term>
+
+ <listitem>
+ <para>Gesamtbetrag aller Rechnungen mit Fälligkeit >= 90
+ Tage</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>total</varname></term>
+
+ <listitem>
+ <para>Gesamtbetrag aller Rechnungen</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ <para>Variablen für jede Rechnungsposition in Sammelrechnung:</para>
+
+ <variablelist>
+ <varlistentry>
+ <term><varname>invnumber</varname></term>
+
+ <listitem>
+ <para>Rechnungsnummer</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>invdate</varname></term>
+
+ <listitem>
+ <para>Rechnungsdatum</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>duedate</varname></term>
+
+ <listitem>
+ <para>Fälligkeitsdatum</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>amount</varname></term>
+
+ <listitem>
+ <para>Summe der Rechnung</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>open</varname></term>
+
+ <listitem>
+ <para>Noch offener Betrag der Rechnung</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>c0</varname></term>
+
+ <listitem>
+ <para>Noch offener Rechnungsbetrag mit Fälligkeit < 30
+ Tage</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>c30</varname></term>
+
+ <listitem>
+ <para>Noch offener Rechnungsbetrag mit Fälligkeit >= 30 und
+ < 60 Tage</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>c60</varname></term>
+
+ <listitem>
+ <para>Noch offener Rechnungsbetrag mit Fälligkeit >= 60 und
+ < 90 Tage</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>c90</varname></term>
+
+ <listitem>
+ <para>Noch offener Rechnungsbetrag mit Fälligkeit >= 90
+ Tage</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </sect3>
+ </sect2>
+
+ <sect2 id="dokumentenvorlagen-und-variablen.bloecke">
+ <title>Blöcke, bedingte Anweisungen und Schleifen</title>
+
+ <sect3 id="dokumentenvorlagen-und-variablen.bloecke.einfuehrung">
+ <title>Einführung</title>
+
+ <para>Der Parser kennt neben den Variablen einige weitere
+ Konstrukte, die gesondert behandelt werden. Diese sind wie
+ Variablennamen in spezieller Weise markiert:
+ <command><%anweisung%> ... <%end%></command></para>
+
+ <para>Anmerkung zum <command><%end%></command>: Der besseren
+ Verständlichkeit halber kann man nach dem <command>end</command>
+ noch beliebig weitere Wörter schreiben, um so zu markieren, welche
+ Anweisung (z.B. <command>if</command> oder
+ <command>foreach</command>) damit abgeschlossen wird.</para>
+
+ <para>Beispiel: Lautet der Beginn eines Blockes z.B.
+ <command><%if type == "sales_quotation"%></command>, so könnte
+ er mit <command><%end%></command> genauso abgeschlossen werden
+ wie mit <command><%end if%></command> oder auch
+ <command><%end type == "sales_quotation"%></command>.</para>
+ </sect3>
+
+ <sect3 id="dokumentenvorlagen-und-variablen.bloecke.if">
+ <title>Der if-Block</title>
+
+ <programlisting><%if variablenname%>
+...
+<%end%></programlisting>
+
+ <para>Eine normale "if-then"-Bedingung. Die Zeilen zwischen dem "if"
+ und dem "end" werden nur ausgegeben, wenn die Variable
+ <varname>variablenname</varname> gesetzt und ungleich 0 ist.</para>
+
+ <para>Handelt es sich bei der benannten Variable um ein Array, also
+ um einen Variablennamen, über den man mit <command><%foreach
+ variablenname%></command> iteriert, so wird mit diesem Konstrukt
+ darauf getestet, ob das Array Elemente enthält. Somit würde im
+ folgenden Beispiel nur dann eine Liste von Zahlungseingängen samt
+ ihrer Überschrift "Zahlungseingänge" ausgegeben, wenn tatsächlich
+ welche getätigt wurden:</para>
+
+ <programlisting><%if payment%>
+Zahlungseingänge:
+ <%foreach payment%>
+ Am <%paymentdate%>: <%payment%> €
+ <%end foreach%>
+<%end if%></programlisting>
+
+ <para>Die Bedingung kann auch negiert werden, indem das Wort
+ <function>not</function> nach dem <filename>if</filename> verwendet
+ wird. Beispiel:</para>
+
+ <programlisting><%if not cp_greeting%>
+...
+<%end%></programlisting>
+
+ <para>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:</para>
+
+ <programlisting><%if var1 == "Wert"%></programlisting>
+
+ <para>Testet die Variable <varname>var1</varname> auf
+ übereinstimmung mit der Zeichenkette <constant>Wert</constant>.
+ Mittels <function>!=</function> anstelle von <function>==</function>
+ würde auf Ungleichheit getestet.</para>
+
+ <programlisting><%if var1 == var2%></programlisting>
+
+ <para>Testet die Variable <varname>var1</varname> auf
+ übereinstimmung mit der Variablen <varname>var2</varname>. Mittel
+ <function>!=</function> anstelle von <function>==</function> würde
+ auf Ungleichheit getestet.</para>
+
+ <para>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 <function>=~</function> und
+ <function>!~</function> als Vergleichsoperatoren.</para>
+
+ <para>Beispiel für einen Test, ob die Variable
+ <varname>intnotes</varname> (interne Bemerkungen) das Wort
+ <constant>schwierig</constant> enthält:</para>
+
+ <programlisting><%if intnotes =~ "schwierig"%></programlisting>
+ </sect3>
+
+ <sect3 id="dokumentenvorlagen-und-variablen.bloecke.foreach">
+ <title>Der foreach-Block</title>
+
+ <programlisting><%foreach variablenname%>
+...
+<%end%></programlisting>
+
+ <para>Fügt die Zeilen zwischen den beiden Anweisungen so oft ein,
+ wie das Perl-Array der Variablen <varname>variablenname</varname>
+ Elemente enthät. Dieses Konstrukt wird zur Ausgabe der einzelnen
+ Posten einer Rechnung / eines Angebots sowie zur Ausgabe der Steuern
+ benutzt. In jedem Durchlauf werden die <link
+ linkend="dokumentenvorlagen-und-variablen.invoice-posten">zeilenbezogenen
+ Variablen</link> jeweils auf den Wert für die aktuelle Position
+ gesetzt.</para>
+
+ <para>Die Syntax sieht normalerweise wie folgt aus:</para>
+
+ <programlisting><%foreach number%>
+Position: <%runningnumber%>
+Anzahl: <%qty%>
+Artikelnummer: <%number%>
+Beschreibung: <%description%>
+...
+<%end%></programlisting>
+
+ <para>Besonderheit in OpenDocument-Vorlagen: Tritt ein
+ <function><%foreach%></function>-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 <function><%foreach%></function> und
+ <function><%end%></function> wiederholt, nicht aber die
+ komplette Zeile, in der er steht.</para>
+ </sect3>
+ </sect2>
+
+ <sect2 id="dokumentenvorlagen-und-variablen.markup">
+ <title>Markup-Code zur Textformatierung innerhalb von
+ Formularen</title>
+
+ <para>Wenn der Benutzer innhalb von Formularen in kivitendo Text
+ anders formatiert haben möchte, so ist dies begrenzt möglich.
+ kivitendo unterstützt die Textformatierung mit HTML-ähnlichen Tags.
+ Der Benutzer kann z.B. bei der Artikelbeschreibung auf einer Rechnung
+ Teile des Texts zwischen Start- und Endtags setzen. Dieser Teil wird
+ dann automatisch in Anweisungen für das ausgewählte Vorlagenformat
+ (HTML oder PDF über LaTeX) umgesetzt.</para>
+
+ <para>Die unterstützen Formatierungen sind:</para>
+
+ <variablelist>
+ <varlistentry>
+ <term><b>Text</b></term>
+
+ <listitem>
+ <para>Text wird in Fettdruck gesetzt.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><i>Text</i></term>
+
+ <listitem>
+ <para>Text wird kursiv gesetzt.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><u>Text</u></term>
+
+ <listitem>
+ <para>Text wird unterstrichen.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><s>Text</s></term>
+
+ <listitem>
+ <para>Text wird durchgestrichen. Diese Formatierung ist nicht
+ bei der Ausgabe als PDF über LaTeX verfügbar.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><bullet></term>
+
+ <listitem>
+ <para>Erzeugt einen ausgefüllten Kreis für Aufzählungen (siehe
+ unten).</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ <para>Der Befehl <command><bullet></command> funktioniert
+ momentan auch nur in Latex-Vorlagen.</para>
+ </sect2>
+
+ <sect2 id="dokumentenvorlagen-und-variablen.anrede"
+ xreflabel="Hinweise zur Anrede">
+ <title>Hinweise zur Anrede</title>
+
+ <para>Das Flag "natürliche Person"
+ (<varname>natural_person</varname>) aus den Kunden- oder
+ Lieferantenstammdaten kann in den Druckvorlagen zusammen mit
+ dem Feld "Anrede" (<varname>greeting</varname>) z.B. dafür
+ verwendet werden, die Anrede zwischen einer allgemeinen und
+ einer persönlichen Anrede zu unterscheiden.
+ <programlisting><%if natural_person%><%greeting%> <%name%><%else%>Sehr geehrte Damen und Herren<%end if%></programlisting>
+ </para>
+ </sect2>
+
+ </sect1>
+
+ <sect1 id="excel-templates">
+ <title>Excel-Vorlagen</title>
+
+ <sect2 id="excel-templates.summary">
+ <title>Zusammenfassung</title>
+
+ <para>Dieses Dokument beschreibt den Mechanismus, mit dem
+ Exceltemplates abgearbeitet werden, und die Einschränkungen, die damit
+ einhergehen.</para>
+ </sect2>
+
+ <sect2 id="excel-templates.usage">
+ <title>Bedienung</title>
+
+ <para>Der Excel Mechanismus muss in der Konfigurationsdatei aktiviert
+ werden. Die Konfigurationsoption heißt <varname>excel_templates =
+ 1</varname> im Abschnitt <varname>[print_templates]</varname>.</para>
+
+ <para>Eine Excelvorlage kann dann unter dem Namen einer beliebigen
+ anderen Vorlage mit der Endung <filename>.xls</filename> gespeichert
+ werden. In den normalen Verkaufsmasken taucht nun
+ <constant>Excel</constant> als auswählbares Format auf und kann von da
+ an wie LaTeX- oder OpenOffice-Vorlagen benutzt werden.</para>
+
+ <para>Der Sonderfall der Angebote aus der Kundenmaske ist ebenfalls
+ eine Angebotsvorlage und wird unter dem internen Namen der Angebote
+ <filename>sales_quotation.xls</filename> gespeichert.</para>
+ </sect2>
+
+ <sect2 id="excel-templates.syntax">
+ <title>Variablensyntax</title>
+
+ <para>Einfache Syntax:
+ <command><<varname>></command></para>
+
+ <para>Dabei sind <constant><<</constant> und
+ <constant>>></constant> die Delimiter. Da Excel auf festen
+ Breiten besteht, kann der Tag künstlich verlängert werden, indem
+ weitere <constant><</constant> oder <constant>></constant>
+ eingefügt werden. Der Tag muss nicht symmetrisch sein.
+ Beispiel:</para>
+
+ <programlisting><<<<<varname>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>></programlisting>
+
+ <para>Um die Limitierung der festen Breite zu reduzieren, können
+ weitere Variablen in einem Block interpoliert werden. Whitespace wird
+ dazwishen dann erhalten. Beispiel:</para>
+
+ <programlisting><<<<<varname1 varname2 varname3>>>>>>>>>>>>>>>>>>>>>>>>>></programlisting>
+
+ <para>Die Variablen werden interpoliert, und linksbündig mit
+ Leerzeichen auf die gewünschte Länge aufgefüllt. Ist der String zu
+ lang, werden überzählige Zeichen abgeschnitten.</para>
+
+ <para>Es ist ausserdem möglich, Daten rechtsbündig darzustellen, wenn
+ der Block mit einem Leerzeichen anfängt. Beispiel:</para>