Přeskočit na hlavní obsah
Všechny sbírkyDokumentace REST APIPokroč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ž 2 lety

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?