Preskoči na glavno vsebino

Vybavenie objednávky

Ako zrealizovať prijatú objednávku cez REST API?

Avtor: Petr Pech

Cez REST API je možné realizovať prijatú objednávku, teda vytvoriť z nej nadväzujúci doklad. Slúži na to element realizaceObj, ktorého atribút type určuje, aký doklad má vzniknúť.

Cieľový doklad

Hodnota atribútu type

Faktúra vydaná

faktura-vydana

Faktúra prijatá

faktura-prijata

Skladový pohyb

skladovy-pohyb

Predajka

prodejka

Objednávku je možné realizovať na niekoľkokrát, napríklad podľa dostupnosti tovaru. Informácie o stave realizácie potom môžete získať z položiek objednávky.


Parametre realizácie

Vlastnosti sa uvádzajú vnútri elementu realizaceObj:

Vlastnosť

Význam

id

Nepovinný identifikátor vytváraného dokladu. Je možné použiť aj externý identifikátor, vďaka ktorému je možné doklad ešte v priebehu rovnakého importu upraviť.

typDokl

Typ vytváraného dokladu. Ak nie je uvedený, použije sa predvolený typ dokladu z objednávky.

typDoklSkl

Typ skladového dokladu, napríklad code:VYDEJPOOBP. Uplatní sa pri realizácii faktúrou v prípade, že typDokl vytváranej faktúry nemá uvedený typ skladového dokladu.

sklad

Sklad, z ktorého sa má vydávať.

varSym

Variabilný symbol vytváraného dokladu.

generovatPozadavky

Hodnotou true určíte, že sa majú pri nedostatku tovaru generovať požiadavky na výdaj.

zahrnoutSkladoveDoklady

Pri faktúre určuje, či sa majú zahrnúť aj nevyfakturované naviazané skladové doklady. Tovar z týchto skladových dokladov sa potom už neuvádza v zozname polozkyObchDokladu.

odpocetZaloh

Pri vydanej faktúre určuje, či sa majú odpočítať naviazané zálohy.

cisDosle

Pri prijatej faktúre povinné číslo došlej faktúry.

datSplat

Pri prijatej faktúre povinný dátum splatnosti.

⚠️ Dátum vystavenia sa vždy použije aktuálny podľa aktuálneho účtovného obdobia, zatiaľ ho nie je možné určiť inak.

ℹ️ Realizácia do už existujúcej faktúry je možná iba pri faktúre vydanej a prijatej, a to za predpokladu, že faktúra nie je uzamknutá, je položková, nie je stornovaná, uhradená ani odoslaná do EET. Pri ostatných typoch realizácie vzniká vždy nový doklad a uvedenie existujúceho dokladu spôsobí chybu importu.


Identifikácia položiek

Realizované položky sa uvádzajú v zozname polozkyObchDokladu ako jednotlivé elementy polozka. Položku je možné identifikovať tromi spôsobmi — stačí vždy jeden z nich:

  • cenikNeboVyrobniCislo — EAN cenníkovej položky alebo výrobné číslo. EAN je možné uviesť priamo alebo s prefixom ean:; odporúčame používať prefix.

  • cisRad — číslo riadku v objednávke, teda poradie položky.

  • id — ľubovoľný identifikátor položky objednávky, vrátane externého.

Ďalej je možné pri položke uviesť:

  • mj — realizované množstvo. Ak sa položka nájde podľa EAN alebo výrobného čísla z predchádzajúceho riadku, je to vždy 1. Nemusí sa uvádzať, ak je uvedený zoznam výrobných čísel.

  • vyrobniCisla — zoznam elementov vyrobniCislo. Použije sa, ak sa položka nenájde podľa výrobného čísla; pri prijatých faktúrach je nutné výrobné čísla zadať vždy, ak sú vyžadované.

  • sarze alebo expiracešarža či expirácia. Podľa nastavenia cenníkovej položky je možné uviesť iba jeden z údajov a vyberať ich je nutné z tých, ktoré sú práve na sklade.

ℹ️ Realizácia objednávky bola navrhnutá predovšetkým pre čítačky čiarového kódu. Preto nezáleží na tom, či je zadané výrobné číslo, alebo tovar podľa EAN.


Príklady v XML

Základná podoba — realizácia podľa identifikácie tovaru

<?xml version="1.0"?>
<winstrom version="1.0">
<objednavka-prijata>
<id>code:OBP0004/2024</id>
<realizaceObj type="faktura-vydana">
<polozkyObchDokladu>
<polozka>
<cenikNeboVyrobniCislo>123skl</cenikNeboVyrobniCislo>
<mj>1</mj>
</polozka>
</polozkyObchDokladu>
</realizaceObj>
</objednavka-prijata>
</winstrom>

Realizácia podľa identifikácie riadku v objednávke

<?xml version="1.0"?>
<winstrom version="1.0">
<objednavka-prijata>
<id>code:OBP0004/2024</id>
<realizaceObj type="faktura-vydana">
<polozkyObchDokladu>
<polozka>
<!-- číslo řádku v objednávce -->
<cisRad>1</cisRad>
<mj>1</mj>
</polozka>
</polozkyObchDokladu>
</realizaceObj>
</objednavka-prijata>
</winstrom>

Realizácia so šaržou a expiráciou

