X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=doc%2Fhtml%2Fch03s02.html;h=1c2668da8090641dab55b885d9523c3afce87420;hb=c62a6cabffc11bdb2d3fda2025fef2f3d07c5ba9;hp=e8b2f81d132575de3a02828ef1e862616e454d3b;hpb=d575e646f595765c667107f8758867280b3bf1a6;p=kivitendo-erp.git diff --git a/doc/html/ch03s02.html b/doc/html/ch03s02.html index e8b2f81d1..1c2668da8 100644 --- a/doc/html/ch03s02.html +++ b/doc/html/ch03s02.html @@ -1,725 +1,6 @@ - 3.2. Dokumentenvorlagen und verfügbare Variablen

3.2. Dokumentenvorlagen und verfügbare Variablen

3.2.1. Einführung

Dies ist eine Auflistung der Standard-Dokumentenvorlagen und - aller zur Bearbeitung verfügbaren Variablen. Eine Variable wird in - einer Vorlage durch ihren Inhalt ersetzt, wenn sie in der Form - <%variablenname%> verwendet wird. Für - LaTeX- und HTML-Vorlagen kann man die Form dieser Tags auch verändern - (siehe Anfang und Ende der Tags verändern).

Früher wurde hier nur über LaTeX gesprochen. Inzwischen - unterstützt kivitendo aber auch OpenDocument-Vorlagen. Sofern es nicht - ausdrücklich eingeschränkt wird, gilt das im Folgenden gesagte für - alle Vorlagenarten.

Insgesamt sind technisch gesehen eine ganze Menge mehr Variablen - verfügbar als hier aufgelistet werden. Die meisten davon können - allerdings innerhalb einer solchen Vorlage nicht sinnvoll verwendet - werden. Wenn eine Auflistung dieser Variablen gewollt ist, so kann - diese wie folgt erhalten werden:

  • - SL/Form.pm öffnen und am Anfang die - Zeile "use Data::Dumper;" einfügen.

  • In Form.pm die Funktion - parse_template suchen und hier die Zeile - print(STDERR Dumper($self)); einfügen.

  • Einmal per Browser die gewünschte Vorlage "benutzen", z.B. - ein PDF für eine Rechnung erzeugen.

  • Im error.log Apache steht die Ausgabe - der Variablen $self in der Form 'key' - => 'value',. Alle keys sind - verfügbar.

3.2.2. Variablen ausgeben

Um eine Variable auszugeben, müssen sie einfach nur zwischen die - Tags geschrieben werden, also z.B. - <%variablenname%>.

Optional kann man auch mit Leerzeichen getrennte Flags angeben, - die man aber nur selten brauchen wird. Die Syntax sieht also so aus: - <%variablenname FLAG1 FLAG2%>. Momentan - werden die folgenden Flags unterstützt:

  • - NOFORMAT gilt nur für Zahlenwerte und gibt - den Wert ohne Formatierung, also ohne Tausendertrennzeichen mit - mit einem Punkt als Dezimaltrennzeichen aus. Nützlich z.B., wenn - damit in der Vorlage z.B. von LaTeX gerechnet werden soll.

  • - NOESCAPE unterdrückt das Escapen von - Sonderzeichen für die Vorlagensprache. Wenn also in einer - Variablen bereits gültiger LaTeX-Code steht und dieser von LaTeX - auch ausgewertet und nicht wortwörtlich angezeigt werden soll, so - ist dieses Flag sinnvoll.

Beispiel:

<%quototal NOFORMAT%>

3.2.3. Verwendung in Druckbefehlen

In der Admininstration können Drucker definiert werden. Auch im - dort eingebbaren Druckbefehl können die hier aufgelisteten Variablen - und Kontrollstrukturen verwendet werden. Ihr Inhalt wird dabei nach - den Regeln der gängigen Shells formatiert, sodass Sonderzeichen wie - `...` nicht zu unerwünschtem Verhalten - führen.

