Přeskočit na hlavní obsah

Tvorba pokladního dokladu z příjemky/výdejky - API

Jak vytvořit pokladní doklad z příjemky nebo výdejky přes REST API?

Autor: Petr Pech

Ze skladového pohybu lze přes REST API vytvořit pokladní pohyb. Podle toho, zda jde o příjemku nebo výdejku, vznikne výdajový, nebo příjmový pohyb — u příjemky pokladní pohyb výdajový, u výdejky naopak příjmový.

Stěžejní je uvedení správného identifikátoru skladového pohybu, o zbytek se již postará ABRA Flexi.


Způsob volání

Požadavek se posílá metodou PUT nebo POST na evidenci skladovy-pohyb. V elementu zaplat uvedete identifikátor pokladny a typ pokladního dokladu:

  • pokladna — identifikátor pokladny. Pokud jej neuvedete, použije se pokladna nastavená v typu pokladního dokladu.

  • typDokl — typ pokladního dokladu

PUT https://demo.flexibee.eu/c/demo/skladovy-pohyb.xml

💡 Zápis si nejprve vyzkoušejte s parametrem ?dry-run=true. Požadavek se zpracuje a zvaliduje, ale do databáze se nic nezapíše.


Příklady volání

XML

<winstrom version="1.0">
<skladovy-pohyb>
<id>code:S-0118/2024</id>
<!-- lze uvést i další vlastnosti, jako při běžném importu -->
<zaplat>
<pokladna>code:POKLADNA KČ</pokladna>
<typDokl>code:STANDARD</typDokl>
</zaplat>
</skladovy-pohyb>
</winstrom>

JSON

{
"winstrom": {
"skladovy-pohyb": {
"id": "code:S-0118/2024",
"zaplat": [
{
"pokladna": "code:POKLADNA KČ",
"typDokl": "code:STANDARD"
}
]
}
}
}


Odpověď

Odpovědí je standardní výsledek importu — skladový doklad se aktualizoval:

<?xml version="1.0" encoding="utf-8"?>
<winstrom version="1.0">
<success>true</success>
<stats>
<created>0</created>
<updated>1</updated>
<deleted>0</deleted>
<skipped>0</skipped>
<failed>0</failed>
</stats>
<results>
<result>
<id>1129</id>
<request-id>code:S-0118/2024</request-id>
<ref>/c/demo/skladovy-pohyb/1129.xml</ref>
</result>
</results>
</winstrom>

Důležitější je však výsledek, a tím je nově vzniklý pokladní pohyb navázaný na skladový doklad:

<winstrom version="1.0">
<pokladni-pohyb>
<id>code:P+0008/2024</id>
<typDokl>code:STANDARD</typDokl>
<typPohybuK>typPohybu.prijem</typPohybuK>
<vazby>
<vazba>
<a>code:P+0008/2024</a>
<b>code:S-0118/2024</b>
</vazba>
</vazby>
</pokladni-pohyb>
</winstrom>


Neúspěšné požadavky

Pokud je skladový doklad ve stavu, ve kterém jej nelze uhradit, vrátí server 400 s kódem parovaniSklNefakturovatelneNejdouUhradit a hlášením Skladové doklady ve stavu nefakturovatelné nejdou uhradit. Neexistující pokladna nebo typ dokladu vrací 400 s chybou NOT-FOUND a názvem hledaného objektu.


FAQ

Lze tímto způsobem uhradit příjemku či výdejku více pokladními doklady?

Nelze. Funkcionalita umí založit pouze jeden pokladní doklad a neumí výdejku spárovat s více pokladními doklady.

Mohu z příjemky či výdejky vytvořit i fakturu?

Ano. Stejně jako pokladní pohyb lze ze skladového pohybu vytvořit i fakturu — podrobnosti najdete v článku Fakturace skladového pohybu přes REST API.


Související

Dostali jste odpověď na svou otázku?