Obdobně jako je v desktopové či webové aplikaci možné z výdejky vytvořit fakturu a pokladní doklad, je totéž možné provést i pomocí REST API.
Totéž platí i pro tvorbu a dokončení převodky, pakliže je skladový doklad výdejem pro převodku. Pokud by Vás zajímalo, jak na to, nahlédněte do našeho jiného návodu.
V tomto návodu si však ukážeme, jak tyto operace provést prostřednictvím REST API. Podobnost těchto operací můžeme najít v realizaci objednávky.
Tvorbu vydané a přijaté faktury, tvorbu pokladního dokladu zajišťuje funkce realizaceSklPoh. Funkce realizaceSklPoh podporuje dvě služby.
Požadavek lze zaslat metodou PUT/POST na URL adresu typu:
https://localhost:5434/v2/c/testovaci/skladovy-pohyb.json
Tvorbu faktury či pokladního dokladu z dokladu skladového podporuje pouze API v2. V URL adrese je tedy zapotřebí "v2" uvést (viz příklad výše).
V těle požadavku poté zasíláme níže zmíněné informace dle potřeby.
Vytvoření faktury
Služba vyžaduje použití dvou atributů:
type -
vytvorit-fakturutypDokl - identifikátor objektu z evidence
typ-faktury-prijatenebotyp-faktury-vydane
Příklad zápisu v XML pro tvorbu faktury z příjemky nebo výdejky:
<winstrom version="1.0">
<skladovy-pohyb>
<id>123</id>
<realizaceSklPoh type="vytvorit-fakturu">
<typDokladu>code:FAKTURA</typDokladu>
</realizaceSklPoh>
</skladovy-pohyb>
</winstrom>
Příklad zápisu v JSON pro tvorbu faktury z příjemky nebo výdejky:
{
"winstrom":{
"skladovy-pohyb":[
{
"id":123,
"realizaceSklPoh":{
"@type":"vytvorit-fakturu",
"typDokl":"code:FAKTURA"
}
}
]
}
}
To, zdali má být vytvořena přijatá nebo vydaná faktura, určuje typ pohybu skladového dokladu. Pokud se jedná o příjemku, bude vytvořena faktura přijatá. Pokud se jedná o výdejku, bude vytvořena faktura vydaná.
Pokud je výdejka vytvořena nejdříve realizací objednávky, přepne tvorba faktury tímto způsobem stav objednávky na "Hotovo".
Vytvoření pokladního dokladu
Služba vyžaduje použití dvou atributů (příp. volitelného třetího):
type -
vytvorit-pokladni-dokladtypDokl - identifikátor objektu z evidence
typ-pokladni-pohybbsparada- nepovinné, odvodí se z typu dokladu
Příklad zápisu v XML pro tvorbu pokladního dokladu:
<winstrom version="1.0">
<skladovy-pohyb>
<id>321</id>
<realizaceSklPoh type="vytvorit-pokladni-doklad">
<typDokladu>code:POKLADNA</typDokladu>
</realizaceSklPoh>
</skladovy-pohyb>
</winstrom>
Příklad zápisu v JSON pro tvorbu pokladního dokladu:
{
"winstrom":{
"skladovy-pohyb":[
{
"id":321,
"realizaceSklPoh":{
"@type":"vytvorit-pokladni-doklad",
"typDokl":"code:POKLADNA"
}
}
]
}
}
To, zdali má být vytvořen pokladní výdej nebo příjem, určuje typ pohybu skladového dokladu. Pokud se jedná o příjemku, bude vytvořen příjmový pokladní doklad. Pokud se jedná o výdejku, bude vytvořen výdajový pokladní doklad.
Příklad cURL volání
Obdobně jako k provedení kterékoliv jiné operace v API, bývá běžně využit příkaz cURL. Níže je možné čerpat z jednoho takového příkladu.
curl -X PUT
'https://localhost:5434/v2/c/flexi_clean/skladovy-pohyb.json'
-H 'Accept: application/json' -H 'Content-Type: application/json'
--data-binary '
{ "winstrom":{ "skladovy-pohyb":[{ "id":385, "realizaceSklPoh":{ "@type":"vytvorit-pokladni-doklad", "typDokl":"code:POKLADNA" } }] } }'
--insecure -u admin:adminadmin | jq
Rozúčtování vedlejších nákladů na sklad
Pomocí REST API je možné také rozúčtovat vedlejší náklady na skladový doklad
Vstupní parametry:
vedlejsiNaklady: Výše vedlejších nákladů k rozúčtování (povinný).podleCeny: Příznak, že se mají náklady rozúčtovat podle ceny (nepovinný). Možné hodnoty jsoutruenebofalse. Pokud není uveden, nebo má hodnotu false, budou náklady rozúčtovány podle počtu kusů.
Příklad zápisu v XML pro volání služby rozuctuj :
<winstrom version="1.0">
<skladovy-pohyb>
<!-- Skladový doklad, na nějž mají být náklady rozúčtovány. -->
<id>code:S+0001/2021</id>
<!-- Lze uvést i další vlastnosti dokladu, jako při běžném importu. -->
<rozuctuj>
<vedlejsiNaklady>50</vedlejsiNaklady>
<podleCeny>false</podleCeny>
</rozuctuj>
</skladovy-pohyb>
</winstrom>
Výsledkem budou změny cen výše uvedeného dokladu, který měl původně cenaMj 100:
<winstrom version="1.0">
<skladovy-pohyb>
<id>code:S+0001/2021</id>
<polozkyDokladu>
<skladovy-pohyb-polozka>
<mnozMj>2.0</mnozMj>
<cenaMj>125.0</cenaMj>
<cenaMjNakl>25.0</cenaMjNakl>
<cenaMjPoriz>100.0</cenaMjPoriz>
<sumCelkem>250.0</sumCelkem>
</skladovy-pohyb-polozka>
</polozkyDokladu>
</skladovy-pohyb>
</winstrom>
