Přidání pole do modrých tiskopisů pro ABRA FlexiBee

Již dříve jsem publikoval sadu "modrých" tiskopisů pro ABRA FlexiBee. Problém u nich ale je v tom, že každý uživatel potřebuje na tiskopisu nějaké jiné, jím využívané, pole. Některé firmy potřebují Číslo smlouvy, jiné Zakázku a představy dalších jsou ještě divočejší. Umožnil jsem tedy celkem jednoduše tiskopisy lehce editovat. Jak na to?

Výchozí vzhled tiskopisu "modré" faktury vypadá takto

Neupravena faktura


Jednoduchý a úsporný layout, který obsahuje všechna pole, bez kterých by faktura nebyla fakturou. Co když ale zákazník potřebuje mít na faktuře nějaké další informace? Většinou jsem se setkal s potřebou, aby tiskopis obsahoval Číslo smlouvy, Zakázku, Kontaktní informace atd.
Standardní tiskopis faktury ve FlexiBee tyto informace obsahuje, ale většina firem je nevyužívá všechny. To má za následek velké množství prázdných a zbytečných polí. Navíc jsou tato pole v tiskopisu napevno lokalizována a není tedy možnost využít je na jakékoliv jiné bohulibé účely.
U "modrých" tiskopisů je to ale jinak. Výchozí layout je opravdu nejjednodušší možný. Existuje však možnost, jak si pole do tiskopisu přidat, aniž by bylo nutné upravovat ho v iReportu.

Pro doplňování uživatelských polí jsou připraveny tři oblasti

Upravena faktura custom parts


1. a 2. jsou v části hlavičky a prodlužují oblast s bankovním účtem a datumovou oblast. Do těchto částí je možné vložit zakázku, číslo smlouvy, číslo objednávky nebo informace z Nastavení firmy např. telefonní číslo, webové stránky a emailovou adresu.
3. oblast následuje za každou položkou a je tedy použitelná pro informace z položky. V této oblasti je možné zobrazit výrobní čísla, šarži, expiraci nebo kód produktu.

Popisek každého přidaného pole může být lokalizován do 4 různých jazyků. Je to stejný princip, jaký se používá napříč celým FlexiBee. Tyto jazyky je možné nadefinovat v Nastavení firmy na záložce Legislativa.

Nastaveni jazyku


Vlastnost přidávání polí do tiskopisu alespoň částečně řeší nemožnost přidávat si do FlexiBee uživatelská pole. Chybí Vám pole na nějakou textovou informaci? Zapište ji například do pole Dodací list a v tiskopisu si popisek tohoto pole nastavte jaký potřebujete.

Jak pole do tiskopisu přidat?

Dlouho (několik dní) jsem nad správným řešením tohoto problému přemýšlel. Potřeboval jsem někam do FlexiBee uložit JSON popis přidaných polí. Zkoušel jsem několik polí a nejlépe se jevila poznámka na typu dokladu. Nakonec jsem se ale rozhodl vyřešit problém jinak.
Popis přidaných polí se ukládá jako textová příloha přímo k reportu. Toto řešení umožňuje mít pro jeden doklad s jedním typem dokladu připraveno několik různých tiskopisů. Jeden pro zákazníka a jiný pro účetní.
Pro přidání pole je tedy nejprve potřeba si připravit textový soubor, pojmenovat ho cfg.txt a zapsat do něj 3 JSON pole oddělená středníkem (aby bylo jednodušší parsování v jasperu:-)).
Každá vlastnost je pak JSON obsahující vlastnosti property, propertyName, propertyNameA, propertyNameB a propertyNameC.

Vlastnost property určuje, které pole z FlexiBee má být zobrazeno. Pokud využíváte FlexiBee REST-API, neměl by být problém určit jakou hodnotu použít.
Pokud API nepoužíváte, tak seznam dostupných polí pro hlavičku faktury (oblasti 1. a 2.) je možné najít na stránce https://demo.flexibee.eu/c/demo/faktura-vydana/properties. Hodnotu vlastnosti property naleznete ve sloupci Strojový název.
Seznam polí dostupných pro položkovou oblast 3. je dostupný na stránce https://demo.flexibee.eu/c/demo/faktura-vydana-polozka/properties. Opět je důležitý sloupec Strojový název.
Vlastnosti propertyName, propertyNameA, propertyNameB a propertyNameC slouží k lokalizaci popisku pole. V případě, že FlexiBee je nastaveno dle obrázku výše, je propertyName čeština, propertyNameA angličtina, propertyNameB němčina a propertyNameC slovenština.

Jak tedy má vypadat ukázkový obsah souboru?