Dies erlaubt z.B. die Definition eines Faxes als Druckerbefehl, - für das die Telefonnummer eines Ansprechpartners als Teil der - Kommandozeile verwendet wird. Für ein fiktives Kommando könnte das - z.B. wie folgt aussehen:

send_fax --number <%if cp_phone2%><%cp_phone2%><%else%><%cp_phone1%><%end%>

3.2.4. Anfang und Ende der Tags verändern

Der Standardstil für Tags sieht vor, dass ein Tag mit dem - Kleinerzeichen und einem Prozentzeichen beginnt und mit dem - Prozentzeichen und dem Größerzeichen endet, beispielsweise - <%customer%>. Da diese Form aber z.B. in - LaTeX zu Problemen führen kann, weil das Prozentzeichen dort - Kommentare einleitet, kann pro HTML- oder LaTeX-Dokumentenvorlage der - Stil umgestellt werden.

Dazu werden in die Datei Zeilen geschrieben, die mit dem für das - Format gültigen Kommentarzeichen anfangen, dann - config: enthalten, die entsprechende Option - setzen und bei HTML-Dokumentenvorlagen mit dem Kommentarendzeichen - enden. Beispiel für LaTeX:

% config: tag-style=($ $)

Dies würde kivitendo dazu veranlassen, Variablen zu ersetzen, - wenn sie wie folgt aussehen: ($customer$). Das - äquivalente Beispiel für HTML-Dokumentenvorlagen sieht so aus:

<!-- config: tag-style=($ $) -->

3.2.5. Zuordnung von den Dateinamen zu den Funktionen

Diese folgende kurze Auflistung zeigt, welche Vorlage bei - welcher Funktion ausgelesen wird. Dabei ist die Dateiendung - ".ext" geeignet zu ersetzen: - ".tex" für LaTeX-Vorlagen und - ".odt" für OpenDocument-Vorlagen.

- bin_list.ext -

Lagerliste

- check.ext -

?

- invoice.ext -

Rechnung

- packing_list.ext -

Packliste

- pick_list.ext -

Sammelliste

- purchase_delivery_order.ext -

Lieferschein (Einkauf)

- purcharse_order.ext -

Bestellung an Lieferanten

- request_quotation.ext -

Anfrage an Lieferanten

- sales_delivery_order.ext -

Lieferschein (Verkauf)

- sales_order.ext -

Bestellung

- sales_quotation.ext -

Angebot an Kunden

- zahlungserinnerung.ext -

Mahnung (Dateiname im Programm konfigurierbar)

- zahlungserinnerung_invoice.ext -

Rechnung über Mahngebühren (Dateiname im Programm - konfigurierbar)

3.2.6. Sprache, Drucker und E-Mail

Angeforderte Sprache und Druckerkürzel in den Dateinamen mit - eingearbeitet. So wird aus der Vorlage - sales_order.ext bei Sprache - de und Druckerkürzel lpr2 - der Vorlagenname sales_order_de_lpr2.ext. - Zusätzlich können für E-Mails andere Vorlagen erstellt werden, diese - bekommen dann noch das Kürzel _email, der - vollständige Vorlagenname wäre dann - sales_order_email_de_lpr2.ext. In allen Fällen - kann eine Standarddatei default.ext hinterlegt - werden. Diese wird verwendet, wenn keine der anderen Varianten - gefunden wird.

Die vollständige Suchreihenfolge für einen Verkaufsauftrag mit - der Sprache "de" und dem Drucker "lpr2", der per E-Mail im Format PDF - verschickt wird, ist:

  1. - sales_order_email_de_lpr2.tex -

  2. - sales_order_de_lpr2.tex -

  3. - sales_order.tex -

  4. - default.tex -

Die kurzen Varianten dieser Vorlagentitel müssen dann entweder - Standardwerte anzeigen, oder die angeforderten Werte selbst auswerten, - siehe dazu Metainformationen zur angeforderten Vorlage.

3.2.7. Allgemeine Variablen, die in allen Vorlagen vorhanden - sind

3.2.7.1. Metainformationen zur angeforderten Vorlage

