Přeskočit na hlavní obsah

Inventura v REST API

Jak provést Inventuru pomocí REST API Flexi?

Autor: Petr Pech

Skladovou inventuru je možné obsloužit pomocí REST API. K dispozici jsou tři služby — vložení položek do inventury, aktualizace programových stavů a vygenerování dokladů z inventury.

Služba

Metoda

Adresa

POST

/c/{firma}/inventura/{id}/vloz-polozky

GET

/c/{firma}/inventura/{id}/aktualizuj-stavy

GET

/c/{firma}/inventura/{id}/vygeneruj-doklady

Kde {firma} je databázový identifikátor firmy a {id} databázový identifikátor inventury. Seznam dostupných inventur získáte na adrese /c/{firma}/inventura.xml?limit=0.


Vlož položky

Do inventury se vloží vybrané ceníky s výchozím množstvím. Vloží pouze ty ceníky, které se v inventuře nenachází, a nemění množství pro ceníky, které už v inventuře jsou. Akceptuje pouze skladové karty, které přísluší účetnímu období inventury — karty z jiného období budou vynechány.

Požadavek se posílá metodou POST na adresu /c/{firma}/inventura/{id}/vloz-polozky.{přípona}. Parametry se předávají v těle požadavku:

  • filterfiltr pro výběr skladových karet

  • initialValueNull — s hodnotou true určí, že výchozí množství má být null, jinak bude 0.0

Ukázka požadavku

<winstrom version="1.0">
<filter>(cenik in ('code:XO 253S SO I', 'code:XO CWAA1N000') and sklad = 'code:PLZEŇ')</filter>
<initialValueNull>true</initialValueNull>
</winstrom>

V odpovědi je uvedeno, kolik položek bylo do inventury vloženo:

<?xml version="1.0" encoding="utf-8"?>
<winstrom version="1.0">
<success>true</success>
<stats>
<created>2</created>
<updated>0</updated>
<deleted>0</deleted>
<skipped>0</skipped>
<failed>0</failed>
</stats>
<results>
<result></result>
</results>
</winstrom>

⚠️ Tato služba přijímá pouze metodu POST. Volání metodou GET vrací 405 Method Not Allowed.

Vložení položek přes evidenci

Položky do inventury je možné přidat i přes evidenci /inventura-polozka. V požadavku POST zašlete kód ceníkové položky, reálné množství na skladě a identifikaci inventury, do které chcete položku přidat:

POST https://demo.flexibee.eu/c/demo/inventura-polozka.xml
<?xml version="1.0"?>
<winstrom>
<inventura-polozka>
<!-- kód ceníkové položky -->
<cenik>code:TRIKO123</cenik>
<!-- reálné množství zjištěné při inventuře fyzického skladu -->
<mnozmjreal>157</mnozmjreal>
<!-- identifikátor inventury, do které položku přidáváme -->
<inventura>3</inventura>
</inventura-polozka>
</winstrom>


Aktualizuj stavy

Aktualizuje programový stav, který se kvůli později vytvořeným skladovým pohybům může lišit od toho uvedeného na inventuře. Jakmile na skladu dojde k pohybům po založení inventury a přidání položek, je nutné před vygenerováním dokladů stavy v položkách inventury aktualizovat.

Služba je dostupná metodou GET na adrese /c/{firma}/inventura/{id}/aktualizuj-stavy.{přípona}. V případě úspěšného vykonání je vracen HTTP status 200.

GET https://demo.flexibee.eu/c/demo/inventura/1/aktualizuj-stavy.xml

V případě špatného ID inventury je vrácen HTTP status 404 s kódem formZaznamNenalezen:

<message>Záznam nebyl v datovém zdroji nalezen: cz.winstrom.vo.skl.Inventura#12 (Inventury)</message>


Vygeneruj doklady

Vygeneruje skladové pohyby tak, aby programové množství na skladě odpovídalo tomu skutečnému. Na základě rozdílu programového a reálného stavu skladu dojde k vygenerování skladových příjemek a výdejek.

Služba je dostupná metodou GET na adrese /c/{firma}/inventura/{id}/vygeneruj-doklady.{přípona}?typDoklId={idDokl}, kde {idDokl} je databázový identifikátor požadovaného typu dokladu pro skladový pohyb z evidence /typ-skladovy-pohyb.

GET https://demo.flexibee.eu/c/demo/inventura/1/vygeneruj-doklady.xml?typDoklId=1

V případě úspěšného vykonání služby je vracen HTTP status 200. Pokud se zadaný stav liší od programového:

<?xml version="1.0" ?>
<winstrom version="1.0">
<success>true</success>
<message>Doklady byly úspěšně vygenerovány.</message>
</winstrom>

Pokud se zadaný stav od programového neliší:

<?xml version="1.0" ?>
<winstrom version="1.0">
<success>true</success>
<message>Při inventuře nevznikl žádný inventurní rozdíl.</message>
</winstrom>

V případě špatného ID inventury je vrácen HTTP status 404 s kódem formZaznamNenalezen:

<message>Záznam nebyl v datovém zdroji nalezen: cz.winstrom.vo.skl.Inventura#12 (Inventury)</message>

⚠️ V případě špatného ID typu dokladu nedojde k vygenerování žádných rozdílů. Pokud na skladě není dostatek zboží, vrací služba 400 s hlášením typu Na položce s ID = 2 se vyskytla chyba: Na skladě není dostatek zboží.


FAQ

Kde najdu popis inventury v aplikaci?

Obecnému popisu se věnuje článek Inventury, postupu v desktopové aplikaci Inventura - GUI a ve webovém rozhraní Inventura - WUI.

Do inventury se mi načítají položky se špatným stavem skladu.

Inventura generuje znovu již vygenerované položky.

Řešení najdete v článku Generování položek při inventuře.

Inventura hlásí nedostatek zboží.

Vysvětlení najdete v článku Inventura - nedostatek zboží.


Související

Dostali jste odpověď na svou otázku?