Preskoči na glavno vsebino

Prepočet percent realizovateľnosti cez REST API

Ako prepočítať % realizovateľnosti objednávky prijatej cez API

Avtor: Petr Pech

Funkciu Prepočítať percentá realizovateľnosti, ktorú poznáte z desktopovej aj webovej aplikácie, možno spustiť aj cez REST API. Aktualizuje na prijatých objednávkach stĺpec % realizovateľnosti, ktorý hovorí, z koľkých percent ste momentálne schopní uspokojiť objednávku zo zásoby na sklade.

ℹ️ Služba je dostupná iba nad evidenciou prijatých objednávok a vždy prepočítava všetky nehotové objednávky — jednotlivé doklady vybrať nemožno.


Ako sa percento počíta

Pri každej položke sa zisťuje, akú časť objednaného množstva možno pokryť zo skladu. Výsledné percento na doklade však nie je priemer množstva — jednotlivé položky doň vstupujú vážené svojou hodnotou. Percento teda vyjadruje, akú časť hodnoty objednávky ste schopní vykryť.

Do súčtu sa počítajú iba položky s cenníkovou väzbou; položka zaokrúhlenie sa ignoruje. Príklad: objednávka má položku za 950,64 Kč, ktorú sklad nepokryje, a položku za 1 823,76 Kč, ktorá je skladom celá. Výsledné procReal je 1 823,76 / 2 774,40 = 65,74 %.

⚠️ Keďže sa váži hodnotou, pri položke s nulovou cenou za MJ (teda aj so 100 % zľavou) sa percento realizovateľnosti nevypočíta — objednávke zostane hodnota 0.

📝 Obísť to možno tak, že objednávku uložíte s nenulovou cenou za MJ, spustíte prepočet a až potom cenu zmeníte na nulu. Vypočítaná hodnota na objednávke zostane aj s nulovou cenou.


Zostavenie URL a spôsob volania

Služba je dostupná na adrese zloženej z evidencie objednavka-prijata a názvu prepocitat-realizovatelnost. Volá sa HTTP metódou PUT alebo POST, podporované výstupné formáty sú XML a JSON.

PUT https://demo.flexibee.eu/c/demo/objednavka-prijata/prepocitat-realizovatelnost.xml
PUT https://demo.flexibee.eu/c/demo/objednavka-prijata/prepocitat-realizovatelnost.json

Pri úspešnom dokončení vracia služba 200 OK:

<?xml version="1.0" ?>
<winstrom version="1.0">
<success>true</success>
</winstrom>


Parameter dry-run

Parametrom dry-run=true zistíte, či prepočet práve nebeží — sám žiadny prepočet nespustí. Vracia 200, ak je možné prepočet spustiť, a 409 s informáciou o tom, kedy a kým bol spustený ten bežiaci.

PUT https://demo.flexibee.eu/c/demo/objednavka-prijata/prepocitat-realizovatelnost.json?dry-run=true

Bez prípony formátu v URL určte výstup hlavičkou Accept: application/xml alebo Accept: application/json.


Neúspešné požiadavky

Situácia

Odpoveď

Už beží iný prepočet, spustený napríklad používateľom v aplikácii

409, concurrentProcedureRunning

Volanie metódou GET

405 Method Not Allowed

Pokus o zúženie prepočtu filtrom v URL, napríklad (id=48)

404 — Can't find record identified by (id=48)

Odpoveď na súbežný prepočet obsahuje meno používateľa a čas spustenia:

<?xml version="1.0" ?>
<winstrom version="1.0">
<success>false</success>
<message messageCode="concurrentProcedureRunning">Aktuálně běžící operace 'Přepočítat procenta realizovatelnosti' špuštěná uživatelem dba v 08.09.2026, 20:27:08 nedovoluje současně spustit 'Přepočítat procenta realizovatelnosti'.</message>
</winstrom>


FAQ

Je možné prepočítať len vybrané objednávky?

Nie je. Služba vždy prepočíta percento realizovateľnosti pri všetkých nehotových objednávkach a filter v URL odmietne.

Ako zistím aktuálne percento?

Hodnotu čítajte z vlastnosti procReal na prijatej objednávke. Na jej zmenu sa možno naviazať aj web hookom.

Ako spoznám, že prepočet skončil?

Volanie je synchrónne — odpoveď 200 príde až po dokončení. Ak prepočet spustený odinakiaľ ešte beží, overíte to dotazom s parametrom dry-run=true.


Súvisiace

Ste s tem dobili odgovor na svoje vprašanje?