Preskoči na glavno vsebino

Přepočítanie cien kusovníka cez REST API

Ako prepočítať kusovník pomocou REST API

Avtor: Petr Pech

REST API umožňuje prepočítať nákupnú a predajnú cenu kusovníka pomocou akcií prepocti-nakupni-cenu a prepocti-prodejni-cenu. Slúži na úpravu ceny výrobku vo chvíli, keď sa zmenili ceny materiálov, z ktorých sa výrobok skladá. Ide o rovnaké služby, aké v aplikácii obsluhujú tieto tlačidlá:

Prepočet sčíta ceny materiálu vynásobené jeho množstvom a výsledok zapíše nadradenej cenníkovej položke — do nakupCena, respektíve cenaZakl. Samotná evidencia kusovnik žiadne ceny nedrží.

⚠️ Akcie sčítavajú iba ceny z jednej úrovne kusovníka. Ak sa kusovník skladá z ďalších kusovníkov, prepočítajte najprv ich — postupujte teda od najnižšej hladiny nahor.

ℹ️ Pri samotnej výrobe, teda pri príjme výrobku na sklad, sa cena prijatého výrobku vypočíta sama podľa skutočnej ceny spotrebovaného materiálu — bez ohľadu na cenu uvedenú v kusovníku. Viac o kusovníku nájdete v popise evidencie.


Prepočet konkrétneho kusovníka

Akcia sa vyvoláva importom cez atribút action; požiadavku posielate metódou POST alebo PUT:

POST https://demo.flexibee.eu/c/demo/kusovnik.xml
<winstrom version="1.0">
<kusovnik id="123" action="prepocti-nakupni-cenu"/>
</winstrom>

To isté v JSON — názov akcie sa zapisuje ako @action:

{
"winstrom": {
"kusovnik": {
"id": "123",
"@action": "prepocti-nakupni-cenu"
}
}
}

Odpoveďou je štandardný výsledok importu s 201 Created a identifikátorom prepočítaného kusovníka:

{
"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"
}
]
}
}


Prepočet celej hladiny

Hladina kusovníka (hladina) určuje úroveň, ktorú sa chystáte prepočítať. Namiesto ID použite atribút filter a akcia sa vykoná nad všetkými kusovníkmi, ktoré filtru zodpovedajú:

<winstrom version="1.0">
<kusovnik filter="hladina eq 1" action="prepocti-nakupni-cenu"/>
</winstrom>

A rovnaký dotaz v JSON:

{
"winstrom": {
"kusovnik": {
"@filter": "hladina eq 1",
"@action": "prepocti-nakupni-cenu"
}
}
}

Počet skutočne prepočítaných záznamov si prečítajte z updated v odpovedi — filter na hladinu zvyčajne zasiahne desiatky kusovníkov.


Neúspešné požiadavky

Situácia

Odpoveď

Zadaný kusovník neexistuje

400, idNotFound — Nebyl nalezen zaznam s ID = 666: cz.winstrom.vo.cen.Kusovnik#666 [666]

Preklep v názve akcie

400, importXmlActionNotSupported — Atribut 'action' obsahuje špatnou hodnotu. Pro daný objekt smí obsahovat jen: [delete, prepocti-nakupni-cenu, prepocti-prodejni-cenu]

Filter nedodržiava pravidlá filtrácie

400 — Špatný formát WQL dotazu, problém na pozici 20 poblíž textu 'x', prípadne konkrétnejší kód, napríklad wqlVlastnostNeniCislo

Filtrovaná hladina neobsahuje žiadny kusovník

201 s updated rovným nule a prázdnym results


Súvisiace

Ste s tem dobili odgovor na svoje vprašanje?