Realizace objednávky

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

Petr Pech avatar
Autor: Petr Pech
Aktualizováno před více než týdnem

Přes REST API lze realizovat objednávku a to takto:

  • faktura vydaná (faktura-vydana)

  • faktura přijatá (faktura-prijata)

  • skladový pohyb (skladovy-pohyb)

  • prodejka (prodejka)

Lze určit typ dokladu (typDokl) a sklad (sklad). Pokud nejsou uvedeny, použije se výchozí typ dokladu z objednávky. Datum se použije vždy aktuální dle aktuálního účetního období, prozatím nelze datum vystavení jinak určit.

Dále je možné nastavit v případě realizace fakturou typDoklSkl, například code:VYDEJPOOBP. Využití je v případě, že typDokl vytvářené faktury nemá uvedený typ skladového dokladu.

Realizace objednávky do již existující faktury je možná pouze za předpokladu, že je faktura neuzamčená, položková, není stornovaná, není uhrazená nebo není odeslaná do EET.

Můžete také určit zda se mají při nedostatku zboží generovat požadavky na výdej (true)

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

Realizace objednávky byla navrhovaná především pro čtečky čárového kódu. Proto je jedno zda je zadáno výrobní číslo nebo zboží (pouze EAN). EAN se uvádí buď přímo a nebo s prefixem ean:. Doporučujeme používat tento prefix při zadání EANu.

Vytvářenému dokladu je možné přiřadit externí identifikátor, pomocí kterého je možné ho ještě v průběhu stejného importu modifikovat. V případě realizace do faktury vydané / přijaté je možné uvést již existující doklad, ke kterému budou přidány nově realizované položky. Pro ostatní typy realizací dochází vždy k vytvoření nového dokladu a uvedení existujícího dokladu způsobí chybu importu.

Příklady XML

Základní jednoduchá realizace dle identifikace zboží:

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

Realizace dle identifikace řádku v objednávce (stačí pouze jeden identifikátor). U realizace objednávky lze použít i pořadí položky:

<?xml version="1.0"?>
<winstrom version="1.0">
<objednavka-prijata>
<id>code:OBP0004/2012</id>
<realizaceObj type="faktura-vydana">
<polozkyObchDokladu>
<polozka>
<!-- číslo řádky v objednávce -->
<cisRad>1</cisRad>
<!-- další možnost identifikace, lze použít libovolný identifikátor -->
<id>extId...</id>
<mj>1</mj>
</polozka>
</polozkyObchDokladu>
</realizaceObj>
</objednavka-prijata>
</winstrom>

Při realizaci objednávky můžeme také rovnou definovat, která šarže či expirace má být realizována:

<?xml version="1.0"?>
<winstrom version="1.0">
<objednavka-prijata>
<id>code:OBP0004/2012</id>
<realizaceObj type="faktura-vydana">
<polozkyObchDokladu>
<polozka>
<cisRad>1</cisRad>
<!-- lze uvést pouze jeden z údajů (v závislosti nastavení ceníkové položky), je nutno vybírat ze šarží či expirací, co jsou právě na skladě -->
<sarze>XY12345</sarze>
<expirace>2021-12-31</expirace>
<mj>1</mj>
</polozka>
</polozkyObchDokladu>
</realizaceObj>
</objednavka-prijata>
</winstrom>

Příklad kompletní struktury XML:

<?xml version="1.0"?>
<winstrom version="1.0">
<objednavka-prijata>
<id>code:OBP0004/2012</id>
<!-- faktura-vydana/prodejka/faktura-prijata/skladovy-pohyb-->
<realizaceObj type="faktura-vydana">
<!-- lze použít libovolný identifikátor-->
<id>ext:...</id>
<typDokl>...</typDokl>
<sklad>...</sklad>
<varSym>...</varSym>
<!-- nepovinné -->
<generovatPozadavky>true</generovatPozadavky>
<!-- 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>2013-01-01</datSplat>
<polozkyObchDokladu>
<polozka>
<!-- následují tři způsoby identifikace položky -->
<!-- <id>extId...</id> -->
<!-- <cisRad>1</cisRad> -->
<!-- EAN ceníku nebo výrobní číslo -->
<cenikNeboVyrobniCislo>123skl</cenikNeboVyrobniCislo>
<!-- pokud se najde podle EAN nebo výrobního čísla z předcházející řádky, je to vždy 1; nemusí se uvádět, pokud je uveden seznam výrobních čísel -->
<mj>1</mj>
<vyrobniCisla>
<!-- použito pokud se nenajde podle výrobního čisla - tj. u přijatých faktur je nutné zadat výrobní čísla vždy pokud jsou vyžadovány -->
<vyrobniCislo>123</vyrobniCislo>
<vyrobniCislo>456</vyrobniCislo>
</vyrobniCisla>
<!-- lze uvést pouze jeden z údajů (v závislosti nastavení ceníkové položky), je nutno vybírat ze šarží či expirací, co jsou právě na skladě -->
<sarze>XY12345</sarze>
<expirace>2021-12-31</expirace>
</polozka>
</polozkyObchDokladu>
</realizaceObj>
</objednavka-prijata>
</winstrom>

Ukázka použití JSON:

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

Tvorba zálohy

Z objednávky přijaté 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.

Výsledný request může vypadat například takto:

<?xml version="1.0"?>
<winstrom version="1.0">
<objednavka-prijata>
<id>code:OBP0004/2012</id>
<tvorbaZalohy>
<id>ext:...</id>
<!-- lze použít libovolný identifikátor -->
<typDokl>...</typDokl>
<!-- částka vytvářené zálohy -->
<castka>...</castka>
<!-- alternativní zadání částky zálohy zadáním procent z celkové částky objednávky -->
<procent>...</procent>
</tvorbaZalohy>
</objednavka-prijata>
</winstrom>
Dostali jste odpověď na svou otázku?