Aktualizováno: 25.02.2020 – Když Flexibee aktualizoval (2020.1.0.7), tak firma s přidanými tabulkami ve schématu public se neobnovila a nemohl jsem v ní aplikaci pracovat. Při smazaní přidáných tabulek se firma (její databáze) obnovila. Možná stačí jen vytvářet tabulky v jiném schématu, než public.
Aktualizováno: 22.01.2020 – Přidány řádky s datem a sumou uhrazení pro faktury.
Aktualizováno: 15.05.2019 – Změna s agregačních funkcí SUM na MIN. Řeší problém s přidáváním duplicitních řádků více-štítkovými položkami. Úprava všech odkazů k aktualizovaným souborům.
Tento článek navazuje na předchozí příspěvek o sestavení účetního deníku. Nová verze zrcadlí standardní umístění sloupců v deníku. Rozšiřuje standardní deník z Flexibee o sloupec se štítky, typ dokladu, indikaci, zda je doklad účetní, dokladovou řadu, bankovní účet, kód banky, uživatele.
Chybí stav dokladu, párovací symbol (jež je často var. symbol) a název modulu.
Nová verze nástroje je ke zkopírování zde.
Protože se štítky získávají ze vztahu m:n, bylo zapotřebí přidat agregační funkce a určení pořadí agregace GROUP BY. V uživatelských dotazech nefungují standardní textové agregační funkce pro Postgresql, ale funguje Flexibee funkce SUMTEXT (wvybklice.kod).
Tím se celý dotaz zase zkomplikoval a přidání další sloupce vyžaduje dodržet omezení a přidat ručně nový sloupec do buňky s dotazem na listu result.
Uživatelský dotaz
Dotaz lze editovat potřeby. V hotové ukázce je zadaný parametr year pro, který filtruje položky na zaúčtované v daném roce.
WHERE EXTRACT(YEAR FROM datucto) = <<year>>
Ve vnitřním dotazu na položku stále zůstává podmínka:
WHERE dpolfak.ucetni= true and dpolfak.storno = false and dpolfak.stornopol = false AND ddoklfak.zuctovano = true
Ukázka je nahraná na demo a ulož.to. Teď už stačí jen soubor xml s uživatelským dotazem stáhnout a naimportovat jako xml.
Omezení vkládaných hodnot
Protože se z textu buňky vytváří pole do GROUP BY části dotazu je začátek textu v buňce omezený na např. dpolfak.modul a nebo na podmínku “CASE WHEN “. Vzorec, který získává z buňky v base pole v GROUP BY:
if(base!E$3;IF(ISERROR(MATCH(base!E19;$A$25:$A$150;0));trim(LEFT(REGEXREPLACE(base!E19;"\(?CASE WHEN ";"");IFERROR(FIND(" ";REGEXREPLACE(base!E19;"\(?CASE WHEN ";""))-1;999)));"");"")
Vysvětlení:
if(base!E$3;X;"")
Je v base zaškrtnuto, že se má sloupec objevit v group by? Pokud ne, prázdná hodnota.
IF(ISERROR(MATCH(base!E19;$A$25:$A$150;0));X;"")
Pokud je hodnota v poli $A$25:$A$150, tak nepatří do sloupec do GROUP BY. Mezi tyto hodnoty patří: null, ‘mdannakl’, ‘msplatkal’, ‘mucetodpisy’, ‘mdanodpisy’, ‘mudalosti’, 0
Do pole GROUP BY se dostane jen první řetězec a další část je odstřihnutá. Text doplňující název pole, tak musí následovat za jménem pole a mezerou. Například:
mleasing.kod || ‘ – daňové náklady’ as nazev
Kontrola
Generovaný standardní účetní deník je porovnaný s výsledkem účetního deníku z dotazu. Porovnané jsou kontingenční tabulky agregované podle čísla dokladu.
INDEX(Dotaz_kod!$A$4:$B$87,MATCH(A4,Dotaz_kod!$A$4:$A$87,0),2)
Návod
Postupujte podle oficielního manuálu nebo dle článku o uživatelských dotazech.
- Aktualizováno: Integrace a komunikace s Flexibee – 05. Uživatelské dotazy
- Aktualizováno: Integrace a komunikace s Flexibee – 06. Přehled pro kontrolu přijatých a vystavených dokladů
- Integrace a komunikace s Flexibee – 01. Dativery – připravené scénáře
- Integrace a komunikace s Flexibee – 02. Integromat – Z objednávky zakázka, poslat Gmail, zapsat do GSheets
- Integrace a komunikace s Flexibee – 03. Kontrola Merkem
- Integrace a komunikace s Flexibee – 04. Integromat – HTTP request do Merk API a Data Store
- Integrace a komunikace s Flexibee – 07. Sestavení účetního deníku
- Integrace a komunikace s Flexibee – 08. Účetní deník se štítky
Budu rád za každou konstruktivní poznámku či připomínku do komentářů pod příspěvkem nebo mě přímo kontaktujte