Obsah šablony |
#37 |
Do page.mustache vložíme obsah šablony. Nadefinujeme si zde, co se bude na faktuře zobrazovat. Data se budou nahrávat z tabulek.
Pro zobrazení dat, ze kterých budeme obsah dokladu nahrávat si můžeme stáhnout json některého z dokladů, abychom nemuseli hledat v tabulkách. V souboru se nám zobrazí stromová struktura s jednotlivými sloupci tabulky, ze kterých budeme moci data čerpat.
Pro stáhnutí souboru si v databázi najdeme libovolný doklad a necháme si zobrazit jeho pdf. Poté zkopírujeme jeho url, otevřeme v prohlížeči novou kartu a url vložíme. Za url doplníme ?saveas=json a potvrdíme entrem. Do počítače se nám stáhne soubor, který otevřeme. Nyní již vidíme zdroje dat, ze kterých budeme brát id pro načítání dat.
Stejným způsobem lze vygenerovat html kód pro daný doklad.
Data dokladu
Zde je příklad načtení dat pro jméno osoby, která je na faktuře zadaná jako odběratel:
{{data.person.fullName}}
Příkaz vytvoříme následujícím způsobem:
Na začátek příkazu vložíme data. a poté přidáme id daného místa, ze kterého budeme čerpat. Pokud jsme si stáhli json soubor a máme ho otevřený, najdeme si ve stromu dané místo (zde je to person) a ze složených závorek k němu vybereme ještě upřesněný, který konkrétní údaj (sloupec tabulky) si přejeme načíst.
V některých případech budeme muset použít příkaz, ve kterém půjdeme do více tabulek/na více míst. Příklad může být tento:
{{data.owner.address.city}}
Zde se nejdříve musíme dozvědět osobu z tabulky Osoby a následně město z tabulky Adresy.
Pokud máme otevřený soubor, najdeme si person (samostatné jako první ve stromu, ne jako sloupec jiné tabulky). Abychom dostali město Vlastní osoby, najdeme si v závorce ve stromu ještě lists a poté address. Přidáním address. vstoupíme do další tabulky, ze které nyní již můžeme odkázat na sloupec city. Kdybychom použili jen data.person.city, data by se nenašla.
Zde je přehled tabulek, které budeme používat. V ID tabulky najdeme ID pro tabulku. Po kliknutí na něj se nám otevře přehled celé tabulky, ze kterého si následně vybereme ID pro sloupec, ze kterého budeme data brát.
ID tabulky | Funkce tabulky |
head | Doklady |
person | Osoby |
owner | Vlastní osoba (tabulky Osoby) |
author | Vystavil (tabulka Osoby) |
rows | Řádky dokladu |
invrows | Řádky dokladu (Příjemka, Výdejka) |
myBankPerson | Bankovní spojení vlastní osoby |
myBankAccount | Účet vlastní osoby z Vlastního bankovního spojení |
ros | Data o EET z tabulek Registrace k EET a Evidence tržeb |
docs_properties | Vlastnosti dokladů (např. Poznámka externí) |
taxes | Daně dokladů |
additions | Dodatky dokladů |
Ostatní data
ID | Funkce |
spayed | Vytvoří QR kód pro platbu (viz níže) |
flags | Pomocné data (cizí měna, daně,…) |
documentName | Typ (jméno) dokladu (např. Faktura vydaná) |
reportTexts | Texty na dokladech (za tečku upřesníme kde se text nachází) |
taxNotes | Poznámky ohledně daně za tabulkou pro shrnutí daně |
additionsExists | Dodatky dokladů |
Výše byl příklad jednoduchého načtení informací. Když použijeme tento jednoduchý kód, informace se zobrazí vždy. Tady je příklad pro variabilní a specifický symbol, kdy použijeme dva způsoby kódu, které budou mít jiné výsledky:
{{@dict;Variabilní symbol}}:</td><td class='value'>{data.head.symbol1}}
{{#data.head.symbol2}}
{ {@dict;Specifický symbol}}:</td><td class='value'>{{data.head.symbol2}}
{{/data.head.symbol2}}
Tímto docílíme, že řádek pro Variabilní symbol se zobrazí vždy, i přes to že na faktuře variabilní symbol zadaný nebude. Na řádku bude „Variabilní symbol: “.
Pokud však Specifický symbol nebude ve faktuře vyplnění, po použití tohoto kódu se na faktuře řádek pro něj nezobrazí.
Pokud potřebujeme vložit možnost buď/nebo, použijeme tento kód:
{{#data.head.correctiveDoc}}
<span class='documentName'>{{@dict;Opravný daňový doklad}}</span>
{{/data.head.correctiveDoc}}
{{^data.head.correctiveDoc}}
<span class='documentName'>{{@dict;Faktura - daňový doklad}}</span>
{{/data.head.correctiveDoc}}
V tomto příkladu chceme vytvořit nadpis pro fakturu. První možnost začneme znakem # a druhou znakem ^. Druhá možnost se vyplní pokud nebude platit první.
Řádky faktury
Pro řádky vytvoříme tabulku, které jako první vytvoříme hlavičku a poté ji začneme naplňovat.
<table id='rows'>
<thead>
<tr>
<th>{{@dict;Položka}}</th>
<th>{{@dict;Kód p.}}</th>
<th class='number'>{{@dict;Množství}}</th>
<th>{{@dict;Jed.}}</th>
{{#data.head.taxPayer}}
<th class='number'>% {{@dict;DPH}}</th>
{{/data.head.taxPayer}}
<th class='number'>{{@dict;Cena/jed.}}</th>
<th class='number'>{{@dict;Cena celkem}}</th>
</tr>
</thead>
{{#data.rows}}
<tr>
<td>{{text}}{ {#additionsMarks}}<sup> {{additionsMarks}}</sup>{{/additionsMarks}}</td>
<td>{{itemID}}</td>
<td class='number'>{{quantity}}</td>
<td>{{@dict;dataItem:print.unit}}</td>
{{#data.head.taxPayer}}
<td class='number'>{{taxPercents}}</td>
{{/data.head.taxPayer}}
<td class='number'>{{print.priceItem}}</td>
<td class='number'>{{print.priceAll}}</td>
</tr>
{{/data.rows}}
</table>
- < td class=‚number‘> použijeme, když se údaj týká čísla. To se nám poté naformátuje.
- additionsMarks jsou dodatky dokladů.
QR kód
{{#data.spayd}}
<div id='spayd'>
<img src="{{spaydQRCodeFullFileName}}"/>
{{@dict;QR platba}}
</div>
{{/data.spayd}}