offer-cube:howto:pdf-special-variables
no way to compare when less than two revisions
Differences
This shows you the differences between two versions of the page.
| — | offer-cube:howto:pdf-special-variables [2025/06/11 17:59] (current) – created - external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | ====== offer-cube / PDF Power-User Funktionen: Variablen und Funktionen ====== | ||
| + | |||
| + | Zurück zur [[offer-cube: | ||
| + | |||
| + | Siehe auch [[offer-cube: | ||
| + | Siehe auch [[offer-cube: | ||
| + | Siehe auch [[offer-cube: | ||
| + | Siehe auch [[offer-cube: | ||
| + | Siehe auch [[offer-cube: | ||
| + | Siehe auch [[offer-cube: | ||
| + | Siehe auch [[offer-cube: | ||
| + | Siehe auch [[offer-cube: | ||
| + | |||
| + | **Beispiele: | ||
| + | |||
| + | Siehe auch [[offer-cube: | ||
| + | Siehe auch [[offer-cube: | ||
| + | Siehe auch [[offer-cube: | ||
| + | Siehe auch [[offer-cube: | ||
| + | |||
| + | ===== Allgemeines / Zusammenfassung ===== | ||
| + | |||
| + | Die PDF Erweiterungen für Power-User ermöglichen folgende Funktionalitäten (link auf die entsprechenden Dokumente): | ||
| + | * [[offer-cube: | ||
| + | * [[offer-cube: | ||
| + | * [[offer-cube: | ||
| + | * [[offer-cube: | ||
| + | * [[offer-cube: | ||
| + | |||
| + | Hier in diesem Dokument werden speziell folgende Funktionalitäten erläutert: | ||
| + | * [[offer-cube: | ||
| + | * [[offer-cube: | ||
| + | |||
| + | Gesteuert werden diese Funktionen über Funktionsaufrufe, | ||
| + | Hier gibt es die Möglichkeit Daten von Objekten (z.B: Gesamtpreis, | ||
| + | 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/ | ||
| + | * Angebote/ | ||
| + | * Position: Felder " | ||
| + | * Artikel: Feld " | ||
| + | |||
| + | Variablen/ | ||
| + | |||
| + | ** ACHTUNG: ** seit Build 313 (2020-06-01) muss **_objref** statt _ref verwendet werden | ||
| + | |||
| + | ===== Details: Variablen zuweisen ===== | ||
| + | |||
| + | Mit **< | ||
| + | |||
| + | Das " | ||
| + | |||
| + | **Hinweis: | ||
| + | Das bedeutet, die Variable $styp ist in allen nachfolgenden Positionen ebenfalls (mit dem letzten gesetzten Wert) verfügbar (durch scope=" | ||
| + | Die Variable ist auch im Auftrags-Appendix verfügbar - jedoch nicht in der Auftrags-Beschreibung (da diese VOR den Positionen kommt). | ||
| + | |||
| + | Beispiel siehe [[offer-cube: | ||
| + | |||
| + | ===== Details: vorhandene Variablen ===== | ||
| + | |||
| + | Einige Variablen stehen grundsätzlich zur Verfügung. | ||
| + | |||
| + | Siehe [[offer-cube: | ||
| + | |||
| + | Hierzu gehören unter anderem: | ||
| + | * ** $SCHEMA ** die Referenz auf das gesamte Datenbank Schema - siehe [[offer-cube: | ||
| + | * ** $CONFIGURATION ** die aktuelle Systemkonfiguration / Systemvariablen - siehe [[offer-cube: | ||
| + | * ** $obj ** das aktuelle Hauptobjekt (siehe Angebot [[offer-cube: | ||
| + | |||
| + | ===== Details: Variablen ausgeben ===== | ||
| + | |||
| + | Die Variablen lassen sich größtenteils in der von smarty bekannten Syntax ausgeben bzw. verwenden - siehe [[http:// | ||
| + | |||
| + | **ACHTUNG: | ||
| + | **Entgegen der Angabe in der smarty Dokumentation werden Variablen und Funktionen mit 2 eckigen Klammern aufgerufen.** | ||
| + | |||
| + | Also z.B. Aufruf einer Funktion //< | ||
| + | |||
| + | **Beispiel: Verwendung des Firmennamens als Variable** | ||
| + | < | ||
| + | Vielen Dank für Ihren Auftrag, | ||
| + | Ihr [[$CONFIGURATION.ownCompany]] Team | ||
| + | </ | ||
| + | |||
| + | {{: | ||
| + | |||
| + | |||
| + | ==== Anwendungsbeispiel: | ||
| + | |||
| + | Für die Zahlungsanweisung an den Kunden kann z.B. in der Bankverbindung (// | ||
| + | |||
| + | Das aktuelle Objekt ist über die Variable //< | ||
| + | |||
| + | **Beispiel: Bankverbindung mit Verwendungszweck Angabe:** | ||
| + | < | ||
| + | Bitte überweisen Sie den offenen Rechnungsbetrag von < | ||
| + | </ | ||
| + | |||
| + | {{: | ||
| + | |||
| + | In diesem Beispiel wird auch die [[offer-cube: | ||
| + | |||
| + | Zusätzlich kommt ein Modifikator // | ||
| + | |||
| + | **TIPP:** Ein vollständiger Code der auch unterschiedliche Zahlungsarten berücksichtigt findet sich hier: [[offer-cube: | ||
| + | |||
| + | ===== Details: Holen eines Objekts mit [[getobject]] ===== | ||
| + | |||
| + | Die Funktion // < | ||
| + | Ein Objekt kann hierbei ein Angebot/ | ||
| + | |||
| + | **Beispiel: Holen einer // | ||
| + | < | ||
| + | Ihr Projektleiter: | ||
| + | [[$projectmgr.description|nl2br]] | ||
| + | </ | ||
| + | |||
| + | {{: | ||
| + | |||
| + | ===== Details: Variablen Übersicht ===== | ||
| + | |||
| + | Eine Übersicht der gängigsten Variablen: | ||
| + | |||
| + | **ACHTUNG: Immer Groß- und Kleinschreibung beachten!** | ||
| + | |||
| + | | // $CONFIGURATION // | Die systemweite Konfigurations-Variable $CONFIGURATION ist ein assoziatives Array mit Systemeinstellungen, | ||
| + | | // $obj // | Das aktuelle Objekt (Angebot, Auftrag, Rechnung) als assoziatives Array | | ||
| + | |||
| + | Beispiele: | ||
| + | |||
| + | | // $CONFIGURATION.ownCompany // | Eigener Firmenname: // | ||
| + | | // $CONFIGURATION.ownAddress // | Eigene Firmen Adresse (mit Newlines): // | ||
| + | | // $CONFIGURATION.ownTelephone // | Eigene Firmen Telefon Nummer: // | ||
| + | | // $CONFIGURATION.ownFax // | Eigene Firmen Fax Nummer: // | ||
| + | | // $CONFIGURATION.ownMail // | Eigene Firmen Mailadresse: | ||
| + | | // $CONFIGURATION.ownWeb // | Eigene Firmen Internetseite: | ||
| + | | // $CONFIGURATION.ownUID // | Eigene Umsatzsteuer ID: // | ||
| + | | // $CONFIGURATION.ownBankName // | Eigene Bankverbindung Bankinstitut: | ||
| + | | // $CONFIGURATION.ownBankIBAN // | Eigene Bankverbindung IBAN: // | ||
| + | | // $CONFIGURATION.ownBankBIC // | Eigene Bankverbindung BIC: // | ||
| + | | // $CONFIGURATION.ownBankOwner // | Eigene Bankverbindung Inhaber: // | ||
| + | | // $CONFIGURATION.ownBankAccount // | Eigene Bankverbindung: | ||
| + | | // $CONFIGURATION.useInvoicePdfOwnBankAccountHeadline // | Überschrift Rechnung Bankverbindung: | ||
| + | | // $CONFIGURATION.useInvoicePdfOwnBankAccountHeadline_EN // | Überschrift Rechnung Bankverbindung (Englisch): // | ||
| + | | // $CONFIGURATION.ownBankAccount_EN // | Eigene Bankverbindung (Englisch): // | ||
| + | | // $ANREDE // | Für Angebot, Auftrag und Rechnung automatisch generierte Anrede per-Sie z.B. "// | ||
| + | | // $ANREDE_DU // | Für Angebot, Auftrag und Rechnung automatisch generierte Anrede per-Du z.B. "// | ||
| + | | // $SALUTATION // | Für Angebot, Auftrag und Rechnung automatisch generierte Anrede in englisch per-Sie z.B. "// | ||
| + | | // $SALUTATION_DU // | Für Angebot, Auftrag und Rechnung automatisch generierte Anrede in englisch per-Du z.B. "// | ||
| + | | // $PDF_LINK // | Für Angebot, Auftrag und Rechnung direkter Link auf das PDF aufrufbar durch den Kunden | | ||
| + | | // $time // | Aktuelles Datum/ | ||
| + | | // $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._type // | Aktueller Objekttype des Objekts - z.B. bei Angebot //offer//, bei Auftrag //order// oder bei Rechnung //invoice// | | ||
| + | | // $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. [[offer-cube: | ||
| + | | // $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.modified_user // | Benutzer der das Objekt (z.B. Angebot) **zuletzt geändert** hat | | ||
| + | | // < | ||
| + | | // $obj.projectmgr_user // | Projektleiter Benutzer der dem Objekt zugeordnet ist - siehe [[offer-cube: | ||
| + | | // < | ||
| + | | // $obj.customer // | Die Referenz zum Kundenstammdatensatz | | ||
| + | | // < | ||
| + | | // < | ||
| + | | // $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/ | ||
| + | | // $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 | ||
| + | | // $obj.site_duepayment_days // | Zahlungsziel Tage (bei einer Rechnung wird das beim Versand nach Auswahl des Zahlungsziel automatisch angepasst) - siehe [[offer-cube: | ||
| + | | // $obj.site_cashdiscount_days // | Skonto (Tage) - siehe [[offer-cube: | ||
| + | | // $obj.site_paymethod // | Zahlungsart (interner Code 0=Überweisung/ | ||
| + | | // $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]] %%// | | ||
| + | | // $obj.order // | Rechnung/ | ||
| + | | // $obj.invoice // | Angebot/ | ||
| + | | // $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. < | ||
| + | | // d2bCurrency // | Formatierung von Euro Beträgen mit Tausenderpunkt und Kommazeichen - z.B. < | ||
| + | | // date_format // | formatiert eine Unixtimestamp Zeitangabe - z.B. < | ||
| + | | // nl2br // | Sorgt für einen Zeilenumbruch im PDF, falls die Eingabevariable einen Zeilumbruch beinhaltet - z.B. < | ||
| + | |||
| + | Eine Übersicht der gängigsten Funktionen: \\ | ||
| + | |||
| + | | // addimg // | Die Funktion //< | ||
| + | | // getobject // | Die Funktion //< | ||
| + | | // setskip // | Die Funktion //< | ||
| + | |||
| + | |||
| + | 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, | ||
| + | |||
| + | Siehe auch [[offer-cube: | ||
| + | Soehe auch [[offer-cube: | ||
| + | |||
| + | |||
| + | |||
| + | ===== Beispiele ===== | ||
| + | |||
| + | Nachfolgend finden sich Beispiele für den Variablen Einsatz. | ||
| + | |||
| + | ==== Beispiel: Angebot Gültigkeit ==== | ||
| + | |||
| + | Mit folgendem Schnipsel in den Angebots-Standardtexten (siehe // | ||
| + | Die 14 Tage lassen sich beliebig verändern, in dem in der Formel 14 durch die Anzahl an Tage ersetzt wird. \\ | ||
| + | |||
| + | < | ||
| + | |||
| + | ==== Beispiel: Angebot Anrede ==== | ||
| + | |||
| + | 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 "//< | ||
| + | |||
| + | Weiters wird das // | ||
| + | |||
| + | 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 != "" | ||
| + | |||
| + | 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: | ||
| + | |||
| + | {{: | ||
| + | |||
| + | |||
| + | ==== Beispiel: Rechnung Reverse Charge, i.g. Lieferung automatischer Text ==== | ||
| + | |||
| + | 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 == '' | ||
| + | [[else if $obj.site_tax == 0]] §19 Reverse Charge innergemeinschaftliche Lieferung | ||
| + | [[else]] [[/if]] | ||
| + | </ | ||
| + | |||
| + | ==== Beispiel: Benachrichtigung bei Angebot beauftragt oder abgelehnt ==== | ||
| + | |||
| + | Das System schickt eine Email an die Firmenmailadresse, | ||
| + | |||
| + | Alternativ dazu kann das System auch einen Slack Channel Post machen - siehe [[offer-cube: | ||
| + | |||
| + | ==== Beispiel: Benachrichtigung an Projektleiter bei Erhalten der Artikel einer Lieferantenbestellung ==== | ||
| + | |||
| + | Das System schickt eine Email, wenn eine Lieferantenbestellung als // | ||
| + | |||
| + | ==== Beispiel: Tabelle mit Liste der Artikel mit Bilder, Beschreibung und Preis ==== | ||
| + | |||
| + | Das nachfolgende Beispiel fügt nochmal eine Tabelle ein, die alle Artikel mit Bilder, Beschreibung und rabattiertem Einheitspreis enthält. | ||
| + | |||
| + | < | ||
| + | <p> | ||
| + | [[foreach from=$positionList item=" | ||
| + | [[foreach from=$posIt._articlelist item=" | ||
| + | < | ||
| + | <table width=" | ||
| + | <tr> | ||
| + | <td width=" | ||
| + | <img src=" | ||
| + | </td> | ||
| + | <td width=" | ||
| + | <td width=" | ||
| + | < | ||
| + | [[$aiIt.description]] | ||
| + | </td> | ||
| + | <td width=" | ||
| + | < | ||
| + | </td> | ||
| + | </tr> | ||
| + | </ | ||
| + | [[/ | ||
| + | [[/ | ||
| + | </p> | ||
| + | </ | ||
| + | |||
| + | {{: | ||
offer-cube/howto/pdf-special-variables.txt · Last modified: by 127.0.0.1