[
{"property":"nastaveni.www", "propertyName":"WWW","propertyNameA":"WWW", "propertyNameB":"WWW", "propertyNameC":"WWW"},
{"property":"nastaveni.email", "propertyName":"E-mail","propertyNameA":"E-mail", "propertyNameB":"E-mail", "propertyNameC":"E-mail"},
{"property":"nastaveni.tel", "propertyName":"Telefon","propertyNameA":"Phone", "propertyNameB":"Telefon", "propertyNameC":"Telefón"},
{"property":"nastaveni.mobil", "propertyName":"Mobil","propertyNameA":"Cell", "propertyNameB":"Handy", "propertyNameC":"Mobil"}
]
;
[
{"property":"cisSml", "propertyName":"Číslo smlouvy","propertyNameA":"Contract #", "propertyNameB":"Kontraktnummer", "propertyNameC":"Číslo zmluvy"},
{"property":"zakazka", "propertyName":"Zakázka","propertyNameA":"Commission", "propertyNameB":"Auftrag", "propertyNameC":"Zákazka"},
{"property":"cisObj", "propertyName":"Číslo objednávky","propertyNameA":"Order #", "propertyNameB":"Bestellnummer", "propertyNameC":"Číslo objednávky"},
{"property":"kontaktJmeno", "propertyName":"Kontaktní osoba","propertyNameA":"Contact", "propertyNameB":"Kontakt", "propertyNameC":"Kontaktná osoba"}
]
;
[
{"property":"kod", "propertyName":"Kód: ","propertyNameA":"Code: ", "propertyNameB":"Code: ", "propertyNameC":"Kód: "},
{"property":"vyrobniCislaVydana", "propertyName":"Výrobní čísla: ","propertyNameA":"Serial numbers: ", "propertyNameB":"Seriennummern: ", "propertyNameC":"Výrobné čísla: "},
{"property":"poznam", "propertyName":"\nPoznámka: ","propertyNameA":"\nNote: ", "propertyNameB":"\nBemerkung: ", "propertyNameC":"\nPoznámka: "}
]


Takovýto soubor cfg.txt doplní do každé oblasti několik polí i s lokalizovanými popisky.
Do oblasti 1. se doplní www stránka, emailová adresa, telefon a mobil z nastavení firmy.
Do oblasti 2. se doplní číslo smlouvy, zakázka, číslo objednávky a kontaktní osoba z hlavičky dokladu.
U každé položky (oblast 3.) bude na tiskopisu uveden kód produktu, seznam výrobních čísel a informace z poznámky.

Připravený soubor cfg.txt je potřeba nahrát jako přílohu k reportu

Uzivatelske reporty zmena


Uzivatelske reporty vyber souboru


Uzivatelske reporty zmena 2



Jakmile je soubor cfg.txt úspěšně nahrán jako příloha, můžeme zkusit tisk :-)

Upravena faktura



Soubory ke stažení


Ostatní "modré" tiskopisy ze série

Řešení problémů

V případě, že je v souboru cfg.txt nějaká chyba (neexistující vlastnost, překlep, neplatná struktura), není možné tiskopis vytisknout a FlexiBee zahlásí chybové hlášení. Pokud FlexiBee spustíte s ladicími výpisy, dozvíte se výrazně víc podrobností, než z dialogu ve FlexiBee.
Pokud najdete nějakou chybu, budu rád když mi dáte vědět do komentářů nebo na mail info@charlieblog.eu.

Co bude dál?

Vzhledem k tomu, že už mám celkem slušnou sestavu "modrých" tiskopisů, tak možnost definovat si uživatelská pole doplním i do ostatních. Takže se máte na co těšit ;-).

Aktualizace 12.4.2017

Výpis přídavných polí u položek dokladu již mezi lokalizovaný popisek a hodnotu nevkládá řetězec ": ". Dvojtečka s mezerou musí být doplněna přímo v lokalizaci v souboru cfg.txt. Tato změna umožňuje zcela lokalizaci pole vynechat pokud není nutná.

V rekapitulaci DPH se tisknou jen nenulové řádky.

Doplněny větší možnosti "tečkové" notace. Například na hlavičce dokladu je takto možné přidat IBAN a SWIFT (bspBan.iban, bspBan.bic). Na položkách je možné vytisknout záruku, která je evidována v ceníku (cenik.zaruka).

ABRA FlexiBee, Modré tiskopisy, Faktura, Customizovatelnost

- (11. 8. 2017)
Kája z Norska
Kája z Norska

Jsem programátor, horolezec a tak trochu FlexiBee fanatik :-).
Na CharlieBlogu sepisuji své nápady a poznatky už od roku 2006.