Zurück zur Anleitungen / HowTos
Siehe auch PDF Power-User Funktionen: Einfügen von Bildern aus Attachments.
Siehe auch Einstellungen globale und kundenspezifische Standard Texte.
Siehe auch Email zusätzlicher Text und Anhänge.
Siehe auch Persönlicher Betreuer/Angebotsersteller auf PDF.
Siehe auch FAQ: Rechnung mit Skonto.
Siehe auch FAQ: Positionsgruppen/Text mit Variable
Siehe auch FAQ: Dauerauftrag anlegen
Siehe auch Einstellungen Nummernkreise
Beispiele:
Siehe auch FAQ: Nachrichten in SLACK Channel posten
Siehe auch FAQ: Email bei Angebotsbeauftragung
Siehe auch FAQ: Projektleiter benachrichtigen bei Erhalt einer Lieferantenbestellung
Die PDF Erweiterungen für Power-User ermöglichen folgende Funktionalitäten (link auf die entsprechenden Dokumente):
Hier in diesem Dokument werden speziell folgende Funktionalitäten erläutert:
Gesteuert werden diese Funktionen über Funktionsaufrufe, die zwischen jeweils 2 eckigen Klammern aufgerufen werden. Hier gibt es die Möglichkeit Daten von Objekten (z.B: Gesamtpreis, Rechnungsdatum, Angebotsnummer, etc.) aus dem System zu holen und über Variablen einzufügen. Oder es gibt eine Funktion um Bilder-Attachments zu holen und als Bilder in das PDF einzufügen.
Diese Erweiterungen lassen sich auf folgende Objekte/Felder anwenden:
Variablen/Funktionen lassen sich größtenteils wie in der Dokumentation der Template Engine smarty http://www.smarty.net/docs/en/ verwenden.
ACHTUNG: seit Build 313 (2020-06-01) muss _objref statt _ref verwendet werden
Mit [[assign var="Variable" value="Wert" scope="global"]] kann der Variable “$Variable” der Text “Wert” zugewiesen werden.
Das “scope=“global”” sorgt dafür, dass diese Variable auch später zur Verfügung steht.
Hinweis: Die Texte (und damit die Variablenzuweisungen) werden der Reihenfolge nach durchgegangen, wie sie auch im PDF angezeigt werden.
Das bedeutet, die Variable $styp ist in allen nachfolgenden Positionen ebenfalls (mit dem letzten gesetzten Wert) verfügbar (durch scope=“global”). In den vorhergehenden Positionen jedoch nicht!
Die Variable ist auch im Auftrags-Appendix verfügbar - jedoch nicht in der Auftrags-Beschreibung (da diese VOR den Positionen kommt).
Beispiel siehe FAQ: Positionsgruppen/Text mit Variable
Einige Variablen stehen grundsätzlich zur Verfügung.
Siehe Variablen Übersicht
Hierzu gehören unter anderem:
Die Variablen lassen sich größtenteils in der von smarty bekannten Syntax ausgeben bzw. verwenden - siehe http://www.smarty.net/docs/en/language.syntax.variables.tpl
ACHTUNG:
Entgegen der Angabe in der smarty Dokumentation werden Variablen und Funktionen mit 2 eckigen Klammern aufgerufen.
Also z.B. Aufruf einer Funktion [[funktion parameter="wert"]] ODER Ausgabe einer Variable [[$variable]]
Beispiel: Verwendung des Firmennamens als Variable
Vielen Dank für Ihren Auftrag, Ihr [[$CONFIGURATION.ownCompany]] Team
Für die Zahlungsanweisung an den Kunden kann z.B. in der Bankverbindung (Einstellungen → Eigene Firmendaten → Bankverbindung) nochmals auf den Gesamtpreis und die Rechnungsnummer als Verwendungszweck verwiesen werden.
Das aktuelle Objekt ist über die Variable [[$obj.<fieldname>]] zugreifbar.
Beispiel: Bankverbindung mit Verwendungszweck Angabe:
Bitte überweisen Sie den offenen Rechnungsbetrag von <b>[[$obj.price_wtax|d2bcurrency]]</b> auf unser Konto und geben Sie als Verwendungszweck die Rechnungsnummer <b>[[$obj._objref]]</b> an.
In diesem Beispiel wird auch die Schriftstil-Formatierung mit <b> verwendet.
Zusätzlich kommt ein Modifikator d2bcurrency zur Verwendung, der eine Zahl als Euro Betrag mit Tausendertrennzeichen und Komma formatiert.
TIPP: Ein vollständiger Code der auch unterschiedliche Zahlungsarten berücksichtigt findet sich hier: Zahlungsart in Bankverbindung verwenden
Die Funktion [[getobject]] erlaubt das Holen von Daten eines Objekts aus der Datenbank.
Ein Objekt kann hierbei ein Angebot/Auftrag/Rechnung sein, aber auch andere Objekte wie resource oder article.
Beispiel: Holen einer resource mit Namen und Verwendung der Beschreibung description:
Ihr Projektleiter: [[getobject module="resource" by="name" name="Leo Eibler" assign="projectmgr"]] [[$projectmgr.description|nl2br]]
Eine Übersicht der gängigsten Variablen:
ACHTUNG: Immer Groß- und Kleinschreibung beachten!
$CONFIGURATION | Die systemweite Konfigurations-Variable $CONFIGURATION ist ein assoziatives Array mit Systemeinstellungen, Standardtexten, etc. |
$obj | Das aktuelle Objekt (Angebot, Auftrag, Rechnung) als assoziatives Array |
Beispiele:
$CONFIGURATION.ownCompany | Eigener Firmenname: Einstellung → Eigene Firmendaten |
$CONFIGURATION.ownAddress | Eigene Firmen Adresse (mit Newlines): Einstellung → Eigene Firmendaten |
$CONFIGURATION.ownTelephone | Eigene Firmen Telefon Nummer: Einstellung → Eigene Firmendaten |
$CONFIGURATION.ownFax | Eigene Firmen Fax Nummer: Einstellung → Eigene Firmendaten |
$CONFIGURATION.ownMail | Eigene Firmen Mailadresse: Einstellung → Eigene Firmendaten |
$CONFIGURATION.ownWeb | Eigene Firmen Internetseite: Einstellung → Eigene Firmendaten |
$CONFIGURATION.ownUID | Eigene Umsatzsteuer ID: Einstellung → Eigene Firmendaten |
$CONFIGURATION.ownBankIBAN | Eigene Bankverbindung IBAN: Einstellung → Eigene Firmendaten |
$CONFIGURATION.ownBankBIC | Eigene Bankverbindung BIC: Einstellung → Eigene Firmendaten |
$CONFIGURATION.ownBankOwner | Eigene Bankverbindung Inhaber: Einstellung → Eigene Firmendaten |
$CONFIGURATION.ownBankAccount | Eigene Bankverbindung: Einstellung → Druck → Standard Texte |
$CONFIGURATION.useInvoicePdfOwnBankAccountHeadline | Überschrift Rechnung Bankverbindung: Einstellung → Druck → Standard Texte |
$CONFIGURATION.useInvoicePdfOwnBankAccountHeadline_EN | Überschrift Rechnung Bankverbindung (Englisch): Einstellung → Druck → Standard Texte |
$CONFIGURATION.ownBankAccount_EN | Eigene Bankverbindung (Englisch): Einstellung → Druck → Standard Texte |
$ANREDE | Für Angebot, Auftrag und Rechnung automatisch generierte Anrede per-Sie z.B. “Sehr geehrter Herr Ing. Max Mustermann, MSc” |
$ANREDE_DU | Für Angebot, Auftrag und Rechnung automatisch generierte Anrede per-Du z.B. “Lieber Max” |
$SALUTATION | Für Angebot, Auftrag und Rechnung automatisch generierte Anrede in englisch per-Sie z.B. “Dear Mr. Ing. Max Mustermann, MSc” |
$SALUTATION_DU | Für Angebot, Auftrag und Rechnung automatisch generierte Anrede in englisch per-Du z.B. “Hello Max” |
$PDF_LINK | Für Angebot, Auftrag und Rechnung direkter Link auf das PDF aufrufbar durch den Kunden |
$time | Aktuelles Datum/Uhrzeit als Unixtimestamp (Sekunden seit 1.1.1970 UTC) - siehe 'date_format' |
$obj | Das aktuelle Haupt-Objekt (z.B. Angebot, Auftrag, Rechnung) als assoziatives Array |
$obj.id | Aktuelle interne numerische ID des Objekts (ohne Objektkürzel) - z.B. bei Angebot interne Angebots-ID 1234, bei Auftrag interne Auftrags-ID 1234 oder bei Rechnung interne Rechnungs-ID 1234 |
$obj._ref | Aktuelle interne Referenz-ID des Objekts (mit internem Objektkürzel) - z.B. bei Angebot interne Angebots-Referenz-ID xo1234, bei Auftrag interne Auftrags-Referenz-ID xn1234 oder bei Rechnung interne Rechnungs-ID xr1234 |
$obj._objref | Aktuelle Referenz-Nummer des Objekts lt. Nummernkreise - z.B. bei Angebot Angebotsnr. o1234, bei Auftrag Auftragsnr n1234 oder bei Rechnung Rechnungsnr r1234 Siehe auch Einstellungen Nummernkreise |
$obj.price | Ursprungspreis netto ohne Mehrwertsteuer. |
$obj.price_wdiscount | Rabattierter Preis netto ohne Mehrwertsteuer. |
$obj.price_wtax | End-Preis mit Mehrwertsteuer. Kann mit Tausendertrennzeichen und 2 Nachkommastellen formatiert werden mit [[$obj.price_wtax|d2bCurrency]] |
$obj.tax_portion_a | Mehrwertsteuer für Satz-A (mit _b für Satz-B usw) |
$obj.summary | Überschrift |
$obj.description | Beschreibung |
$obj.appendix | Appendix |
$obj.startdate | Start Datum als Unix-Timestamp. Kann zu lesbaren Datum formatiert werden mit [[$obj.startdate|ut2humandate]] |
$obj.enddate | End Datum als Unix-Timestamp. Kann zu lesbaren Datum formatiert werden mit [[$obj.enddate|ut2humandate]] |
$obj.invoice_dt | Nur bei Rechnung: Rechnungsdatum als Unix-Timestamp. Kann zu lesbaren Datum formatiert werden mit [[$obj.invoice_dt|ut2humandate]] |
$obj.duepayment_dt | Nur bei Rechnung: Zahlungsziel als Unix-Timestamp. Kann zu lesbaren Datum formatiert werden mit [[$obj.duepayment_dt|ut2humandate]] |
$obj.created_user | Benutzer der das Objekt (z.B. Angebot) angelegt hat |
$obj.created_user__email | Email Adresse des Benutzer der das Objekt (z.B. Angebot) angelegt hat |
$obj.modified_user | Benutzer der das Objekt (z.B. Angebot) zuletzt geändert hat |
$obj.modified_user__email | Email Adresse des Benutzer der das Objekt (z.B. Angebot) zuletzt geändert hat |
$obj.projectmgr_user | Projektleiter Benutzer der dem Objekt zugeordnet ist - siehe FAQ: Projektleiter |
$obj.projectmgr_user__email | Email Adresse des Projektleiter Benutzers |
$obj.customer | Die Referenz zum Kundenstammdatensatz |
$obj.customer___objref | Kundennummer (ACHTUNG: 3 Unterstriche!) |
$obj.customer__language | Sprache des Kunden: 0=Standard (Deutsch), 1=Deutsch, 2=Englisch |
$obj.site_name | Zusammengesetzter Kundenname für das jeweilige Objekt (Achtung: muss nicht identisch mit dem Stammdatensatz sein) |
$obj.site_company | Firmenname für das jeweilige Objekt (Achtung: muss nicht identisch mit dem Stammdatensatz sein) |
$obj.site_title | Anrede des Kunden: 0=Unbekannt/nicht gepflegt, 1=Herr, 2=Frau, 4=Familie |
$obj.site_firstname | Vorname für das jeweilige Objekt (Achtung: muss nicht identisch mit dem Stammdatensatz sein) |
$obj.site_lastname | Nachname für das jeweilige Objekt (Achtung: muss nicht identisch mit dem Stammdatensatz sein) |
$obj.site_cashdiscount_percent | Skonto Prozent - siehe Zahlungskonditionen/Skonto |
$obj.site_duepayment_days | Zahlungsziel Tage (bei einer Rechnung wird das beim Versand nach Auswahl des Zahlungsziel automatisch angepasst) - siehe Zahlungskonditionen/Skonto |
$obj.site_cashdiscount_days | Skonto (Tage) - siehe Zahlungskonditionen/Skonto |
$obj.site_paymethod | Zahlungsart (interner Code 0=Überweisung/Rechnung, 11=Einziehungsauftrag, 15=Nachnahme, 18=Vorkasse) - siehe Zahlungskonditionen/Skonto |
$obj.site_tax | Flag ob Inlands-Steuersatz angewendet wird (20) oder keine Steuer (0). Hinweis: Dies ist NICHT der Steuersatz sondern nur eine Kennzeichnung ob Steuersätze grundsätzlich angewendet werden. |
$obj.site_country_code2 | 2 stelliger ISO 3166-2 Ländercode |
$obj.delivery_dt | Rechnung: Leistungszeitraum Start Datum, Auftrag: Auftragsbeginn Datum - als Unix-Timestamp. Kann zu lesbaren Datum formatiert werden mit [[$obj.delivery_dt|ut2humandate]] |
$obj.deliveryend_dt | Rechnung: Leistungszeitraum Ende Datum, Auftrag: Auftragsende Datum - als Unix-Timestamp. Kann zu lesbaren Datum formatiert werden mit [[$obj.delivery_dt|ut2humandate]] |
$position | Die aktuelle Position (nur innerhalb einer Position sinnvoll) |
$position.posnr | Die Positionsnummer der aktuellen Position |
$position.amount | Die Anzahl der aktuellen Position |
$position.price | Ursprungspreis netto ohne Mehrwertsteuer der aktuellen Position |
$position.price_wdiscount | Rabattierter Preis netto ohne Mehrwertsteuer der aktuellen Position |
$position.price_wtax | End-Preis mit Mehrwertsteuer der aktuellen Position. Kann mit Tausendertrennzeichen und 2 Nachkommastellen formatiert werden mit [[$position.price_wtax|d2bCurrency]] |
Eine Übersicht der gängigsten Modifikatoren:
escape | Sollte immer bei allen Textfeldern benutzt werden und entfernt HTML Steuerzeichen - z.B. [[$obj.summary|escape]] |
d2bCurrency | Formatierung von Euro Beträgen mit Tausenderpunkt und Kommazeichen - z.B. [[$obj.price_wtax|d2bCurrency]] |
date_format | formatiert eine Unixtimestamp Zeitangabe - z.B. [[$obj.invoice_dt|date_format:"%d.%m.%Y"]] %d = Tag, %m = Monat, %Y = Jahr 4 stellig |
nl2br | Sorgt für einen Zeilenumbruch im PDF, falls die Eingabevariable einen Zeilumbruch beinhaltet - z.B. [[$projectmgr.description|escape|nl2br]](inkl. escape, damit andere HTML Steuerzeichen unterbunden werden - WICHTIG: escape muss VOR nl2br kommen, da sonst der HTML Code für den Zeilenumbruch ebenfalls entfernt wird ) |
Eine Übersicht der gängigsten Funktionen:
addimg | Die Funktion [[addimg]] fügt ein Bild in das PDF ein - siehe PDF Power-User Funktionen: Einfügen von Bildern aus Attachments |
getobject | Die Funktion [[getobject]] holt Daten zu einem Objekt - siehe oben: Details: Holen eines Objekts |
setskip | Die Funktion [[setskip]] wird nur bei der Abbruchbedingung für Erinnerung-Emails mittels Zeitaktionen verwendet. |
Die Variablen sind immer in [[ und ]] einzufassen.
Also z.B. um den eigenen Firmennamen zu verwenden: [[$CONFIGURATION.ownCompany]]
Die Variablen werden in PDFs (z.B. bei der Angebotsbeschreibung, Auftragsbeschreibung, Rechnungsbeschreibung, Annex, etc.) als auch bei den Email Zusatz-Texten und Dokument Vorlagen für Textblöcke und Emails ausgewertet.
Siehe auch Email zusätzlicher Text und Anhänge.
Soehe auch Dokument Vorlagen für Textblöcke und Emails.
Nachfolgend finden sich Beispiele für den Variablen Einsatz.
Mit folgendem Schnipsel in den Angebots-Standardtexten (siehe Einstellung → Druck → Standard Texte ) wird die Gültigkeit (hier 14 Tage) automatisch berechnet und als Datum ausgewiesen.
Die 14 Tage lassen sich beliebig verändern, in dem in der Formel 14 durch die Anzahl an Tage ersetzt wird.
Angebot gültig bis [[($time+14*86400)|date_format:"%d.%m.%Y"]]
In diesem Beispiel wird die Anrede (Sehr geehrter Herr, Sehr geehrte Frau, Sehr geehrte Damen und Herren) automatisch korrekt aufgrund der Variablen gesetzt.
HINWEIS: Üblicherweise sollte direkt die Variable “[[$ANREDE]]” verwendet werden.
Weiters wird das Hauptbild des Angebots mit [ [ addimg ] ] eingefügt (siehe Einfügen von Bildern aus Attachments).
Zum Abschluss wird der Benutzer, der das Angebot erstellt hat automatisch eingefügt sowie die Firmentelefonnummer und der Firmenname.
Sehr geehrte[[if $obj.site_name != ""]][[if $obj.site_title == 0]](r)[[elseif $obj.site_title == 1]]r[[/if]] [[$obj.site_name]][[else]] Damen und Herren[[/if]], vielen Dank für Ihre Anfrage zu unseren Leistungen. Anbei finden Sie unser Angebot. [[addimg]] Falls das Angebot noch nicht zur Gänze Ihren Wünschen entspricht, zögern Sie nicht Ihren persönlichen Betreuer [[$obj.created_user__firstname]] [[$obj.created_user__lastname]] unter [[$CONFIGURATION.ownTelephone]] zu kontaktieren. Ihre [[$CONFIGURATION.ownCompany]]
Resultat:
Das folgende Beispiel kann in den Rechnungsstandardtext eingefügt werden und erkennt automatisch ob es sich um eine steuerfreie Bauleistung im österreichischem Inland handelt oder eine steuerfreie Lieferung im EU Ausland.
[[if $obj.site_tax == 0 AND ( $obj.site_country_code2 == '' OR $obj.site_country_code2 == 'AT' )]] §19 Reverse Charge Bauleistungen [[else if $obj.site_tax == 0]] §19 Reverse Charge innergemeinschaftliche Lieferung [[else]] [[/if]]
Das System schickt eine Email an die Firmenmailadresse, wenn ein Kunde im Bestellportal ein Angebot beauftragt oder abgelehnt hat - siehe FAQ: Email bei Angebotsbeauftragung.
Alternativ dazu kann das System auch einen Slack Channel Post machen - siehe FAQ: Nachrichten in SLACK Channel.
Das System schickt eine Email, wenn eine Lieferantenbestellung als Erhalten markiert wird - siehe FAQ: Projektleiter