Všechny sbírky
Dokumentace REST API
Pokročilé příkazy
Přepočítání cen kusovníku přes REST API
Přepočítání cen kusovníku přes REST API

Jak přepočítat kusovník pomocí REST API

Ota Rádl avatar
Autor: Ota Rádl
Aktualizováno před více než týdnem

Rest API umožňuje přepočítat nákupní a prodejní cenu kusovníku pomocí akcí prepocti-nakupni-cenu a prepocti-prodejni-cenu.

Přepočet cen kusovníku slouží k úpravě ceny výrobku v případě, že se změnily ceny materiálů ze kterých se výrobek skládá. Jedná se o služby, která pracují stejně jako tlačítka v aplikaci.

Při samotné výrobě (resp. příjmu výrobku na sklad) se však cena přijatého výrobku vypočte sama dle skutečné ceny spotřebovaného materiálu. Bude tedy korespondovat s cenou materiálu nehledě na ceně uvedené v kusovníku.

Pozn.: Akce sčítají pouze ceny z jedné úrovně kusovníku. Pokud se tedy kusovník skládá z dalších kusovníků, je třeba přepočítat nejdříve tyto kusovníky.

Více o kusovníku se dozvíte v dokumentaci.

K provedení akce prepocti-nakupni-cenu a prepocti-prodejni-cenu. musíme znát konkrétní ID kusovníku nebo je možné využít filtrace a přepočítat kusovníky na stejné hladině.

Příklady použití

Request zasíláme metodou 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>

Obdobně lze request zaslat ve formátu JSON a pomocí ID kusovníku:

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

Odpověď ABRA Flexi je pak aktualizace 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"
}
]
}
}

Filtrování hladin pro přepočet

Hladina kusovníku určuje jakou úroveň kusovníku se chystáme přepočítat.

Pozn. Přepočte ceny všech kusovníků, nejen, které odpovídají filtru, tedy pokud není omezeno na konkrétní kusovník, dojde k přepočtu cen u všech kusovníků s danou hladinou.

Akci lze vyvolat dávkově nad skupinou kusovníků pomocí filtru:

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

Obdobně lze request zaslat ve formátu JSON a pomocí filtrace:

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

Neúspěšné requesty

1. zadaný/filtrovaný objekt (kusovník) neexistuje

V případě, že se objekt nepodaří nalézt/neexistuje, je odpověď API:

"message": "Nebyl nalezen zaznam s id = 666: cz.winstrom.vo.cen.Kusovnik#1222 [1222]",


2. akce je špatně zapsána

V případě, že voláte špatnou akci (překlep či chyba v názvu):

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

3. špatně zapsaný filtr

Filtr neodpovídá definovaným pravidlům filtrace, odpovědí je přibližná pozice chyby ve filtru:

<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. hladina neexistuje

V případě, že přepočtete neexistující hladinu, vrátí se prázdný výsledek

"results": []


Dostali jste odpověď na svou otázku?