Přeskočit na hlavní obsah

Rozúčtování vedlejších nákladů na sklad - API

Jak v API rozúčtovat vedlejší náklady do skladového dokladu?

Autor: Petr Pech

Stejně jako v desktopové nebo webové aplikaci je možné rozpočítat vedlejší náklady do ceny zboží, je tato funkcionalita dostupná i přes REST API.

V API se rozúčtování vedlejších nákladů provádí vždy nad skladovým dokladem, respektive příjemkou — jen na něm je funkce pro rozúčtování dostupná.


Způsoby rozúčtování

Vedlejší náklady lze rozúčtovat dvěma způsoby:

Způsob

Jak se počítá

Podle ceny
podleCeny=true

Náklady se rozpočítají stejným poměrem ke všem cenám za MJ. Například cena dodávky je 1 000 Kč a vedlejší náklady 500 Kč, tedy 50 % nákupní ceny — každá nákupní cena za MJ se proto navýší také o 50 %.

Podle kusů
podleCeny=false

Náklady se vydělí počtem kusů v dodávce a o zjištěnou částku se zvýší pořizovací cena za MJ. Například v dodávce je 20 kusů a vedlejší náklady 500 Kč — cena za MJ u každé položky se zvýší vždy o 25 Kč bez ohledu na stávající výši nákupních cen za MJ.


Způsob volání

Požadavek se posílá metodou PUT nebo POST na evidenci skladovy-pohyb. V těle požadavku uvedete identifikátor dokladu a element rozuctuj s těmito vlastnostmi:

  • vedlejsiNaklady — povinná výše vedlejších nákladů k rozúčtování

  • podleCeny — nepovinný příznak true / false. Pokud není uveden, nebo má hodnotu false, budou náklady rozúčtovány podle počtu kusů.

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

⚠️ Bez vlastnosti vedlejsiNaklady vrátí server 400 s kódem undefinedProperty a hlášením Není definována vlastnost "vedlejsiNaklady".


Příklady použití

Rozúčtování 500 Kč podle ceny v XML

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

Rozúčtování 500 Kč podle kusů v XML

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

Odpovědí je při úspěchu:

<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účtování 500 Kč podle ceny v JSON

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

Odpovědí je při úspěchu:

{
"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ýsledek na dokladu

Výsledkem jsou změněné ceny položek dokladu. U dokladu, který měl původně cenaMj 100 a dvě jednotky, se po rozúčtování 50 Kč podle kusů projeví vedlejší náklady v položce 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 nejprve vyzkoušejte s parametrem ?dry-run=true. Požadavek se zpracuje a zvaliduje, ale do databáze se nic nezapíše.


Související

Dostali jste odpověď na svou otázku?