Diese Variablen liefern Informationen darüber welche Variante - einer Vorlage der Benutzer angefragt hat. Sie sind nützlich für - Vorlagenautoren, die aus einer zentralen Layoutvorlage die einzelnen - Formulare einbinden möchten.

- template_meta.formname -

Basisname der Vorlage. Identisch mit der Zurordnung - zu den Dateinamen ohne die Erweiterung. Ein - Verkaufsauftrag enthält hier - sales_order.

- template_meta.language.description -

Beschreibung der verwendeten Sprache

- template_meta.language.template_code -

Vorlagenürzel der verwendeten Sprache, identisch mit dem - Kürzel das im Dateinamen verwendetet wird.

- template_meta.language.output_numberformat -

Zahlenformat der verwendeten Sprache in der Form - "1.000,00". Experimentell! Nur - interessant für Vorlagen die mit unformatierten Werten - arbeiten.

- template_meta.language.output_dateformat -

Datumsformat der verwendeten Sprache in der Form - "dd.mm.yyyy". Experimentell! Nur - interessant für Vorlagen die mit unformatierten Werten - arbeiten.

- template_meta.format -

Das angeforderte Format. Kann im Moment die Werte - pdf, postscript, - html, opendocument, - opendocument_pdf und - excel enthalten.

- template_meta.extension -

Dateierweiterung, wie im Dateinamen. Wird aus - format entschieden.

- template_meta.media -

Ausgabemedium. Kann zur Zeit die Werte - screen für Bildschirm, - email für E-Mmail (triggert das - _email Kürzel im Dateinamen), - printer für Drucker, und - queue für Warteschlange enthalten.

- template_meta.printer.description -

Beschreibung des ausgewählten Druckers

- template_meta.printer.template_code -

Vorlagenürzel des ausgewählten Druckers, identisch mit - dem Kürzel das im Dateinamen verwendetet wird.

- template_meta.tmpfile -

Datei-Prefix für temporäre Dateien.

3.2.7.2. Stammdaten von Kunden und Lieferanten

- account_number -

Kontonummer

- bank -

Name der Bank

- bank_code -

Bankleitzahl

- bic -

Bank-Identifikations-Code (Bank Identifier Code, - BIC)

- business -

Kunden-/Lieferantentyp

- city -

Stadt

- contact -

Kontakt

- country -

Land

- cp_email -

Email des Ansprechpartners

- cp_givenname -

Vorname des Ansprechpartners

- cp_greeting -

Anrede des Ansprechpartners

- cp_name -

Name des Ansprechpartners

- cp_phone1 -

Telefonnummer 1 des Ansprechpartners

- cp_phone2 -

Telefonnummer 2 des Ansprechpartners

- cp_title -

Titel des Ansprechpartners

- creditlimit -

Kreditlimit

- customeremail -

Email des Kunden; nur für Kunden

- customerfax -

Faxnummer des Kunden; nur für Kunden

- customernotes -

Bemerkungen beim Kunden; nur für Kunden

- customernumber -

Kundennummer; nur für Kunden

- customerphone -

Telefonnummer des Kunden; nur für Kunden

- discount -

Rabatt

- email -

Emailadresse

- fax -

Faxnummer

- homepage -

Homepage

- iban -

Internationale Kontonummer (International Bank Account - Number, IBAN)

- language -

Sprache

- name -

Firmenname

- payment_description -

Name der Zahlart

- payment_terms -

Zahlungskonditionen

- phone -

Telefonnummer

- shiptocity -

Stadt (Lieferadresse) * -

- shiptocontact -

Kontakt (Lieferadresse) * -

- shiptocountry -

Land (Lieferadresse) * -

- shiptodepartment1 -

Abteilung 1 (Lieferadresse) * -

- shiptodepartment2 -

Abteilung 2 (Lieferadresse) * -

- shiptoemail -

Email (Lieferadresse) * -

- shiptofax -

Fax (Lieferadresse) * -

- shiptoname -

Firmenname (Lieferadresse) * -

- shiptophone -

Telefonnummer (Lieferadresse) * -

- shiptostreet -

Straße und Hausnummer (Lieferadresse) * -

