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. API ponúka služby pre aktualizáciu stavov v inventúre a vygenerovanie dokladov z inventúry. Pre obe akcie je možné využiť HTTP metódu: GET.

Ďalej je možné pomocou API vkladať položky do inventúry. Na to využijeme metódu POST.

Jednotlivé služby si popíšeme v tejto dokumentácii.

Pridanie položiek inventúry cez API

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ú. Nemení množstvo pre cenníky, ktoré sú už v inventúre obsiahnuté.

Akceptuje iba tie skladové karty, ktoré prislúchajú účtovnému obdobiu inventúry.

Služba je dostupná na adrese: /c/{firma}/inventura/{id}/vloz-polozky, kde {firma} je databázový identifikátor firmy, {id} je databázový identifikátor inventúry.

Parametre sa odovzdávajú v tele požiadavky:

  • filter - je 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:

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

Skladové karty patriace do iného účtovného obdobia ako inventúra budú vynechané.

V odpovedi je uvedené, koľko položiek bolo vložených do inventúry.

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

Pôvodné volanie:

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

POST požiadavku zašlite na adresu server:port/c/firma/inventura-polozka.xml

Príklad 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>

ID dostupnej inventúry je možné zistiť GET požiadavkou na adrese /inventura.xml?limit=0

Aktualizuj stavy

Aktualizuje programový stav, ktorý sa vďaka neskôr vytvoreným skladovým pohybom môže líšiť od toho uvedeného v inventúre. Akonáhle na sklade dôjde k pohybom po založení inventúry a pridaní položiek, je nutné pred vygenerovaním dokladov aktualizovať stavy v položkách inventúry.

Služba je dostupná na adrese:

/c/{firma}/inventura/{id}/aktualizuj-stavy.xml(.json),

kde {firma} je databázový identifikátor firmy, {id} je databázový identifikátor inventúry.

V prípade úspešného vykonania služby je vrátený HTTP status 200.

Príklad volania:

V prípade nesprávneho ID inventúry je vrátený HTTP status 404:

<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 skutočnému. Dôjde k vygenerovaniu skladových príjmov a výdajok na základe rozdielu programového a reálneho stavu skladu.

Služba je dostupná na adrese:

/c/{firma}/inventura/{id}/vygeneruj-doklady.xml?typDoklId={idDokl},

kde {firma} je databázový identifikátor firmy,

{id} je databázový identifikátor inventúry,

{idDokl} je databázový identifikátor požadovaného typu dokladu pre skladový pohyb.

Príklad volania:

V prípade úspešného vykonania služby je vrátený HTTP status 200 spolu s odpoveďou:

  • 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 nelíši od programového:

<?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 nesprávneho ID inventúry je vrátený HTTP status 404:

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

Pozor, v prípade nesprávneho ID typu dokladu nedôjde k vygenerovaniu žiadnych rozdielov.

FAQ

Potrebujete poradiť?
V prípade otázok k aplikácii nás kontaktujte na podporaflexi@abra.eu, prípadne prostredníctvom okna chatu v pravom dolnom rohu.

Ste s tem dobili odgovor na svoje vprašanje?