Přeskočit na hlavní obsah

Kurzy na dokladech

Jak importovat zahraniční faktury

Autor: Petr Pech

Pokud při importu dokladu v cizí měně neuvedete kurz, ABRA Flexi si jej automaticky stáhne (např. z ČNB nebo ECB). Nicméně se může stát, že se kurz bude lišit o malé částky (setiny/tisíciny) proti oficiálnímu kurzu. To je záměrné chování.


Proč se kurz upravuje

Částka v cizí měně, částka v domácí měně a kurz musí být vždycky „v rovnováze" (vynásobením či vydělením dvou z nich musíte dostat to třetí). Problém je, že částky se zaokrouhlují na dvě desetinná místa, takže vzniká určitá nepřesnost.

Řekněme, že máme částku 1,4 EUR a kurz 25,265. Vynásobením dostaneme 35,371 CZK a po zaokrouhlení tedy 35,37. Jenže 35,37 / 25,265 už není 1,4, ale 1,39996041955.

Zachováme se tak, aby částky vždy seděly, a upravíme („obětujeme") proto kurz, který zaokrouhlujeme až na šest desetinných míst (a umíme ho tedy uložit „přesněji"). V tomto případě ho přepočteme na 35,37 / 1,4 = 25,264286.

ℹ️ Vzhledem k tomu, že pokaždé je nepřesnost jiná, vyjde taky vždycky trochu jiný kurz. Například při částce 5,95 EUR je částka v tuzemské měně po zaokrouhlení 150,33 a kurz tak, aby částky navzájem seděly, vyjde 25,265546.


Proč to vůbec děláme

Obvykle jde o malé rozdíly, kde by zaokrouhlení částek zase všechno srovnalo, ale už jsme se setkali i s případem, kdy byl rozdíl 1 Kč (např. částka v cizí měně byla 2599,0 a kurz 0,0038), což je nepřípustné. Proto to děláme.

📝 Možná bychom mohli být chytřejší a dělat to jen tehdy, když je to opravdu nutné, ale zatím to je tak, jak to je.


Co z toho plyne pro integraci

  • Nespoléhejte na to, že kurz uložený na dokladu bude přesně ten oficiální — porovnávat kurzy na doklad po dokladu s kurzovým lístkem nemá smysl.

  • Chcete-li mít na dokladu konkrétní kurz, uveďte ho v importu explicitně a dopočítejte si k němu částky sami tak, aby byly v rovnováze.

  • Výsledný stav si před uložením zkontrolujte testovacím uložením — v tagu <content /> uvidíte kurz i částky tak, jak by se uložily.

Dostali jste odpověď na svou otázku?