Preskoči na glavno vsebino

Inventúra v REST API

Ako vykonať inventúru pomocou REST API Flexi?

Avtor: Petr Pech

Skladovú inventúru je možné obsluhovať pomocou REST API. K dispozícii sú tri služby — vloženie položiek do inventúry, aktualizácia programových stavov a vygenerovanie dokladov z inventúry.

Služba

Metóda

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 inventúry. Zoznam dostupných inventúr získate na adrese /c/{firma}/inventura.xml?limit=0.


Vlož položky

Do inventúry sa vložia vybrané cenníky s predvoleným množstvom. Vloží iba tie cenníky, ktoré sa v inventúre nenachádzajú, a nemení množstvo pre cenníky, ktoré už v inventúre sú. Akceptuje iba skladové karty, ktoré patria k účtovnému obdobiu inventúry — karty z iného obdobia budú vynechané.

Požiadavka sa posiela metódou POST na adresu /c/{firma}/inventura/{id}/vloz-polozky.{přípona}. Parametre sa odovzdávajú v tele požiadavky:

  • filter — filter pre výber skladových kariet

  • initialValueNull — s hodnotou true určí, že predvolené množstvo má byť null, inak bude 0.0

Ukážka požiadavky

<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 odpovedi je uvedené, koľko položiek bolo do inventúry vložených:

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

⚠️ Táto služba prijíma iba metódu POST. Volanie metódou GET vracia 405 Method Not Allowed.

Vloženie položiek cez evidenciu

Položky do inventúry je možné pridať aj cez evidenciu /inventura-polozka. V požiadavke POST zašlete kód cenníkovej položky, reálne množstvo na sklade a identifikáciu inventúry, do ktorej chcete položku pridať:

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, ktorý sa kvôli neskôr vytvoreným skladovým pohybom môže líšiť od toho uvedeného na inventúre. Akonáhle na sklade dôjde k pohybom po založení inventúry a pridaní položiek, je potrebné pred vygenerovaním dokladov stavy v položkách inventúry aktualizovať.

Služba je dostupná metódou GET na adrese /c/{firma}/inventura/{id}/aktualizuj-stavy.{přípona}. V prípade úspešného vykonania je vrátený HTTP status 200.

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

V prípade zlého ID inventúry je vrátený HTTP status 404 s kódom 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žstvo na sklade zodpovedalo tomu skutočnému. Na základe rozdielu programového a reálneho stavu skladu dôjde k vygenerovaniu skladových príjemiek a výdajok.

Služba je dostupná metódou 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 pre skladový pohyb z evidencie /typ-skladovy-pohyb.

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

V prípade úspešného vykonania služby je vrátený HTTP status 200. Ak sa zadaný stav líši od programového:

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

Ak sa zadaný stav od programového nelíši:

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

V prípade zlého ID inventúry je vrátený HTTP status 404 s kódom formZaznamNenalezen:

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

⚠️ V prípade zlého ID typu dokladu nedôjde k vygenerovaniu žiadnych rozdielov. Ak na sklade nie je dostatok tovaru, vracia služba 400 s hlásením typu Na položce s ID = 2 se vyskytla chyba: Na skladě není dostatek zboží.


FAQ

Kde nájdem popis inventúry v aplikácii?

Všeobecnému popisu sa venuje článok Inventúry, postupu v desktopovej aplikácii Inventúra - GUI a vo webovom rozhraní Inventúra - WUI.

Do inventúry sa mi načítavajú položky so zlým stavom skladu.

Inventúra generuje znovu už vygenerované položky.

Riešenie nájdete v článku Generovanie položiek pri inventúre.

Inventúra hlási nedostatok tovaru.

Vysvetlenie nájdete v článku Inventúra - nedostatok tovaru.


Súvisiace

Ste s tem dobili odgovor na svoje vprašanje?