<?xml version="1.0"?>
<winstrom version="1.0">
<objednavka-prijata>
<id>code:OBP0004/2024</id>
<realizaceObj type="faktura-vydana">
<polozkyObchDokladu>
<polozka>
<cisRad>1</cisRad>
<!-- lze uvést pouze jeden z údajů podle nastavení ceníkové položky -->
<sarze>XY12345</sarze>
<expirace>2024-12-31</expirace>
<mj>1</mj>
</polozka>
</polozkyObchDokladu>
</realizaceObj>
</objednavka-prijata>
</winstrom>

Kompletná štruktúra

<?xml version="1.0"?>
<winstrom version="1.0">
<objednavka-prijata>
<id>code:OBP0004/2024</id>
<!-- faktura-vydana / faktura-prijata / skladovy-pohyb / prodejka -->
<realizaceObj type="faktura-vydana">
<!-- lze použít libovolný identifikátor -->
<id>ext:...</id>
<typDokl>...</typDokl>
<sklad>...</sklad>
<varSym>...</varSym>
<!-- generování požadavků na výdej při nedostatku zboží -->
<generovatPozadavky>true</generovatPozadavky>
<!-- u faktury říká, zda se mají zahrnout i nevyfakturované navázané skladové doklady -->
<zahrnoutSkladoveDoklady>true</zahrnoutSkladoveDoklady>
<!-- u vydané faktury říká, zda se mají odpočítat navázané zálohy -->
<odpocetZaloh>true</odpocetZaloh>
<!-- u přijaté faktury povinné -->
<cisDosle>...</cisDosle>
<!-- u přijaté faktury povinné -->
<datSplat>2024-01-01</datSplat>
<polozkyObchDokladu>
<polozka>
<!-- následují tři způsoby identifikace položky, stačí jeden -->
<!-- <id>extId...</id> -->
<!-- <cisRad>1</cisRad> -->
<cenikNeboVyrobniCislo>123skl</cenikNeboVyrobniCislo>
<mj>1</mj>
<vyrobniCisla>
<vyrobniCislo>123</vyrobniCislo>
<vyrobniCislo>456</vyrobniCislo>
</vyrobniCisla>
<sarze>XY12345</sarze>
<expirace>2024-12-31</expirace>
</polozka>
</polozkyObchDokladu>
</realizaceObj>
</objednavka-prijata>
</winstrom>


Ukážka v JSON

{
"winstrom": {
"objednavka-prijata": {
"id": "code:OBP0004/2024",
"realizaceObj@type": "faktura-vydana",
"realizaceObj": {
"typDokl": "code:FAKTURA",
"varSym": "12345",
"polozkyObchDokladu": [
{
"cisRad": 1,
"mj": "1",
"vyrobniCisla": [ 123, 456 ]
}
]
}
}
}
}


Realizácia položiek s balením

Príklad nastavenia balenia pri cenníkovej položke — predvolená MJ je kus, balenie 100 ks:

Takto potom vyzerá položka prijatej objednávky:

V realizácii sa množstvo uvádza vo výchozích merných jednotkách, nie v baleniach:

<?xml version="1.0"?>
<winstrom version="1.0">
<objednavka-prijata>
<id>code:OBP0004/2024</id>
<realizaceObj type="skladovy-pohyb">
<polozkyObchDokladu>
<polozka>
<cisRad>1</cisRad>
<mj>300</mj>
</polozka>
</polozkyObchDokladu>
</realizaceObj>
</objednavka-prijata>
</winstrom>


Tvorba zálohy

Z prijatej objednávky je možné vytvoriť aj vydanú zálohu. Podobne ako v aplikácii môžete priamo určiť sumu zálohy, ktorá nemusí zodpovedať plnej cene objednávky.

<?xml version="1.0"?>
<winstrom version="1.0">
<objednavka-prijata>
<id>code:OBP0004/2024</id>
<tvorbaZalohy>
<!-- lze použít libovolný identifikátor -->
<id>ext:...</id>
<typDokl>...</typDokl>
<!-- částka vytvářené zálohy -->
<castka>...</castka>
<!-- alternativně částka zadaná procenty z celkové částky objednávky -->
<procent>...</procent>
</tvorbaZalohy>
</objednavka-prijata>
</winstrom>


Realizácia v rámci tvorby faktúry

V rámci jednej API požiadavky je možné vytvoriť faktúru a zároveň do nej realizovať existujúcu objednávku. Slúži na to dočasný identifikátor v tvare tmp:FAV123, ktorým sa odkážete na práve vytváranú faktúru.

<?xml version="1.0" encoding="utf-8"?>
<winstrom version="1.0">
<faktura-vydana>
<id>tmp:FAV123</id>
<typDokl>code:FAKTURA</typDokl>
<firma>code:ČOKOLÁDA</firma>
<datVyst>2026-01-08</datVyst>
</faktura-vydana>
<objednavka-prijata>
<id>56</id>
<realizaceObj type="faktura-vydana">
<id>tmp:FAV123</id>
<typDokl>code:FAKTURA</typDokl>
<polozkyObchDokladu>
<polozka>
<cisRad>1</cisRad>
<mj>1</mj>
</polozka>
</polozkyObchDokladu>
</realizaceObj>
</objednavka-prijata>
</winstrom>


Súvisiace

Ste s tem dobili odgovor na svoje vprašanje?