Preskoči na glavno vsebino

Služby pre skladové pohyby v API (nie je vydané)

Tvorba faktúry a pokladničného dokladu z príjemky alebo výdajky

Avtor: Petr Pech

Obdobne ako je v desktopovej či webovej aplikácii možné z výdajky vytvoriť faktúru a pokladničný doklad, to isté je možné vykonať aj pomocou REST API.

To isté platí aj pre tvorbu a dokončenie prevodky, pokiaľ je skladový doklad výdajom pre prevodku. Ak vás zaujíma, ako na to, pozrite si náš iný návod.

V tomto návode si však ukážeme, ako tieto operácie vykonať prostredníctvom REST API. Podobnosť týchto operácií môžeme nájsť v realizácii objednávky.

Tvorbu vydanej a prijatej faktúry, tvorbu pokladničného dokladu zabezpečuje funkcia realizaceSklPoh. Funkcia realizaceSklPoh podporuje dve služby.

Požiadavku možno odoslať metódou PUT/POST na URL adresu typu:

https://localhost:5434/v2/c/testovaci/skladovy-pohyb.json

Tvorbu faktúry či pokladničného dokladu z dokladu skladového podporuje iba API v2. V URL adrese je preto potrebné uviesť „v2" (pozri príklad vyššie).

V tele požiadavky následne zasielame nižšie uvedené informácie podľa potreby.

Vytvorenie faktúry

Služba vyžaduje použitie dvoch atribútov:

  • type - vytvorit-fakturu

  • typDokl - identifikátor objektu z evidencie typ-faktury-prijate alebo typ-faktury-vydane

Príklad zápisu v XML pre tvorbu faktúry z príjemky alebo výdajky:

<winstrom version="1.0">
<skladovy-pohyb>
<id>123</id>
<realizaceSklPoh type="vytvorit-fakturu">
<typDokladu>code:FAKTURA</typDokladu>
</realizaceSklPoh>
</skladovy-pohyb>
</winstrom>

Príklad zápisu v JSON pre tvorbu faktúry z príjemky alebo výdajky:

{
"winstrom":{
"skladovy-pohyb":[
{
"id":123,
"realizaceSklPoh":{
"@type":"vytvorit-fakturu",
"typDokl":"code:FAKTURA"
}
}
]
}
}

To, či má byť vytvorená prijatá alebo vydaná faktúra, určuje typ pohybu skladového dokladu. Ak ide o príjemku, bude vytvorená prijatá faktúra. Ak ide o výdajku, bude vytvorená vydaná faktúra.

Ak je výdajka vytvorená najskôr realizáciou objednávky, prepne tvorba faktúry týmto spôsobom stav objednávky na „Hotovo".

Vytvorenie pokladničného dokladu

Služba vyžaduje použitie dvoch atribútov (príp. voliteľného tretieho):

  • type - vytvorit-pokladni-doklad

  • typDokl - identifikátor objektu z evidencie typ-pokladni-pohyb

  • bsp a rada - nepovinné, odvodí sa z typu dokladu

Príklad zápisu v XML pre tvorbu pokladničného dokladu:

<winstrom version="1.0">
<skladovy-pohyb>
<id>321</id>
<realizaceSklPoh type="vytvorit-pokladni-doklad">
<typDokladu>code:POKLADNA</typDokladu>
</realizaceSklPoh>
</skladovy-pohyb>
</winstrom>

Príklad zápisu v JSON pre tvorbu pokladničného dokladu:

{
"winstrom":{
"skladovy-pohyb":[
{
"id":321,
"realizaceSklPoh":{
"@type":"vytvorit-pokladni-doklad",
"typDokl":"code:POKLADNA"
}
}
]
}
}

To, či má byť vytvorený pokladničný výdaj alebo príjem, určuje typ pohybu skladového dokladu. Ak ide o príjemku, bude vytvorený príjmový pokladničný doklad. Ak ide o výdajku, bude vytvorený výdavkový pokladničný doklad.

Príklad volania cURL

Obdobne ako pri vykonaní akejkoľvek inej operácie v API, býva bežne využívaný príkaz cURL. Nižšie je možné čerpať z jedného takého prí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účtovanie vedľajších nákladov na sklad

Pomocou REST API je možné taktiež rozúčtovať vedľajšie náklady na skladový doklad

Vstupné parametre:

  • vedlejsiNaklady: Výška vedľajších nákladov na rozúčtovanie (povinný).

  • podleCeny: Príznak, že náklady sa majú rozúčtovať podľa ceny (nepovinný). Možné hodnoty sú true alebo false. Ak nie je uvedený, alebo má hodnotu false, náklady budú rozúčtované podľa počtu kusov.

Príklad zápisu v XML pre volanie 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ýsledkom budú zmeny cien vyššie uvedeného dokladu, ktorý mal pôvodne 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>


Ste s tem dobili odgovor na svoje vprašanje?