V ABRA Flexi je možné si vytvořit vlastní účetní sestavy. Tyto účetní sestavy však lze generovat i právě prostřednictvím API rozhraní.
Jak na to v desktopové aplikaci, naleznete v návodu zde.
Jak pracovat s již přepočtenou sestavou?
Účetní sestavy nalezneme pomocí endpointu /sestava
, tedy GET
na URL adresu typu https://server:5434/c/firma/sestava.xml
. Na této URL adrese nalezneme seznam účetních sestav.
<sestava>
<id>202</id>
<lastUpdate>2010-07-13T00:00:00+02:00</lastUpdate>
<kod>IFRS-PL</kod>
<nazev>IFRS - PROFIT AND LOSS</nazev>
</sestava>
<sestava>
<id>9</id>
<lastUpdate>2018-03-07T00:00:00+01:00</lastUpdate>
<kod>ROZVAHA2018</kod>
<nazev>Rozvaha v plném rozsahu od r. 2018</nazev>
</sestava>
<sestava>
<id>10001</id>
<lastUpdate>2020-02-17T16:24:33.068+01:00</lastUpdate>
<kod>VYSLEDOMOJE</kod>
<nazev>Moje výsledovka</nazev>
</sestava>
<sestava>
<id>7</id>
<lastUpdate>2022-12-14T00:54:34.889+01:00</lastUpdate>
<kod>VÝSLEDOVKA2016</kod>
<nazev>Výkaz zisku a ztráty - druhové členění od r.2016</nazev>
</sestava>
Takto nalezené účetní sestavy musejí být již dříve přepočtené. Jinak nebudou zobrazovat žádné hodnoty.
V poslední verzi přibyla v API nová evidence pro práci se standardními předpisy sestav. Ty nalezneme na endpointu /standardni-predpis
, například tedy GET na URL adresu typu https://server:5434/c/firma/standardni-predpis.xml
.
O sestavě však můžeme zjistit daleko více informací. Níže naleznete seznam, jaké informace a v jaké podobě je možné o sestavě získat.
/sestava.json
- vrací pouze seznam sestav/sestava.json?detail=full
- vrací sestava → radkySestavy → stdPredpisy v plném detailu/sestava.json?relations=radkySestavy
- vrací sestava → radkySestavy/radek-sestavy.json
- vrací pouze seznam řádků/radek-sestavy.json?detail=full
- vrací radek-sestavy → stdPredpisy v plném detailu/radek-sestavy.json?relations=stdPredpisy
- vrací radek-sestavy → stdPredpisy/standardni-predpis.json
- vrací seznam standardních předpisů/standardni-predpis.json?detail=full
vrací seznam standardních předpisů v plném detailu
Přepočet sestav
Přes API však není možné pouze zjistit informace a hodnoty dané sestavy. Sestavu je v API možné také přepočítat.
Oproti výše popsanému příkladu ke zjištění hodnot sestavy, je přepočet je vyvolán odesláním požadavku metodou PUT/POST
na příslušnou URL.
Do elementu prepocti
je nutné uvést vybraneRadky
a parametry
přepočtu. Vybrané řádky musí obsahovat identifikátory ucet
a radek
. Které řádky je možné vybrat ke kterým účtům lze zjistit v sub-evidenci umisteni-uctu
. Je nutné vybrat řádky ke všem účtům v ní uvedeným.
Příklad přepočtu sestavy Výkaz zisku a ztráty:
Přepočet je vyvolán odesláním požadavku metodou PUT
na URL
/c/{firma}/sestava/code:VÝSLEDOVKA2016
s následujícími daty v těle požadavku:
<winstrom version="1.0">
<sestava>
<prepocti>
<vybraneRadky>
<vybranyRadek>
<ucet>code:662001</ucet>
<radek>383</radek>
</vybranyRadek>
<vybranyRadek>
<ucet>code:562001</ucet>
<radek>387</radek>
</vybranyRadek>
</vybraneRadky>
<parametry>
<ucetniObdobi>code:2022</ucetniObdobi>
<pocatecniRok>2022</pocatecniRok>
<pocatecniMesic>1</pocatecniMesic>
<koncovyRok>2022</koncovyRok>
<koncovyMesic>12</koncovyMesic>
<strediska>
<stredisko>code:C</stredisko>
</strediska>
</parametry>
</prepocti>
</sestava>
</winstrom>
Příklad použití sub-evidence umisteni-uctu:
Odesláním požadavku metodou GET
na URL
/c/{firma}/sestava/code:VÝSLEDOVKA2016/umisteni-uctu.xml?detail=custom:ucet,vybranyRadek,moznosti(id,nazev)
získáme následující data:
<winstrom version="1.0">
<umisteni-uctu>
<ucet evidencePath="ucet">code:662001</ucet>
<vybranyRadek evidencePath="radek-sestavy">383</vybranyRadek>
<moznosti>
<radek-sestavy>
<id>383</id>
<nazev>Výnosové úroky a podobné výnosy - ovládaná nebo ovládající osoba</nazev>
</radek-sestavy>
<radek-sestavy>
<id>384</id>
<nazev>Ostatní výnosové úroky a podobné výnosy</nazev>
</radek-sestavy>
</moznosti>
</umisteni-uctu>
<umisteni-uctu>
<ucet evidencePath="ucet">code:562001</ucet>
<vybranyRadek evidencePath="radek-sestavy">387</vybranyRadek>
<moznosti>
<radek-sestavy>
<id>387</id>
<nazev>Nákladové úroky a podobné náklady - ovládaná nebo ovládající osoba</nazev>
</radek-sestavy>
<radek-sestavy>
<id>388</id>
<nazev>Ostatní nákladové úroky a podobné náklady</nazev>
</radek-sestavy>
</moznosti>
</umisteni-uctu>
</winstrom>
Do elementu prepocti
pak lze uvést následující parametry
přepočtu:
ucetniObdobi
- identifikátor účetního období, pro které chceme sestavu přepočítat (viz. evidenceucetni-obdobi
)pocatecniRok
- počáteční rok časového intervalu v rámci uvedeného účetního obdobípocatecniMesic
- počáteční měsíc časového intervalu v rámci uvedeného účetního období (hodnoty 1 až 12)koncovyRok
- koncový rok časového intervalu v rámci uvedeného účetního obdobíkoncovyMesic
- koncový měsíc časového intervalu v rámci uvedeného účetního období (hodnoty 1 až 12)minuleUcetniObdobi
- identifikátor minulého účetního období, pro které chceme sestavu přepočítat (viz. evidenceucetni-obdobi
). Pokud není tento parametr uveden, použije se automaticky období předcházející účetnímu období uvedenému v parametruucetniObdobi
.minulyPocatecniRok
- počáteční rok časového intervalu v rámci minulého účetního období. Pokud není tento parametr uveden, použije se automaticky rok předcházející tomu, který je uveden v parametrupocatecniRok
.minulyPocatecniMesic
- počáteční měsíc časového intervalu v rámci minulého účetního období (hodnoty 1 až 12). Pokud není tento parametr uveden, použije se automaticky měsíc uvedený v parametrupocatecniMesic
.minulyKoncovyRok
- koncový rok časového intervalu v rámci minulého účetního období. Pokud není tento parametr uveden, použije se automaticky rok předcházející tomu, který je uveden v parametrukoncovyRok
.minulyKoncovyMesic
- koncový měsíc časového intervalu v rámci minulého účetního období (hodnoty 1 až 12). Pokud není tento parametr uveden, použije se automaticky měsíc uvedený v parametrukoncovyMesic
.strediska
- identifikátory středisek, pro které chceme sestavu přepočítat (viz. evidencestredisko
). Pokud není tento parametr uveden, bude sestava přepočtena pro všechna střediska.zaokrouhlitNa
- možnost zaokrouhlit vypočítané částky. Pokud není parametr uveden, nebudou vypočítané částky zaokrouhleny. Je možné použít tyto hodnoty:TISICE
- zaokrouhlení na tisíceJEDNOTKY
- zaokrouhlení na jednotkyNEZAOKROUHLOVAT
- výpočet bez zaokrouhlení (výchozí hodnota)
coZaokrouhlit
- pokud nastavíme parametrzaokrouhlitNa
, můžeme tímto parametrem ovlivnit, co bude zaokrouhleno. Je možné použít tyto hodnoty:RADKY
- zaokrouhlí se celý řádek sestavySYNTETICKE_UCTY
- zaokrouhlí se celý syntetický účet, např. 211ANALYTICKE_UCTY
- zaokrouhlí se každý analytický účet zvlášť, např. 211001, 211002, atd.
Počáteční stavy účtů
V případě sestavy typu Rozvaha může být přepočet přerušen chybou: "Počáteční stavy účtů nejsou v pořádku. Strana MD: 10.0, Strana Dal: 100.0, Rozdíl: 90.0".
Tyto stavy můžete buď opravit, nebo ignorovat pomocí elementu ignorovatRozdilMdDal
s hodnotou true
, např. takto:
<winstrom version="1.0">
<sestava>
<prepocti>
<ignorovatRozdilMdDal>true</ignorovatRozdilMdDal>
<vybraneRadky>
<vybranyRadek>
<ucet>code:662001</ucet>
<radek>383</radek>
</vybranyRadek>
<vybranyRadek>
<ucet>code:562001</ucet>
<radek>387</radek>
</vybranyRadek>
</vybraneRadky>
<parametry>
<ucetniObdobi>code:2022</ucetniObdobi>
<pocatecniRok>2022</pocatecniRok>
<pocatecniMesic>1</pocatecniMesic>
<koncovyRok>2022</koncovyRok>
<koncovyMesic>12</koncovyMesic>
</parametry>
</prepocti>
</sestava>
</winstrom>
Chyba zaokrouhlení
Při zaokrouhlení může být přepočet přerušen chybou:
Při výpočtu sestavy vznikla zaokrouhlovací chyba na řádku 55 - *** - Výsledek hospodaření za účetní období (+/-). Můžete vybrat řádek sestavy, do kterého se má vzniklý rozdíl připočítat. Rozdíl v aktuálním období (v tisících): 1.0 Rozdíl v minulém období (v tisících): -2.0
Taková situace nastává v případě, kdy se po zaokrouhlení nerovnají aktiva a pasiva. Tuto situaci je možné vyřešit přičtením rozdílu na některý řádek sestavy.
Jeho identifikátor uvedeme do elementu radekProPricteniRozdilu
. Řádky, které je možné použít, najdeme v sub-evidenci pricteni-rozdilu
.
Odesláním požadavku metodou GET
na URL
/c/{firma}/sestava/code:VÝSLEDOVKA2016/pricteni-rozdilu?detail=custom:moznosti(id,cisRad,oznaceni,nazev)
získáme následující data:
<winstrom version="1.0">
<pricteni-rozdilu>
<id>-1</id>
<moznosti>
<radek-sestavy>
<id>344</id>
<cisRad>1</cisRad>
<oznaceni>I.</oznaceni>
<nazev>Tržby z prodeje výrobků a služeb</nazev>
</radek-sestavy>
<radek-sestavy>
<id>345</id>
<cisRad>2</cisRad>
<oznaceni>II.</oznaceni>
<nazev>Tržby za prodej zboží</nazev>
</radek-sestavy>
</moznosti>
</pricteni-rozdilu>
</winstrom>
Požadovaný řádek pak uvedeme do elementu radekProPricteniRozdilu
, např. takto:
<winstrom version="1.0">
<sestava>
<prepocti>
<radekProPricteniRozdilu>344</radekProPricteniRozdilu>
<vybraneRadky>
<vybranyRadek>
<ucet>code:662001</ucet>
<radek>383</radek>
</vybranyRadek>
<vybranyRadek>
<ucet>code:562001</ucet>
<radek>387</radek>
</vybranyRadek>
</vybraneRadky>
<parametry>
<ucetniObdobi>code:2022</ucetniObdobi>
<pocatecniRok>2022</pocatecniRok>
<pocatecniMesic>1</pocatecniMesic>
<koncovyRok>2022</koncovyRok>
<koncovyMesic>12</koncovyMesic>
</parametry>
</prepocti>
</sestava>
</winstrom>
Import vlastní sestavy
Sestavy je možné i importovat, viz příklad níže:
<?xml version="1.0" encoding="UTF-8" ?>
<winstrom>
<sestava>
<id>code:SESTAVA-T01-MIN</id>
<id>ext:sestava:t01:min</id>
<nazev>Testovací sestava 01</nazev>
<radkySestavy>
<radek-sestavy>
<id>ext:radek:r1</id>
<nazev>radek1</nazev>
<stdPredpisy>
<standardni-predpis>
<id>ext:stdp:01</id>
<zpusobVypK>zpusobVypo.stavKon</zpusobVypK>
<cisloUctuSyn>code:311</cisloUctuSyn>
</standardni-predpis>
</stdPredpisy>
</radek-sestavy>
<radek-sestavy>
<id>ext:radek:r2</id>
<nazev>radek2</nazev>
<stdPredpisy>
<standardni-predpis>
<id>ext:stdp:02</id>
<zpusobVypK>zpusobVypo.stavKon</zpusobVypK>
<cisloUctuSyn>code:321</cisloUctuSyn>
</standardni-predpis>
</stdPredpisy>
</radek-sestavy>
<radek-sestavy>
<id>ext:radek:r3</id>
<nazev>suma r1 + r2</nazev>
<sumace>
<sumace-sestavy>
<id>ext:sum:r3:r1</id>
<radekSum>ext:radek:r1</radekSum>
</sumace-sestavy>
<sumace-sestavy>
<id>ext:sum:r3:r2</id>
<radekSum>ext:radek:r2</radekSum>
</sumace-sestavy>
</sumace>
</radek-sestavy>
</radkySestavy>
</sestava>
</winstrom>
Odpovědí je v případě úspěšného vytvoření sestavy:
<?xml version="1.0" encoding="utf-8"?>
<winstrom version="1.0">
<success>true</success>
<stats>
<created>1</created>
<updated>0</updated>
<deleted>0</deleted>
<skipped>0</skipped>
<failed>0</failed>
</stats>
<results>
<result>
<id>10002</id>
<request-id>ext:sestava:t01:min</request-id>
<request-id>code:SESTAVA-T01-MIN</request-id>
<ref>/c/testovaci_2/sestava/10002.xml</ref>
</result>
</results>
</winstrom>
Chybové kódy
sestavaVypocet.nesouhlasiMDaDalInfo
- Nesouhlasí počáteční stavy MD a Dal. Opravte tak, že správně zadáte počáteční stavy, aby rozdíl byl 0.0.sestavaVypocet.zaokrRadkaNevyplnena
- Při výpočtu sestavy došlo k zaokrouhlovací chybě a nebyla zvolena žádná řádka pro přičtení rozdílu. Vyberte správnou (radekProPricteniRozdilu
) a výpočet opakujte.sestavaVypocet.nesouhlasiAktivaPasiva
- Při výpočtu sestavy došlo k nesouhlasu aktiv a pasiv. Vyberte řádku, do které se má rozdíl promítnout (radekProPricteniRozdilu
), a výpočet opakujte. Vzniká pouze při výpočtu sestavy typu Rozvaha.sestavaVypocet.zaokrRadkaNevyresila
- Při výpočtu sestavy došlo k zaokrouhlovací chybě a zvolená řádka pro přičtení rozdílu chybu neopravila. Vyberte jinou a výpočet opakujte.sestavaVypocet.zaokrRadkaRozbila
- Při výpočtu sestavy se zvolením řádky pro přičtení rozdílu došlo k chybě na jiném řádku. Vyberte jinou a výpočet opakujte.