- shiptozipcode -

Postleitzahl (Lieferadresse) * -

- street -

Straße und Hausnummer

- taxnumber -

Steuernummer

- ustid -

Umsatzsteuer-Identifikationsnummer

- vendoremail -

Email des Lieferanten; nur für Lieferanten

- vendorfax -

Faxnummer des Lieferanten; nur für Lieferanten

- vendornotes -

Bemerkungen beim Lieferanten; nur für Lieferanten

- vendornumber -

Lieferantennummer; nur für Lieferanten

- vendorphone -

Telefonnummer des Lieferanten; nur für - Lieferanten

- zipcode -

Postleitzahl

[Anmerkung]Anmerkung

Anmerkung: Sind die shipto*-Felder in den - Stammdaten nicht eingetragen, so haben die Variablen - shipto* den gleichen Wert wie die die - entsprechenden Variablen der Lieferdaten. Das bedeutet, dass sich - einige shipto*-Variablen so nicht in den - Stammdaten wiederfinden sondern schlicht Kopien der - Lieferdatenvariablen sind (z.B. - shiptocontact).

3.2.7.3. Informationen über den Bearbeiter

- employee_address -

Adressfeld

- employee_businessnumber -

Firmennummer

- employee_company -

Firmenname

- employee_co_ustid -

Usatzsteuer-Identifikationsnummer

- employee_duns -

DUNS-Nummer

- employee_email -

Email

- employee_fax -

Fax

- employee_name -

voller Name

- employee_signature -

Signatur

- employee_taxnumber -

Steuernummer

- employee_tel -

Telefonnummer

3.2.7.4. Informationen über den Bearbeiter

- salesman_address -

Adressfeld

- salesman_businessnumber -

Firmennummer

- salesman_company -

Firmenname

- salesman_co_ustid -

Usatzsteuer-Identifikationsnummer

- salesman_duns -

DUNS-Nummer

- salesman_email -

Email

- salesman_fax -

Fax

- salesman_name -

voller Name

- salesman_signature -

Signatur

- salesman_taxnumber -

Steuernummer

- salesman_tel -

Telefonnummer

3.2.7.5. Variablen für die einzelnen Steuern

- tax -

Steuer

- taxbase -

zu versteuernder Betrag

- taxdescription -

Name der Steuer

- taxrate -

Steuersatz

3.2.8. Variablen in Rechnungen

3.2.8.1. Allgemeine Variablen

- creditremaining -

Verbleibender Kredit

- currency -

Währung

- cusordnumber -

Bestellnummer beim Kunden

- deliverydate -

Lieferdatum

- duedate -

Fälligkeitsdatum

- globalprojectnumber -

Projektnummer des ganzen Beleges

- globalprojectdescription -

Projekbeschreibung des ganzen Beleges

- intnotes -

Interne Bemerkungen

- invdate -

Rechnungsdatum

- invnumber -

Rechnungsnummer

- invtotal -

gesamter Rechnungsbetrag

- notes -

Bemerkungen der Rechnung

- orddate -

Auftragsdatum

- ordnumber -

Auftragsnummer, wenn die Rechnung aus einem Auftrag - erstellt wurde

- payment_description -

Name der Zahlart

- payment_terms -

Zahlungskonditionen

- quodate -

Angebotsdatum

- quonumber -

Angebotsnummer

- shippingpoint -

Versandort

- shipvia -

Transportmittel

- subtotal -

Zwischensumme aller Posten ohne Steuern

- total -

Restsumme der Rechnung (Summe abzüglich bereits - bezahlter Posten)

- transaction_description -

Vorgangsbezeichnung

- transdate -

Auftragsdatum wenn die Rechnung aus einem Auftrag - erstellt wurde

3.2.8.2. Variablen für jeden Posten auf der Rechnung

- bin -

Stellage

- description -

Artikelbeschreibung

- discount -

Rabatt als Betrag

- discount_sub -

Zwischensumme mit Rabatt

- drawing -

Zeichnung

- ean -

EAN-Code

- image -

Grafik

- linetotal -

