Objednávka pro výrobu vzniká z existující objednávky vydané: REST API projde její položky, rozpadne je podle kusovníku na materiál a z něj vytvoří novou objednávku vydanou na vybraného dodavatele. Aby to fungovalo, musí mít položky materiálu nastavený kusovník a mapování skladu.
ℹ️ Služba je dostupná pouze nad evidencí objednávek vydaných. Chování funkce v aplikaci popisuje článek Objednávka vydaná.
Sestavení URL
Objednávání pro výrobu je v REST API implementováno jako virtuální evidence objednani se dvěma subevidencemi. Volání probíhá ve dvou krocích — nejprve si vyžádáte seznam materiálu, pak jej odešlete zpět na tvorbu objednávky.
Adresa | Metody | Co dělá |
|
| Vrátí materiál potřebný pro výrobu zboží na vyfiltrovaných objednávkách. |
|
| Vytvoří objednávku materiálu od zadaných dodavatelů. |
Podporované výstupní formáty jsou XML a JSON, volí se příponou v URL. Přehled HTTP metod najdete ve vývojářské dokumentaci.
⚠️ Obě subevidence vyžadují filtr v URL, který identifikuje objekty z evidence objednavka-vydana — zapisuje se v kulatých závorkách mezi název virtuální evidence a název subevidence. Bez filtru vrací API 404 s kódem adresaNeplatnaUrl.
Získání seznamu materiálu
Dotaz metodou GET vrátí materiál rozpadlý podle kusovníku. U každé položky zbozi dostanete tyto vlastnosti:
Vlastnost | Význam |
| Zboží, které se bude objednávat. |
| Sklad, do kterého zboží patří. |
| Již objednané množství. |
| Vykryté rezervace. |
| Množství k objednání. |
| Objednávané množství — tuto hodnotu lze před odesláním upravit. |
| Množství skladem. |
| Minimální množství na skladě. |
Na objednávce vydané s ID 123 máme připravené k výrobě zboží, které má specifikovaný kusovník:
GET https://demo.flexibee.eu/c/demo/objednani/(id=123)/pro-vyrobu-zbozi.xml
Odpovědí je seznam materiálu:
<?xml version="1.0" ?>
<winstrom>
<zbozi>
<cenik>code:DRÁT</cenik>
<jizObjednano>680.9</jizObjednano>
<jizRezervovano>0.0</jizRezervovano>
<objednano>32.0</objednano>
<objednat>0.0</objednat>
<sklMinimum>0.0</sklMinimum>
<sklad>code:LIBEREC</sklad>
<skladem>49.7</skladem>
</zbozi>
<zbozi>
<cenik>code:STŘED</cenik>
<jizObjednano>0.0</jizObjednano>
<jizRezervovano>0.0</jizRezervovano>
<objednano>1.0</objednano>
<objednat>0.0</objednat>
<sklMinimum>0.0</sklMinimum>
<sklad>code:LIBEREC</sklad>
<skladem>112.0</skladem>
</zbozi>
<zbozi>
<cenik>code:RÁFEK</cenik>
<jizObjednano>0.0</jizObjednano>
<jizRezervovano>0.0</jizRezervovano>
<objednano>1.0</objednano>
<objednat>0.0</objednat>
<sklMinimum>0.0</sklMinimum>
<sklad>code:LIBEREC</sklad>
<skladem>122.0</skladem>
</zbozi>
</winstrom>
Stejný dotaz lze poslat i v JSON:
GET https://demo.flexibee.eu/c/demo/objednani/(id=123)/pro-vyrobu-zbozi.json
{
"winstrom": {
"zbozi": [
{
"cenik": "code:DRÁT",
"jizObjednano": "685.9",
"jizRezervovano": "0.0",
"objednano": "32.0",
"objednat": "0.0",
"sklMinimum": "0.0",
"sklad": "code:LIBEREC",
"skladem": "49.7"
},
{
"cenik": "code:STŘED",
"jizObjednano": "10.0",
"jizRezervovano": "0.0",
"objednano": "1.0",
"objednat": "0.0",
"sklMinimum": "0.0",
"sklad": "code:LIBEREC",
"skladem": "112.0"
},
{
"cenik": "code:RÁFEK",
"jizObjednano": "10.0",
"jizRezervovano": "0.0",
"objednano": "1.0",
"objednat": "0.0",
"sklMinimum": "0.0",
"sklad": "code:LIBEREC",
"skladem": "122.0"
}
]
}
}
Vytvoření objednávky pro výrobu
Získaný seznam materiálu — s případně upravenou hodnotou objednat — odešlete zpět jako tělo požadavku. Každý element objednaniProVyrobu vytvoří jednu objednávku vydanou a vyžaduje:
Element | Hodnota |
| ID nebo kód objektu z evidence typ-objednavky-vydane |
| ID nebo kód objektu z evidence adresar |
| Seznam elementů |
POST https://demo.flexibee.eu/c/demo/objednani/(id=123)/pro-vyrobu.xml
<?xml version="1.0" ?>
<winstrom>
<objednaniProVyrobu>
<typDokl>code:VYROBA</typDokl>
<dodavatel>code:SIGNA</dodavatel>
<zboziProVyrobu>
<zbozi>
<cenik>code:DRÁT</cenik>
<jizObjednano>680.9</jizObjednano>
<jizRezervovano>0.0</jizRezervovano>
<objednano>32.0</objednano>
<objednat>5.0</objednat>
<sklMinimum>0.0</sklMinimum>
<sklad>code:LIBEREC</sklad>
<skladem>49.7</skladem>
</zbozi>
<zbozi>
<cenik>code:STŘED</cenik>
<jizObjednano>0.0</jizObjednano>
<jizRezervovano>0.0</jizRezervovano>
<objednano>1.0</objednano>
<objednat>10.0</objednat>
<sklMinimum>0.0</sklMinimum>
<sklad>code:LIBEREC</sklad>
<skladem>112.0</skladem>
</zbozi>
</zboziProVyrobu>
</objednaniProVyrobu>
</winstrom>
Při úspěchu vrací API 201 Created s identifikátory vytvořených objednávek vydaných:
<?xml version="1.0" encoding="utf-8"?>
<winstrom version="1.0">
<success>true</success>
<stats>
<created>1</created>
<updated>0</updated>
<deleted>0</deleted>
<skipped>0</skipped>
<failed>0</failed>
</stats>
<results>
<result>
<id>363</id>
</result>
</results>
</winstrom>
⚠️ Zkontrolujte v odpovědi hodnotu created. Položku, u níž nelze určit sklad — například proto, že jste v zbozi vynechali element sklad — služba přeskočí, přesto ale vrátí 201 Created s created rovným nule a prázdným elementem results.
Objednání od více dodavatelů
Element objednaniProVyrobu lze v jednom požadavku uvést vícekrát — pro každého dodavatele vznikne samostatná objednávka:
POST https://demo.flexibee.eu/c/demo/objednani/(id=123)/pro-vyrobu.json
{
"winstrom": {
"@version": "1.0",
"objednaniProVyrobu": [
{
"typDokl": "code:OBV",
"dodavatel": "code:DODAVATEL-A",
"zboziProVyrobu": {
"zbozi": {
"cenik": "5",
"sklad": "4",
"jizObjednano": "0.0",
"jizRezervovano": "0.0",
"objednano": "10.0",
"objednat": "10.0",
"sklMinimum": "0.0",
"skladem": "0.0"
}
}
},
{
"typDokl": "code:OBV",
"dodavatel": "code:DODAVATEL-B",
"zboziProVyrobu": {
"zbozi": {
"cenik": "6",
"sklad": "4",
"jizObjednano": "0.0",
"jizRezervovano": "0.0",
"objednano": "20.0",
"objednat": "20.0",
"sklMinimum": "0.0",
"skladem": "0.0"
}
}
}
]
}
}
Objednání v baleních
Namísto elementu objednat je možné použít element objednatBaleni a zadat množství v baleních. Balení jsou definována v ceníku u zboží identifikovaného elementem cenik a v jednom požadavku lze zkombinovat více jejich druhů. Každé balení obsahuje:
id— identifikace balení v ceníku (hodnoty 1 až 5)mnozMj— objednávané množství v baleních (desetinné číslo)
Máme-li balení s id 1 po dvou kusech a balení s id 2 po čtyřech kusech, objedná následující dotaz 10 kusů zboží:
POST https://demo.flexibee.eu/c/demo/objednani/(id=123)/pro-vyrobu.json
{
"winstrom": {
"@version": "1.0",
"objednaniProVyrobu": {
"typDokl": "code:OBV",
"dodavatel": "code:DODAVATEL-A",
"zboziProVyrobu": {
"zbozi": {
"cenik": "5",
"sklad": "4",
"jizObjednano": "0.0",
"jizRezervovano": "0.0",
"objednano": "10.0",
"objednatBaleni": {
"baleni": [
{
"id": "1",
"mnozMj": "1.0"
},
{
"id": "2",
"mnozMj": "2.0"
}
]
},
"sklMinimum": "0.0",
"skladem": "0.0"
}
}
}
}
}
Na položce vytvořené objednávky se uloží počet balení do mnozBaleni a přepočtené množství v měrných jednotkách do mnozMj.
Neúspěšné požadavky
Situace | Odpověď |
Metoda |
|
V URL chybí filtr objednávek |
|
Objednávka je již objednána do výroby, nebo neobsahuje položku zboží s kusovníkem |
|
Materiál z kusovníku nemá nastavené mapování skladu |
|
V těle požadavku chybí |
|
Překlep v názvu elementu, například |
|
Chybová zpráva vzniká už při čtení seznamu materiálu, ne až při vytváření objednávky — kódy obchodGenerNicProHromObj a mapSkladChybi proto uvidíte i u dotazu GET na pro-vyrobu-zbozi.
🚨 Subevidence pro-vyrobu nerespektuje parametr testovacího uložení ?dry-run=true — objednávka vydaná se vytvoří i s ním. Volání si proto nezkoušejte „na nečisto" v produkční firmě.
