Preskoči na glavno vsebino

Objednanie tovaru v prijatej objednávke

Vytvorenie vydanej objednávky z prijatej objednávky cez REST API

Avtor: Petr Pech

Objednanie položiek z prijatej objednávky (OBP) objednávkou vydanou (OBV) je v REST API implementované ako virtuálna evidencia /objednani. Tá má dva sub-resources:

Adresa

Metódy

Čo robí

/c/{firma}/objednani/polozek

POST, PUT

Vytvorí OBV pre zadaných dodávateľov a vybrané položky OBP s uvedením objednávaného množstva.

/c/{firma}/objednani/hromadne

POST, PUT, GET

Automaticky vytvorí OBV zo všetkých položiek OBP, ktoré majú nastaveného primárneho dodávateľa.


Objednanie vybraných položiek

V tele požiadavky uvediete element objednaniPolozek s týmito vlastnosťami:

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 }
]
}
}
}

Odpoveďou je 201 Created s identifikátormi vytvorený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í sú dodavatel a mnozMj. Iné pomenovanie server odmietne s výpisom povolených elementov — napríklad dodavatelFirma vráti 400 so správou unexpected element … Expected elements are <dodavatel>, <polozkyObp>, <typDokl>. Vynechaný dodavatel vracia 400 s kódom importXmlMissingIdentifier.

Viacero dodávateľov v jednej požiadavke

Element objednaniPolozek možno v jednej požiadavke uviesť viackrát — pre každého dodávateľa 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 }
]
}
]
}
}

Odpoveďou je opäť 201 Created, tentokrát s dvomi vytvorený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é objednanie

Hromadné objednanie vytvorí OBV zo všetkých položiek OBP, ktoré majú nastaveného primárneho dodávateľa. Vyžaduje iba typDokl, a to buď v tele požiadavky, alebo ako parameter dotazu.

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

Rovnaký výsledok dosiahnete aj metódou GET s typom dokladu v parametri:

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

V oboch prípadoch je odpoveďou 201 Created so zoznamom ID vytvorený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é objednanie nerešpektuje parameter testovacieho uloženia ?dry-run=true — objednávky vydané sa vytvoria aj s ním. Volanie si preto neskúšajte „nanečisto" v produkčnej firme.


Neúspešné požiadavky

Ak nemožno objednať žiadnu z odovzdaných položiek, služba vracia 400 Bad Request s kódom obchodGenerNicProHromObj:

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

Vynechaný typDokl pri hromadnom objednaní vracia 400 s kódom importXmlMissingIdentifier a hlásením Identifikátor (typDokl) není uveden.


Súvisiace

Ste s tem dobili odgovor na svoje vprašanje?