Zeilensumme (Anzahl * Einzelpreis)

- longdescription -

Langtext

- microfiche -

Mikrofilm

- netprice -

Nettopreis

- nodiscount_linetotal -

Zeilensumme ohne Rabatt

- nodiscount_sub -

Zwischensumme ohne Rabatt

- number -

Artikelnummer

- ordnumber_oe -

Auftragsnummer des Originalauftrags, wenn die Rechnung - aus einem Sammelauftrag erstellt wurde

- p_discount -

Rabatt in Prozent

- partnotes -

Die beim Artikel gespeicherten Bemerkungen

- partsgroup -

Warengruppe

- price_factor -

Der Preisfaktor als Zahl, sofern einer eingestellt - ist

- price_factor_name -

Der Name des Preisfaktors, sofern einer eingestellt - ist

- projectnumber -

Projektnummer

- projectdescription -

Projektbeschreibung

- qty -

Anzahl

- reqdate -

Lieferdatum

- runningnumber -

Position auf der Rechnung (1, 2, 3...)

- sellprice -

Verkaufspreis

- serialnumber -

Seriennummer

- tax_rate -

Steuersatz

- transdate_oe -

Auftragsdatum des Originalauftrags, wenn die Rechnung - aus einem Sammelauftrag erstellt wurde

- unit -

Einheit

- weight -

Gewicht

Für jeden Posten gibt es ein Unterarray mit den Informationen - über Lieferanten und Lieferantenartikelnummer. Diese müssen mit - einer foreach-Schleife ausgegeben werden, da - für jeden Artikel mehrere Lieferanteninformationen hinterlegt sein - können. Die Variablen dafür lauten:

- make -

Lieferant

- model -

Lieferantenartikelnummer

3.2.8.3. Variablen für die einzelnen Zahlungseingänge

- payment -

Betrag

- paymentaccount -

Konto

- paymentdate -

Datum

- paymentmemo -

Memo

- paymentsource -

Beleg

3.2.8.4. Benutzerdefinierte Kunden- und Lieferantenvariablen

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 - vc_cvar_ und dem vom Benutzer festgelegten - Variablennamen zusammen.

Beispiel: Der Benutzer hat eine Variable namens - number_of_employees definiert, die die Anzahl der - Mitarbeiter des Unternehmens enthält. Diese Variable steht dann - unter dem Namen vc_cvar_number_of_employees zur - Verfügung.

3.2.9. Variablen in Mahnungen und Rechnungen über Mahngebühren

3.2.9.1. Namen der Vorlagen

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 - _invoice gebildet. Weiterhin werden die Kürzel - für die ausgewählte Sprache und den ausgewählten Drucker - angehängt.

3.2.9.2. Allgemeine Variablen in Mahnungen

Die Variablen des Verkäufers stehen wie gewohnt als - employee_... zur Verfügung. Die Adressdaten des - Kunden stehen als Variablen name, - street, zipcode, - city, country, - department_1, department_2, - und email zur Verfügung.

Weitere Variablen beinhalten:

- dunning_date -

Datum der Mahnung

- dunning_duedate -

Fälligkeitsdatum für diese Mahhnung

- dunning_id -

Mahnungsnummer

- fee -

Kummulative Mahngebühren

- interest_rate -

Zinssatz per anno in Prozent

- total_amount -

Gesamter noch zu zahlender Betrag als - fee + total_interest - + total_open_amount -

- total_interest -

Zinsen per anno über alle Rechnungen

- total_open_amount -

Summe über alle offene Beträge der Rechnungen

3.2.9.3. Variablen für jede gemahnte Rechnung in einer Mahnung

- dn_amount -

Rechnungssumme (brutto)

- dn_duedate -

Originales Fälligkeitsdatum der Rechnung

- dn_dunning_date -

Datum der Mahnung

- dn_dunning_duedate -

Fälligkeitsdatum der Mahnung

- dn_fee -

Kummulative Mahngebühr

- dn_interest -

Zinsen per anno für diese Rechnung

- dn_invnumber -

Rechnungsnummer

