Přeskočit na hlavní obsah

Objednání zboží v přijaté objednávce

Tvorba objednávky vydané z objednávky přijaté přes REST API

Autor: Petr Pech

Objednání položek z přijaté objednávky (OBP) objednávkou vydanou (OBV) je v REST API implementováno jako virtuální evidence /objednani. Ta má dva sub-resources:

Adresa

Metody

Co dělá

/c/{firma}/objednani/polozek

POST, PUT

Vytvoří OBV pro zadané dodavatele a vybrané položky OBP s uvedením objednávaného množství.

/c/{firma}/objednani/hromadne

POST, PUT, GET

Automaticky vytvoří OBV ze všech položek OBP, které mají nastaveného primárního dodavatele.


Objednání vybraných položek

V těle požadavku uvedete element objednaniPolozek s těmito vlastnostmi:

POST https://demo.flexibee.eu/c/demo/objednani/polozek.json
{
"winstrom": {
"@version": "1.0",
"objednaniPolozek": {
"typDokl": "code:OBV",
"dodavatel": "code:AAA",
"polozkyObp": [
{ "id": 3704, "mnozMj": 2 },
{ "id": 3706, "mnozMj": 3 }
]
}
}
}

Odpovědí je 201 Created s identifikátory vytvořených OBV:

{
"winstrom": {
"@version": "1.0",
"success": true,
"stats": {
"created": 1,
"updated": 0,
"deleted": 0,
"skipped": 0,
"failed": 0
},
"results": [
{ "id": 1638 }
]
}
}

⚠️ Názvy vlastností jsou dodavatel a mnozMj. Jiné pojmenování server odmítne s výčtem povolených elementů — například dodavatelFirma vrátí 400 se zprávou unexpected element … Expected elements are <dodavatel>, <polozkyObp>, <typDokl>. Vynechaný dodavatel vrací 400 s kódem importXmlMissingIdentifier.

Více dodavatelů v jednom požadavku

Element objednaniPolozek lze v jednom požadavku uvést vícekrát — pro každého dodavatele vznikne samostatná OBV:

{
"winstrom": {
"@version": "1.0",
"objednaniPolozek": [
{
"typDokl": "code:OBV",
"dodavatel": "code:AAA",
"polozkyObp": [
{ "id": 3709, "mnozMj": 2 },
{ "id": 3711, "mnozMj": 3 }
]
},
{
"typDokl": "code:OBV",
"dodavatel": "code:ABC",
"polozkyObp": [
{ "id": 3715, "mnozMj": 4 },
{ "id": 3717, "mnozMj": 5 }
]
}
]
}
}

Odpovědí je opět 201 Created, tentokrát se dvěma vytvořenými OBV:

{
"winstrom": {
"@version": "1.0",
"success": true,
"stats": {
"created": 2,
"updated": 0,
"deleted": 0,
"skipped": 0,
"failed": 0
},
"results": [
{ "id": 1663 },
{ "id": 1664 }
]
}
}


Hromadné objednání

Hromadné objednání vytvoří OBV ze všech položek OBP, které mají nastaveného primárního dodavatele. Vyžaduje pouze typDokl, a to buď v těle požadavku, nebo jako parametr dotazu.

POST https://demo.flexibee.eu/c/demo/objednani/hromadne.json
{
"winstrom": {
"@version": "1.0",
"objednaniHromadne": {
"typDokl": "code:OBV"
}
}
}

Stejného výsledku dosáhnete i metodou GET s typem dokladu v parametru:

GET https://demo.flexibee.eu/c/demo/objednani/hromadne.json?typDokl=code:OBV

V obou případech je odpovědí 201 Created se seznamem ID vytvořených OBV:

{
"winstrom": {
"@version": "1.0",
"success": true,
"stats": {
"created": 2,
"updated": 0,
"deleted": 0,
"skipped": 0,
"failed": 0
},
"results": [
{ "id": 1639 },
{ "id": 1640 }
]
}
}

🚨 Hromadné objednání nerespektuje parametr testovacího uložení ?dry-run=true — objednávky vydané se vytvoří i s ním. Volání si proto nezkoušejte „na nečisto" v produkční firmě.


Neúspěšné požadavky

Pokud nelze žádnou z předaných položek objednat, vrací služba 400 Bad Request s kódem obchodGenerNicProHromObj:

{
"winstrom": {
"@version": 1,
"success": false,
"message": "Nebyly nalezeny žádné položky vhodné pro objednání."
}
}

Vynechaný typDokl u hromadného objednání vrací 400 s kódem importXmlMissingIdentifier a hlášením Identifikátor (typDokl) není uveden.


Související

Dostali jste odpověď na svou otázku?