Preskoči na glavno vsebino

Rozúčtovanie vedľajších nákladov na sklad - API

Ako v API rozúčtovať vedľajšie náklady do skladového dokladu?

Avtor: Petr Pech

Rovnako ako v desktopovej alebo webovej aplikácii je možné rozpočítať vedľajšie náklady do ceny tovaru, je táto funkcionalita dostupná aj cez REST API.

V API sa rozúčtovanie vedľajších nákladov vykonáva vždy nad skladovým dokladom, respektíve príjemkou — len na nej je funkcia na rozúčtovanie dostupná.


Spôsoby rozúčtovania

Vedľajšie náklady je možné rozúčtovať dvoma spôsobmi:

Spôsob

Ako sa počíta

Podľa ceny
​podleCeny=true

Náklady sa rozpočítajú rovnakým pomerom ku všetkým cenám za MJ. Napríklad cena dodávky je 1 000 Kč a vedľajšie náklady 500 Kč, teda 50 % nákupnej ceny — každá nákupná cena za MJ sa preto navýši tiež o 50 %.

Podľa kusov
​podleCeny=false

Náklady sa vydelia počtom kusov v dodávke a o zistenú čiastku sa zvýši obstarávacia cena za MJ. Napríklad v dodávke je 20 kusov a vedľajšie náklady 500 Kč — cena za MJ pri každej položke sa zvýši vždy o 25 Kč bez ohľadu na existujúcu výšku nákupných cien za MJ.


Spôsob volania

Požiadavka sa posiela metódou PUT alebo POST na evidenciu skladovy-pohyb. V tele požiadavky uvediete identifikátor dokladu a element rozuctuj s týmito vlastnosťami:

  • vedlejsiNaklady — povinná výška vedľajších nákladov na rozúčtovanie

  • podleCeny — nepovinný príznak true / false. Ak nie je uvedený, alebo má hodnotu false, budú náklady rozúčtované podľa počtu kusov.

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

⚠️ Bez vlastnosti vedlejsiNaklady vráti server 400 s kódom undefinedProperty a hlásením Není definována vlastnost "vedlejsiNaklady".


Príklady použitia

Rozúčtovanie 500 Kč podľa ceny v XML

<winstrom version="1.0">
<skladovy-pohyb>
<id>1015</id>
<rozuctuj>
<vedlejsiNaklady>500</vedlejsiNaklady>
<podleCeny>true</podleCeny>
</rozuctuj>
</skladovy-pohyb>
</winstrom>

Rozúčtovanie 500 Kč podľa kusov v XML

<winstrom version="1.0">
<skladovy-pohyb>
<id>1015</id>
<rozuctuj>
<vedlejsiNaklady>500</vedlejsiNaklady>
<podleCeny>false</podleCeny>
</rozuctuj>
</skladovy-pohyb>
</winstrom>

Odpoveďou je pri úspechu:

<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>1015</id>
<request-id>1015</request-id>
<ref>/c/demo/skladovy-pohyb/1015.xml</ref>
</result>
</results>
</winstrom>

Rozúčtovanie 500 Kč podľa ceny v JSON

{
"winstrom": {
"@version": "1.0",
"skladovy-pohyb": [
{
"id": "1015",
"rozuctuj": {
"vedlejsiNaklady": 500,
"podleCeny": true
}
}
]
}
}

Odpoveďou je pri úspechu:

{
"winstrom": {
"@version": "1.0",
"success": "true",
"stats": {
"created": "0",
"updated": "1",
"deleted": "0",
"skipped": "0",
"failed": "0"
},
"results": [
{
"id": "1015",
"request-id": "1015",
"ref": "/c/demo/skladovy-pohyb/1015.json"
}
]
}
}


Výsledok na doklade

Výsledkom sú zmenené ceny položiek dokladu. Pri doklade, ktorý mal pôvodne cenaMj 100 a dve jednotky, sa po rozúčtovaní 50 Kč podľa kusov prejavia vedľajšie náklady v položke cenaMjNakl:

<winstrom version="1.0">
<skladovy-pohyb>
<id>code:S+0001/2024</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>

💡 Zápis si najprv vyskúšajte s parametrom ?dry-run=true. Požiadavka sa spracuje a zvaliduje, ale do databázy sa nič nezapíše.


Súvisiace

Ste s tem dobili odgovor na svoje vprašanje?