- dn_linetotal -

Noch zu zahlender Betrag (ergibt sich aus - dn_open_amount + dn_fee - + dn_interest)

- dn_netamount -

Rechnungssumme (netto)

- dn_open_amount -

Offener Rechnungsbetrag

- dn_ordnumber -

Bestellnummer

- dn_transdate -

Rechnungsdatum

- dn_curr -

Währung, in der die Rechnung erstellt wurde. (Die - Rechnungsbeträge sind aber immer in der Hauptwährung)

3.2.9.4. Variablen in automatisch erzeugten Rechnungen über - Mahngebühren

Die Variablen des Verkäufers stehen wie gewohnt als - employee_... zur Verfügung. Die Adressdaten des - Kunden stehen als Variablen name, - street, zipcode, - city, country, - department_1, department_2, - und email zur Verfügung.

Weitere Variablen beinhalten:

- duedate -

Fälligkeitsdatum der Rechnung

- dunning_id -

Mahnungsnummer

- fee -

Mahngebühren

- interest -

Zinsen

- invamount -

Rechnungssumme (ergibt sich aus fee + - interest)

- invdate -

Rechnungsdatum

- invnumber -

Rechnungsnummer

3.2.10. Variablen in anderen Vorlagen

3.2.10.1. Einführung

Die Variablen in anderen Vorlagen sind ähnlich wie in der - Rechnung. Allerdings heißen die Variablen, die mit - inv beginnen, jetzt anders. Bei den Angeboten - fangen sie mit quo für "quotation" an: - quodate für Angebotsdatum etc. Bei Bestellungen - wiederum fangen sie mit ord für "order" an: - ordnumber für Bestellnummer etc.

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.

Im Folgenden werden nur wichtige Unterschiede zu den Variablen - in Rechnungen aufgeführt.

3.2.10.2. Angebote und Preisanfragen

- quonumber -

Angebots- bzw. Anfragenummer

- reqdate -

Gültigkeitsdatum (bei Angeboten) bzw. Lieferdatum (bei - Preisanfragen)

- transdate -

Angebots- bzw. Anfragedatum

3.2.10.3. Auftragsbestätigungen und Lieferantenaufträge

- ordnumber -

Auftragsnummer

- reqdate -

Lieferdatum

- transdate -

Auftragsdatum

3.2.10.4. Lieferscheine (Verkauf und Einkauf)

- cusordnumber -

Bestellnummer des Kunden (im Verkauf) bzw. Bestellnummer - des Lieferanten (im Einkauf)

- donumber -

Lieferscheinnummer

- transdate -

Lieferscheindatum

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 - foreach-Schleife ausgegeben werden. Diese - Variablen sind:

- si_bin -

Lagerplatz

- si_chargenumber -

Chargennummer

- si_bestbefore -

Mindesthaltbarkeit

- si_number -

Artikelnummer

- si_qty -

Anzahl bzw. Menge

- si_runningnumber -

Positionsnummer (1, 2, 3 etc)

- si_unit -

Einheit

- si_warehouse -

Lager

3.2.10.5. Variablen für Sammelrechnung

- c0total -

Gesamtbetrag aller Rechnungen mit Fälligkeit < 30 - Tage

- c30total -

Gesamtbetrag aller Rechnungen mit Fälligkeit >= 30 - und < 60 Tage

- c60total -

Gesamtbetrag aller Rechnungen mit Fälligkeit >= 60 - und < 90 Tage

- c90total -

Gesamtbetrag aller Rechnungen mit Fälligkeit >= 90 - Tage

- total -

Gesamtbetrag aller Rechnungen

Variablen für jede Rechnungsposition in Sammelrechnung:

- invnumber -

Rechnungsnummer

- invdate -

Rechnungsdatum

- duedate -

Fälligkeitsdatum

- amount -

Summe der Rechnung

- open -

Noch offener Betrag der Rechnung

- c0 -

Noch offener Rechnungsbetrag mit Fälligkeit < 30 - Tage

- c30 -

Noch offener Rechnungsbetrag mit Fälligkeit >= 30 und - < 60 Tage

