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": []