Preskoči na glavno vsebino

Aktualizácia súm v domácej mene pri položkách dokladu pri zmene kurzu - API

Ako pri doklade v cudzej mene aktualizovať sumy položiek pri zmene kurzu?

Avtor: Petr Pech

Zmena kurzu pri cudzomenovom doklade sa sama nepremietne do súm v tuzemskej mene. Aby Flexi doklad prepočítala, musí spolu s novou hodnotou prísť aj tá predchádzajúca — atribút previousValue.


Zápis

{
"winstrom": {
"faktura-vydana": [{
"id": "code:FAKTURA123",
"kurz": "24.645",
"kurz@previousValue": "24.70",
"datVyst": "2026-05-28",
"datVyst@previousValue": "2026-06-18"
}]
}
}

🚨 Bez previousValue sa zmena kurzu neuloží vôbec. Požiadavka skončí s success=true, ale kurz aj sumy zostanú bez zmeny — na doklade teda ticho zostane pôvodná hodnota. S uvedenou predchádzajúcou hodnotou sa kurz zmení a sumy v tuzemskej mene sa prepočítajú (na overovanom doklade 100 v cudzej mene: kurz 25 → základ 2 500 Kč, po zmene na kurz 30 → 3 000 Kč).


Prečo je to tak

Atribút previousValue spúšťa v ABRA Flexi reakciu na zmenu — teda rovnakú logiku, aká sa spustí, keď hodnotu prepíše používateľ v aplikácii. Bez neho sa pri poliach s naviazaným prepočtom zmena neprejaví, pretože systém nemá dôvod dopočet spustiť.

V XML sa zapisuje ako atribút, v JSON ako ďalší kľúč:

XML:   <kurz previousValue="24.70">24.645</kurz>
JSON: "kurz": "24.645", "kurz@previousValue": "24.70"
(funguje i tvar "kurz-previousValue")

ℹ️ Predchádzajúcich hodnôt možno v jednej požiadavke uviesť viac. Ak sa sumy neprepočítajú tak, ako potrebujete, príčinou býva zaokrúhľovacia položka — pri dokladoch s položkami sa kontroluje celkový súčet.


Súvisiace

Ste s tem dobili odgovor na svoje vprašanje?