- c60 -

Noch offener Rechnungsbetrag mit Fälligkeit >= 60 und - < 90 Tage

- c90 -

Noch offener Rechnungsbetrag mit Fälligkeit >= 90 - Tage

3.2.11. Blöcke, bedingte Anweisungen und Schleifen

3.2.11.1. Einfürhung

Der Parser kennt neben den Variablen einige weitere - Konstrukte, die gesondert behandelt werden. Diese sind wie - Variablennamen in spezieller Weise markiert: - <%anweisung%> ... <%end%> -

Anmerkung zum <%end%>: Der besseren - Verständlichkeit halber kann man nach dem end - noch beliebig weitere Wörter schreiben, um so zu markieren, welche - Anweisung (z.B. if oder - foreach) damit abgeschlossen wird.

Beispiel: Lautet der Beginn eines Blockes z.B. - <%if type == "sales_quotation"%>, so könnte - er mit <%end%> genauso abgeschlossen werden - wie mit <%end if%> oder auch - <%end type == "sales_quotation"%>.

3.2.11.2. Der if-Block

<%if variablenname%>
-...
-<%end%>

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.

Handelt es sich bei der benannten Variable um ein Array, also um einen Variablennamen, über den man mit - <%foreach variablenname%> 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:

<%if payment%>
-Zahlungseingänge:
- <%foreach payment%>
-   Am <%paymentdate%>: <%payment%> €
- <%end foreach%>
-<%end if%>

Die Bedingung kann auch negiert werden, indem das Wort - not nach dem if verwendet - wird. Beispiel:

<%if not cp_greeting%>
-...
-<%end%>

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:

<%if var1 == "Wert"%>

Testet die Variable var1 auf - übereinstimmung mit der Zeichenkette Wert. - Mittels != anstelle von == - würde auf Ungleichheit getestet.

<%if var1 == var2%>

Testet die Variable var1 auf - übereinstimmung mit der Variablen var2. Mittel - != anstelle von == würde - auf Ungleichheit getestet.

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.

Beispiel für einen Test, ob die Variable - intnotes (interne Bemerkungen) das Wort - schwierig enthält:

<%if intnotes =~ "schwierig"%>

3.2.11.3. Der foreach-Block

<%foreach variablenname%>
-...
-<%end%>

Fügt die Zeilen zwischen den beiden Anweisungen so oft ein, - wie das Perl-Array der Variablen variablenname - 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 zeilenbezogenen - Variablen jeweils auf den Wert für die aktuelle Position - gesetzt.

Die Syntax sieht normalerweise wie folgt aus:

<%foreach number%>
-Position: <%runningnumber%>
-Anzahl: <%qty%>
-Artikelnummer: <%number%>
-Beschreibung: <%description%>
-...
-<%end%>

Besonderheit in OpenDocument-Vorlagen: Tritt ein - <%foreach%>-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 <%foreach%> und - <%end%> wiederholt, nicht aber die - komplette Zeile, in der er steht.

3.2.12. Markup-Code zur Textformatierung innerhalb von - Formularen

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.

Die unterstützen Formatierungen sind:

<b>Text</b>

Text wird in Fettdruck gesetzt.

<i>Text</i>

Text wird kursiv gesetzt.

<u>Text</u>

Text wird unterstrichen.

<s>Text</s>

Text wird durchgestrichen. Diese Formatierung ist nicht - bei der Ausgabe als PDF über LaTeX verfügbar.

<bullet>

Erzeugt einen ausgefüllten Kreis für Aufzählungen (siehe - unten).

Der Befehl <bullet> funktioniert - momentan auch nur in Latex-Vorlagen.

\ No newline at end of file + 3.2. Bankerweiterung

3.2. Bankerweiterung

3.2.1. Einführung

Die Beschreibung der Bankerweiterung befindet sich derzeit noch + im Wiki und soll von dort später hierhin übernommen werden:

+ http://redmine.kivitendo-premium.de/projects/forum/wiki/Bankerweiterung +

\ No newline at end of file