Pomocou kusovníka je možné vo Flexi nastaviť obsah a štruktúru materiálu, z ktorého sa výrobok či polotovar skladá. Konkrétne princípy a možnosti nastavenia popisuje dokumentácia k nastaveniu v aplikácii ABRA Flexi.
V tejto dokumentácii sa však zameriame na to, ako s kusovníkom pracovať v REST API.
⚠️ Kusovník je dostupný od variantu licencie Premium. V nižších variantoch endpoint /kusovnik nevyužijete.
Založenie kusovníka (POST / PUT)
Kusovník môžeme založiť metódou POST alebo PUT na URL endpoint /kusovnik. Dostupné polia endpointu (resp. evidencie) nájdete v tzv. evidence-liste.
Jeden záznam kusovníka je vždy hlavička kusovníka (výrobok / polotovar) alebo jeden materiál (inak tiež riadok, uzol), ktorý pre hlavičku kusovníka vytvárate.
Na príklade si však ukážeme, ako založiť kusovník pre jednu položku iba s poľami nevyhnutnými pre založenie. Rad polí dostupných v evidencii je totiž nepovinný.
Polia vyplnené nižšie v requeste pre založenie sú povinné.
Príklad
Chceme založiť kusovník pre výrobu predného kolesa, zároveň však aj hlavičku a materiál v ňom obsiahnutý. Všetko teda zahrnieme do jedného requestu.
XML
POST / PUT na https://demo.flexibee.eu/c/kusovnik.xml
<winstrom version="1.0">
<kusovnik>
<id>ext:KUS:1</id>
<mnoz>1.0</mnoz>
<hladina>1</hladina>
<poradi>1</poradi>
<cesta>1/</cesta>
<otecCenik>code:PŘEDNÍ_KOLO</otecCenik>
<cenik>code:PŘEDNÍ_KOLO</cenik> <!-- Jedná se o hlavičku kusovníku, shodný s otecCenik-->
<otec></otec> <!-- Prázdný, jedná se o hlavičku-->
</kusovnik>
<kusovnik>
<id>ext:KUS:2</id>
<mnoz>1.0</mnoz>
<hladina>2</hladina>
<poradi>1</poradi>
<cesta>1/1/</cesta>
<otecCenik>code:PŘEDNÍ_KOLO</otecCenik>
<cenik>code:RÁFEK</cenik>
<otec>ext:KUS:1</otec>
</kusovnik>
<kusovnik>
<id>ext:KUS:3</id>
<mnoz>32.0</mnoz>
<hladina>2</hladina>
<poradi>2</poradi>
<cesta>1/2/</cesta>
<otecCenik>code:PŘEDNÍ_KOLO</otecCenik>
<cenik>code:DRÁTY</cenik>
<otec>ext:KUS:1</otec>
</kusovnik>
<kusovnik>
<id>ext:KUS:4</id>
<mnoz>1.0</mnoz>
<hladina>2</hladina>
<poradi>3</poradi>
<cesta>1/3/</cesta>
<otecCenik>code:PŘEDNÍ_KOLO</otecCenik>
<cenik>code:STŘED</cenik>
<otec>ext:KUS:1</otec>
</kusovnik>
</winstrom>
JSON
{
"winstrom":{
"@version":"1.0",
"kusovnik":[
{
"id":"ext:KUS:1",
"mnoz":"1.0",
"hladina":"1",
"poradi":"1",
"cesta":"1/",
"otecCenik":"code:PŘEDNÍ_KOLO",
"cenik":"code:PŘEDNÍ_KOLO",
"otec":""
},
{
"id":"ext:KUS:2",
"mnoz":"1.0",
"hladina":"2",
"poradi":"1",
"cesta":"1/1/",
"otecCenik":"code:PŘEDNÍ_KOLO",
"cenik":"code:RÁFEK",
"otec":"ext:KUS:1"
},
{
"id":"ext:KUS:3",
"mnoz":"32.0",
"hladina":"2",
"poradi":"2",
"cesta":"1/2/",
"otecCenik":"code:PŘEDNÍ_KOLO",
"cenik":"code:DRÁTY",
"otec":"ext:KUS:1"
},
{
"id":"ext:KUS:4",
"mnoz":"1.0",
"hladina":"2",
"poradi":"3",
"cesta":"1/3/",
"otecCenik":"code:PŘEDNÍ_KOLO",
"cenik":"code:STŘED",
"otec":"ext:KUS:1"
}
]
}
}
Získanie kusovníka (GET)
Metódou GET môžeme exportovať všetky vytvorené kusovníky, hlavičky aj jednotlivý materiál v kusovníku obsiahnutý.
Príklad
Chceme získať vyššie založený kusovník, teda kompletný kusovník pre cenníkovú položku s kódom "PŘEDNÍ_KOLO".
Ľubovoľne je možné použiť filtráciu (v URL / query), úroveň detailu alebo iný z podporovaných formátov.
XML
GET na /kusovnik/(otecCenik='code:PŘEDNÍ_KOLO').xml?detail=full
Príklad kompletnej URL adresy:
https://demo.flexibee.eu/c/flexi/kusovnik/(otecCenik='code:PŘEDNÍ_KOLO').xml?detail=full
JSON
GET na /kusovnik/(otecCenik='code:PŘEDNÍ_KOLO').json?detail=full
Príklad kompletnej URL adresy:
https://demo.flexibee.eu/c/flexi/kusovnik/(otecCenik='code:PŘEDNÍ_KOLO').json?detail=full
Prepočet cien kusovníka
Hodnotu výrobku (položky, kde je nastavený kusovník) je možné prepočítavať z cien materiálu, popr. služieb (všeobecne položiek, ktoré sú v kusovníku nastavené).
Celý postup je popísaný v našej dokumentácii.
FAQ
Je možné automaticky aktualizovať ceny kusovníka?
Áno, v súčasnosti však iba prostredníctvom API - pravidelným zasielaním POST / PUT na URL adresu uvedenú v dokumentácii pre prepočet cien.
Môžem hromadne založiť viacero kusovníkov naraz?
Áno, všetko vložte do jedného requestu. Štruktúra musí byť rovnaká ako pri príklade pre založenie.
Ako kusovník odstrániť?
Použitím action="delete", tzv. vykonaním akcie. Podrobnosti nájdete v našej dokumentácii.
