Přeskočit na hlavní obsah

Přepočet procent realizovatelnosti přes REST API

Jako přepočítat % realizovatelnosti objednávky přijaté přes API

Autor: Petr Pech

Funkci Přepočítat procenta realizovatelnosti, kterou znáte z desktopové i webové aplikace, lze spustit i přes REST API. Aktualizuje na objednávkách přijatých sloupec % realizovatelnosti, který říká, z kolika procent jste schopni objednávku momentálně uspokojit ze zásoby na skladě.

ℹ️ Služba je dostupná pouze nad evidencí objednávek přijatých a přepočítává vždy všechny nehotové objednávky — jednotlivé doklady vybrat nelze.


Jak se procento počítá

U každé položky se zjistí, jakou část objednaného množství lze pokrýt ze skladu. Výsledné procento na dokladu ale není průměr množství — jednotlivé položky do něj vstupují vážené svou hodnotou. Procento tedy vyjadřuje, jakou část hodnoty objednávky jste schopni vykrýt.

Do součtu se počítají pouze položky s ceníkovou vazbou; položka zaokrouhlení se ignoruje. Příklad: objednávka má položku za 950,64 Kč, kterou sklad nepokryje, a položku za 1 823,76 Kč, která je skladem celá. Výsledné procReal je 1 823,76 / 2 774,40 = 65,74 %.

⚠️ Protože se váží hodnotou, u položky s nulovou cenou za MJ (tedy i se 100% slevou) se procento realizovatelnosti nevypočítá — objednávce zůstane hodnota 0.

📝 Obejít to lze tak, že objednávku uložíte s nenulovou cenou za MJ, spustíte přepočet a teprve poté cenu změníte na nulu. Vypočtená hodnota na objednávce zůstane i s nulovou cenou.


Sestavení URL a způsob volání

Služba je dostupná na adrese složené z evidence objednavka-prijata a názvu prepocitat-realizovatelnost. Volá se HTTP metodou PUT nebo POST, podporované výstupní formáty jsou 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

Při úspěšném dokončení vrací služba 200 OK:

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


Parametr dry-run

Parametrem dry-run=true zjistíte, zda přepočet právě neběží — sám žádný přepočet nespustí. Vrací 200, pokud je možné přepočet spustit, a 409 s informací o tom, kdy a kým byl spuštěn ten běžící.

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

Bez přípony formátu v URL určete výstup hlavičkou Accept: application/xml nebo Accept: application/json.


Neúspěšné požadavky

Situace

Odpověď

Už běží jiný přepočet, spuštěný například uživatelem v aplikaci

409, concurrentProcedureRunning

Volání metodou GET

405 Method Not Allowed

Pokus o zúžení přepočtu filtrem v URL, například (id=48)

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

Odpověď na souběžný přepočet obsahuje jméno uživatele a čas spuštění:

<?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é přepočítat jen vybrané objednávky?

Není. Služba vždy přepočítá procento realizovatelnosti u všech nehotových objednávek a filtr v URL odmítne.

Jak zjistím aktuální procento?

Hodnotu čtěte z vlastnosti procReal na objednávce přijaté. Na její změnu se lze navázat i web hookem.

Jak poznám, že přepočet skončil?

Volání je synchronní — odpověď 200 přijde až po dokončení. Jestli přepočet spuštěný odjinud ještě běží, ověříte dotazem s parametrem dry-run=true.


Související

Dostali jste odpověď na svou otázku?