Preskoči na glavno vsebino

Prevod do iného skladu po vyskladnení tovaru z prijatej objednávky pomocou REST API

Ako po vyskladnení tovaru po realizácii prijatej objednávky vykonať presun na iný sklad v REST API.

Avtor: Petr Pech

Štandardný prevod medzi skladmi (prevodka) má v ABRA Flexi vždy dve strany — výdaj a príjem. Jeho bežnú tvorbu popisuje článok Převodka - REST API. Tento návod rieši situáciu, keď výdajka vznikla realizáciou objednávky, a preto ju prevodkou štandardne dokončiť nemožno.


Scenár

V systéme existuje od zákazníka prijatá objednávka na tovar. Tovar je potrebné vydať z jedného skladu a až neskôr, v druhom kroku, previesť na iný sklad — teda dokončiť prevodku.

Tento postup nie je štandardne možný. Realizácia objednávky skladovým pohybom nastaví výdajke typ pohybu Výdaj po objednávke a dokončenie prevodky cez API potom skončí chybou correctDoklTypeNotFound.


Riešenie

1. Realizácia objednávky skladovým pohybom

Najprv z objednávky vygenerujeme výdajku. Podrobnosti nájdete v článku o realizácii objednávky, tu uvádzame len príklad:

POST https://demo.flexibee.eu/c/demo/objednavka-prijata.xml
<?xml version="1.0"?>
<winstrom version="1.0">
<objednavka-prijata>
<id>code:OBP001/2023</id>
<realizaceObj type="skladovy-pohyb">
<polozkyObchDokladu>
<polozka>
<cisRad>1</cisRad>
<mj>1</mj>
</polozka>
</polozkyObchDokladu>
</realizaceObj>
</objednavka-prijata>
</winstrom>

Vytvorená výdajka má typ pohybu typPohybuSklad.vydejPoObch:

<?xml version="1.0"?>
<winstrom>
<skladovy-pohyb>
<id>123</id>
<kod>S-001/2023</kod>
...
<typPohybuSkladK showAs="Výdej po objednávce">
typPohybuSklad.vydejPoObch
</typPohybuSkladK>
...
</skladovy-pohyb>
</winstrom>

⚠️ Odpoveď na realizáciu obsahuje ID objednávky, nie novo vzniknutej výdajky. Jej identifikátor si dohľadajte cez väzby dokladu:
GET /c/{firma}/objednavka-prijata/{id}/vazebni-doklady.json

2. Povolenie zmeny typu pohybu

Typ pohybu Výdaj po objednávke blokuje dokončenie prevodky, potrebujeme ho teda zmeniť. Umožní to pokročilá parametrizácia — parameter zmenaPohybuRealizace (Umožniť zmenu upresnenia typu pohybu na výdajke/príjemke vytvorenej z objednávky/faktúry):

POST https://demo.flexibee.eu/c/demo/parametr.xml
<winstrom version="1.0">
<parametr>
<paramK>zmenaPohybuRealizace</paramK>
<hodnota>true</hodnota>
</parametr>
</winstrom>

Bez tohto parametra vracia úprava výdajky 400 s kódom valueCannotBeChanged a hlásením Hodnotu vlastnosti 'typPohybuSkladK' ("Typ pohybu + upřesnění") není možné změnit z 'typPohybuSklad.vydejPoObch' na hodnotu 'typPohybuSklad.vydejPrevod'.

3. Úprava výdajky

Teraz je možné na výdajke nastaviť správny typ pohybu a cieľový sklad. Pre prevodku je to typPohybuSklad.vydejPrevod:

POST https://demo.flexibee.eu/c/demo/skladovy-pohyb.xml
<?xml version="1.0"?>
<winstrom version="1.0">
<skladovy-pohyb>
<id>123</id>
<typPohybuSkladK>typPohybuSklad.vydejPrevod</typPohybuSkladK>
<skladCil>code:SKLAD CÍL</skladCil>
</skladovy-pohyb>
</winstrom>

Pre úplnosť uvádzame všetky výdajové typy pohybu; ich celý výpočet aj s príjmovými hodnotami nájdete v popise evidencie skladovy-pohyb.

Hodnota

Typ pohybu

typPohybuSklad.vydejHoly

„Holý" výdaj

typPohybuSklad.vydejPolot

Výdaj polotovaru

typPohybuSklad.vydejPoFak

Výdaj po faktúre

typPohybuSklad.vydejPoObch

Výdaj po objednávke

typPohybuSklad.vydejPrevod

Výdaj pre prevodku

typPohybuSklad.vydejProFakCenik

Výdaj pre fakturáciu (ceny z cenníka)

typPohybuSklad.vydejProFakRucne

Výdaj pre fakturáciu (ceny ručne)

typPohybuSklad.vydejVyrob

Výdaj výrobku

typPohybuSklad.prijemVydejVratka

Výdaj (dobropis, vratka)

4. Dokončenie prevodky

Teraz je všetko pripravené dokončiť prevodku z objednávkou vygenerovanej výdajky štandardným spôsobom — akciou dokoncit-prevodku:

POST https://demo.flexibee.eu/c/demo/skladovy-pohyb.xml
<?xml version="1.0"?>
<winstrom version="1.0">
<skladovy-pohyb action="dokoncit-prevodku">
<!-- jako ID lze použít i interní číslo výdeje pro převod -->
<id>123</id>
</skladovy-pohyb>
</winstrom>

Odpoveď 201 obsahuje ID výdajky, na ktorej ste akciu spustili. Príjemku vzniknutú na cieľovom sklade nájdete opäť medzi väzbovými dokladmi.


Neúspešné požiadavky

Situácia

Odpoveď

Akcia dokoncit-prevodku nad výdajkou, ktorá má stále typ Výdaj po objednávke

400, correctDoklTypeNotFoundNepodařilo se najít správný typ dokladu.

Zmena typu pohybu bez nastaveného parametra zmenaPohybuRealizace

400, valueCannotBeChanged

Akcia dokoncit-prevodku spustená nad príjemkou

400, skladGenerPrevodkaNejdeZPrijemkyPříjemka pro převod musí být vytvořena z výdejky.


FAQ

Dôjde k prepojeniu dokladov?

Áno. Prijatá objednávka, výdajka aj príjemka na cieľovom sklade zostanú vo väzbe — všetky tri doklady vracia dotaz na vazebni-doklady objednávky.

Musí parameter zostať zapnutý natrvalo?

Nie. Parameter iba povoľuje zmenu typu pohybu, takže stačí, aby platil vo chvíli, keď výdajku upravujete.


Súvisiace

Ste s tem dobili odgovor na svoje vprašanje?