Přeskočit na hlavní obsah

Realizace objednávky

Jak realizovat přijatou objednávku přes REST API?

Autor: Petr Pech

Přes REST API lze realizovat přijatou objednávku, tedy vytvořit z ní navazující doklad. Slouží k tomu element realizaceObj, jehož atribut type určuje, jaký doklad má vzniknout.

Cílový doklad

Hodnota atributu type

Faktura vydaná

faktura-vydana

Faktura přijatá

faktura-prijata

Skladový pohyb

skladovy-pohyb

Prodejka

prodejka

Objednávku lze realizovat na několikrát, například podle dostupnosti zboží. Informace o stavu realizace je pak možné získat z položek objednávky.


Parametry realizace

Vlastnosti se uvádějí uvnitř elementu realizaceObj:

Vlastnost

Význam

id

Nepovinný identifikátor vytvářeného dokladu. Lze použít i externí identifikátor, díky němuž je možné doklad ještě v průběhu stejného importu modifikovat.

typDokl

Typ vytvářeného dokladu. Pokud není uveden, použije se výchozí typ dokladu z objednávky.

typDoklSkl

Typ skladového dokladu, například code:VYDEJPOOBP. Uplatní se při realizaci fakturou v případě, že typDokl vytvářené faktury nemá typ skladového dokladu uvedený.

sklad

Sklad, ze kterého se má vydávat.

varSym

Variabilní symbol vytvářeného dokladu.

generovatPozadavky

Hodnotou true určíte, že se mají při nedostatku zboží generovat požadavky na výdej.

zahrnoutSkladoveDoklady

U faktury říká, zda se mají zahrnout i nevyfakturované navázané skladové doklady. Zboží z těchto skladových dokladů se pak už neuvádí v seznamu polozkyObchDokladu.

odpocetZaloh

U vydané faktury říká, zda se mají odpočítat navázané zálohy.

cisDosle

U přijaté faktury povinné číslo došlé faktury.

datSplat

U přijaté faktury povinné datum splatnosti.

⚠️ Datum vystavení se použije vždy aktuální podle aktuálního účetního období, prozatím jej nelze určit jinak.

ℹ️ Realizace do již existující faktury je možná pouze u faktury vydané a přijaté, a to za předpokladu, že faktura není uzamčená, je položková, není stornovaná, uhrazená ani odeslaná do EET. U ostatních typů realizace vzniká vždy nový doklad a uvedení existujícího dokladu způsobí chybu importu.


Identifikace položek

Realizované položky se uvádějí v seznamu polozkyObchDokladu jako jednotlivé elementy polozka. Položku lze identifikovat třemi způsoby — stačí vždy jeden z nich:

  • cenikNeboVyrobniCislo — EAN ceníkové položky nebo výrobní číslo. EAN lze uvést přímo nebo s prefixem ean:; doporučujeme používat prefix.

  • cisRad — číslo řádku v objednávce, tedy pořadí položky.

  • id — libovolný identifikátor položky objednávky, včetně externího.

Dále lze u položky uvést:

  • mj — realizované množství. Pokud se položka najde podle EAN nebo výrobního čísla z předcházejícího řádku, je to vždy 1. Nemusí se uvádět, pokud je uveden seznam výrobních čísel.

  • vyrobniCisla — seznam elementů vyrobniCislo. Použije se, pokud se položka nenajde podle výrobního čísla; u přijatých faktur je nutné výrobní čísla zadat vždy, jsou-li vyžadována.

  • sarze nebo expiracešarže či expirace. Podle nastavení ceníkové položky lze uvést pouze jeden z údajů a vybírat je nutné z těch, které jsou právě na skladě.

ℹ️ Realizace objednávky byla navržena především pro čtečky čárového kódu. Proto je jedno, zda je zadáno výrobní číslo, nebo zboží podle EAN.


Příklady v XML

Základní podoba — realizace podle identifikace zboží

<?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>

Realizace podle identifikace řádku v objednávce

<?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>

Realizace se šarží a expirací

<?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í struktura

<?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ázka 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 ]
}
]
}
}
}
}


Realizace položek s balením

Příklad nastavení balení u ceníkové položky — výchozí MJ je kus, balení 100 ks:

Takto pak vypadá položka přijaté objednávky:

V realizaci se množství uvádí ve výchozích měrných jednotkách, nikoli v baleních:

<?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 přijaté objednávky lze vytvořit i vydanou zálohu. Obdobně jako v aplikaci můžete přímo určit částku zálohy, která nemusí odpovídat plné ceně 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>


Realizace v rámci tvorby faktury

V rámci jednoho API požadavku lze vytvořit fakturu a zároveň do ní realizovat existující objednávku. Slouží k tomu dočasný identifikátor ve tvaru tmp:FAV123, kterým se na právě vytvářenou fakturu odkážete.

<?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>


Související

Dostali jste odpověď na svou otázku?