Rest API umožňuje prepočítať nákupnú a predajnú cenu kusovníka pomocou akcií prepocti-nakupni-cenu a prepocti-prodejni-cenu.
Prepočet cien kusovníka slúži na úpravu ceny výrobku v prípade, že sa zmenili ceny materiálov, z ktorých sa výrobok skladá. Ide o služby, ktoré fungujú rovnako ako tlačidlá v aplikácii.
Pri samotnej výrobe (resp. príjme výrobku na sklad) sa však cena prijatého výrobku vypočíta automaticky podľa skutočnej ceny spotrebovaného materiálu. Bude teda zodpovedať cene materiálu bez ohľadu na cenu uvedenú v kusovníku.
Pozn.: Akcie sčítavajú iba ceny z jednej úrovne kusovníka. Pokiaľ sa teda kusovník skladá z ďalších kusovníkov, je potrebné najskôr prepočítať tieto kusovníky.
Viac o kusovníku sa dozviete v dokumentácii.
Na vykonanie akcie prepocti-nakupni-cenu a prepocti-prodejni-cenu. musíme poznať konkrétne ID kusovníka alebo je možné využiť filtrovanie a prepočítať kusovníky na rovnakej úrovni.
Príklady použitia
Request zasielame metódou POST na URL:
POST https://demo.flexibee.eu/c/demo/kusovnik.xml (.json)
<winstrom version="1.0">
<kusovnik id="123" action="prepocti-nakupni-cenu" />
</winstrom>
Obdobne možno request zaslať vo formáte JSON a pomocou ID kusovníka:
{
"winstrom": {
"kusovnik": {
"id": "123",
"@action": "prepocti-nakupni-cenu"
}
}
}
Odpoveď ABRA Flexi je potom aktualizácia vybraného záznamu:
{
"winstrom": {
"@version": "1.0",
"success": "true",
"stats": {
"created": "0",
"updated": "1",
"deleted": "0",
"skipped": "0",
"failed": "0"
},
"results": [
{
"id": "123",
"request-id": "123",
"ref": "/c/demo/kusovnik/123.json"
}
]
}
}
Filtrovanie úrovní pre prepočet
Úroveň kusovníka určuje, akú úroveň kusovníka sa chystáme prepočítať.
Pozn. Prepočítajú sa ceny všetkých kusovníkov, nielen tých, ktoré zodpovedajú filtru – teda pokiaľ nie je obmedzenie na konkrétny kusovník, dôjde k prepočtu cien u všetkých kusovníkov s danou úrovňou.
Akciu možno vyvolať dávkovo nad skupinou kusovníkov pomocou filtra:
<winstrom version="1.0">
<kusovnik filter="hladina eq 1" action="prepocti-nakupni-cenu" />
</winstrom>
Obdobne možno request zaslať vo formáte JSON a pomocou filtrovania:
{
"winstrom": {
"kusovnik": {
"@filter": "hladina eq 1",
"@action": "prepocti-nakupni-cenu"
}
}
}
Neúspešné requesty
1. zadaný/filtrovaný objekt (kusovník) neexistuje
V prípade, že sa objekt nepodarí nájsť/neexistuje, je odpoveď API:
"message": "Nebyl nalezen zaznam s id = 666: cz.winstrom.vo.cen.Kusovnik#1222 [1222]",
2. akcia je nesprávne zapísaná
V prípade, že voláte nesprávnu akciu (preklep alebo chyba v názve):
"message": "Atribut 'action' obsahuje špatnou hodnotu. Pro daný objekt smí obsahovat jen: [delete, prepocti-nakupni-cenu, prepocti-prodejni-cenu] [1]"
3. nesprávne zapísaný filter
Filter nezodpovedá definovaným pravidlám filtrovania, odpoveďou je približná pozícia chyby vo filtri:
<error>Špatný formát WQL dotazu, problém na pozici 11 poblíž textu 'now()'
org.antlr.v4.runtime.misc.ParseCancellationException
org.antlr.v4.runtime.NoViableAltException</error>
4. úroveň neexistuje
V prípade, že prepočítate neexistujúcu úroveň, vráti sa prázdny výsledok
"results": []

