Přeskočit na hlavní obsah

Převod do jiného skladu po vyskladnění zboží z přijaté objednávky pomocí REST API

Jak po vyskladnění zboží po realizaci přijaté objednávky provést převod na jiný sklad v REST API.

Autor: Petr Pech

Standardní převod mezi sklady (převodka) má v ABRA Flexi vždy dvě strany — výdej a příjem. Jeho běžnou tvorbu popisuje článek Převodka - REST API. Tento návod řeší situaci, kdy výdejka vznikla realizací objednávky, a proto ji převodkou standardně dokončit nelze.


Scénář

V systému existuje od zákazníka přijatá objednávka na zboží. Zboží je nutné vydat z jednoho skladu a teprve později, ve druhém kroku, převést na jiný sklad — tedy dokončit převodku.

Tento postup není standardně možný. Realizace objednávky skladovým pohybem nastaví výdejce typ pohybu Výdej po objednávce a dokončení převodky přes API pak skončí chybou correctDoklTypeNotFound.


Řešení

1. Realizace objednávky skladovým pohybem

Nejprve z objednávky vygenerujeme výdejku. Podrobnosti najdete v článku o realizaci objednávky, zde uvádíme jen pří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>

Vytvořená výdejka 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>

⚠️ Odpověď na realizaci obsahuje ID objednávky, ne nově vzniklé výdejky. Její identifikátor si dohledejte přes vazby dokladu:
GET /c/{firma}/objednavka-prijata/{id}/vazebni-doklady.json

2. Povolení změny typu pohybu

Typ pohybu Výdej po objednávce blokuje dokončení převodky, potřebujeme ho tedy změnit. Umožní to pokročilá parametrizace — parametr zmenaPohybuRealizace (Umožnit změnu upřesnění typu pohybu na výdejce/příjemce vytvořené z objednávky/faktury):

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

Bez tohoto parametru vrací úprava výdejky 400 s kódem valueCannotBeChanged a hlášením Hodnotu vlastnosti 'typPohybuSkladK' ("Typ pohybu + upřesnění") není možné změnit z 'typPohybuSklad.vydejPoObch' na hodnotu 'typPohybuSklad.vydejPrevod'.

3. Úprava výdejky

Nyní lze na výdejce nastavit správný typ pohybu a cílový sklad. Pro převodku 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>

Pro úplnost uvádíme všechny výdejové typy pohybu; jejich celý výčet i s příjmovými hodnotami najdete v popisu evidence skladovy-pohyb.

Hodnota

Typ pohybu

typPohybuSklad.vydejHoly

„Holý" výdej

typPohybuSklad.vydejPolot

Výdej polotovaru

typPohybuSklad.vydejPoFak

Výdej po faktuře

typPohybuSklad.vydejPoObch

Výdej po objednávce

typPohybuSklad.vydejPrevod

Výdej pro převodku

typPohybuSklad.vydejProFakCenik

Výdej pro fakturaci (ceny z ceníku)

typPohybuSklad.vydejProFakRucne

Výdej pro fakturaci (ceny ručně)

typPohybuSklad.vydejVyrob

Výdej výrobku

typPohybuSklad.prijemVydejVratka

Výdej (dobropis, vratka)

4. Dokončení převodky

Nyní je vše připraveno dokončit převodku z objednávkou vygenerované výdejky standardním způsobem — akcí 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>

Odpověď 201 obsahuje ID výdejky, na které jste akci spustili. Příjemku vzniklou na cílovém skladu najdete opět mezi vazebními doklady.


Neúspěšné požadavky

Situace

Odpověď

Akce dokoncit-prevodku nad výdejkou, která má stále typ Výdej po objednávce

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

Změna typu pohybu bez nastaveného parametru zmenaPohybuRealizace

400, valueCannotBeChanged

Akce dokoncit-prevodku spuštěná nad příjemkou

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


FAQ

Dojde k provázání dokladů?

Ano. Objednávka přijatá, výdejka i příjemka na cílovém skladu zůstanou ve vazbě — všechny tři doklady vrací dotaz na vazebni-doklady objednávky.

Musí parametr zůstat zapnutý natrvalo?

Ne. Parametr pouze povoluje změnu typu pohybu, takže stačí, aby platil ve chvíli, kdy výdejku upravujete.


Související

Dostali jste odpověď na svou otázku?