Preskoči na glavno vsebino

Zápočty

Ako vytvoriť vzájomný zápočet dokladov v REST API?

Avtor: Petr Pech

Vzájomný zápočet je fiktívny bankový výpis, ktorým sa vykonávajú najmä úhrady pohľadávok a záväzkov na princípe vzájomných zápočtov.

<?xml version="1.0"?>
<winstrom version="1.0">
<faktura-vydana>
<id>code:FAV1</id>
<typDokl>code:FAKTURA</typDokl>
<bezPolozek>true</bezPolozek>
<sumOsv>100.0</sumOsv>
</faktura-vydana>
<faktura-prijata>
<id>code:FAP1</id>
<typDokl>code:FAKTURA</typDokl>
<cisDosle>F123</cisDosle>
<datSplat>2017-12-31+01:00</datSplat>
<bezPolozek>true</bezPolozek>
<sumOsv>100.0</sumOsv>
</faktura-prijata>
</winstrom>

Pre pripravené faktúry možno vykonať zápočet nasledujúcim spôsobom:

<?xml version="1.0"?>
<winstrom version="1.0">
<vzajemny-zapocet>
<id>code:ZAP+0016/2017</id>
<typDokl>code:ZAPOCET</typDokl>
<typPohybuK>typPohybu.prijem</typPohybuK>
<!-- částka úhrady -->
<sumOsv>1.0</sumOsv>
<bezPolozek>true</bezPolozek>
<sparovani>
<uhrazovanaFak type="faktura-vydana">code:FAV1</uhrazovanaFak>
<zbytek>castecnaUhrada</zbytek>
</sparovani>
<!-- číslo zápočtu -->
<cisSouhrnne>ZAP-123</cisSouhrnne>
</vzajemny-zapocet>
<vzajemny-zapocet>
<id>code:ZAP+0017/2017</id>
<typDokl>code:ZAPOCET</typDokl>
<typPohybuK>typPohybu.vydej</typPohybuK>
<sumOsv>1.0</sumOsv>
<bezPolozek>true</bezPolozek>
<sparovani>
<uhrazovanaFak type="faktura-prijata">code:FAP1</uhrazovanaFak>
<zbytek>castecnaUhrada</zbytek>
</sparovani>
<cisSouhrnne>ZAP-123</cisSouhrnne>
</vzajemny-zapocet>
</winstrom>

Môže sa stať, že sumy na uhrádzajúcom a uhrádzanom doklade nesúhlasia (zostatok treba doplatiť), v takom prípade sa import riadi hodnotou v tagu zbytek.

Pomocou zápočtov možno uhradiť aj vydanú faktúru s vydaným dobropisom. Sumy sú opäť uvedené obe kladné, dobropis je odlíšený typom pohybu - výdaj:

<?xml version="1.0"?>
<winstrom version="1.0">
<vzajemny-zapocet>
<typDokl>code:ZAPOCET</typDokl>
<typPohybuK>typPohybu.vydej</typPohybuK>
<bezPolozek>true</bezPolozek>
<sumOsv>1000</sumOsv>
<sparovani>
<uhrazovanaFak type="faktura-vydana">code:DOBROPIS1</uhrazovanaFak>
<zbytek>ne</zbytek>
</sparovani>
<primUcet>code:395000</primUcet>
<protiUcet>code:311001</protiUcet>
<cisSouhrnne>ZAP1</cisSouhrnne>
</vzajemny-zapocet>
<vzajemny-zapocet>
<typDokl>code:ZAPOCET</typDokl>
<typPohybuK>typPohybu.prijem</typPohybuK>
<bezPolozek>true</bezPolozek>
<sumOsv>1000</sumOsv>
<sparovani>
<uhrazovanaFak type="faktura-vydana">code:FAV1</uhrazovanaFak>
<zbytek>ne</zbytek>
</sparovani>
<primUcet>code:395000</primUcet>
<protiUcet>code:311001</protiUcet>
<cisSouhrnne>ZAP1</cisSouhrnne>
</vzajemny-zapocet>
</winstrom>

Možno zvoliť tieto hodnoty zostatku:

  • ne: zostatok nesmie nastať; ak k nemu dôjde, ide o chybu

  • castecnaUhrada: ak je suma na uhrádzajúcom doklade menšia ako na uhrádzanom, ide o čiastočnú úhradu

Analogicky možno vykonávať aj odpárovanie:

<?xml version="1.0"?>
<winstrom version="1.0">
<vzajemny-zapocet>
<id>code:ZAP+0016/2017</id>
<odparovani>
<uhrazovanaFak type="faktura-vydana">code:FAV1</uhrazovanaFak>
</odparovani>
</vzajemny-zapocet>
</winstrom>

Príklad tvorby zápočtu vo formáte JSON:

  • Na strane pohľadávok sú dve vydané faktúry (VF1-0033/2023 a VF1-0031/2023) s celkovou sumou 1210 Kč.

  • Na strane záväzkov je jedna prijatá faktúra taktiež s celkovou sumou 1210 Kč.

  • Výsledkom je vytvorenie oboch strán zápočtov vzájomne spárovaných pomocou zhodujúceho sa čísla zápočtu ("cisSouhrnne").

{
"winstrom":{
"vzajemny-zapocet":[
{
"datVyst":"2023-09-07",
"sumOsv":1000,
"bezPolozek":true,
"typDokl":"code:ZAPOCET",
"typPohybuK":"typPohybu.prijem",
"sparovani":{
"uhrazovanaFak@type":"faktura-vydana",
"uhrazovanaFak":"code:VF1-0033/2023",
"zbytek":"ne"
},
"cisSouhrnne":"5"
},
{
"datVyst":"2023-09-07",
"sumOsv":210,
"bezPolozek":true,
"typDokl":"code:ZAPOCET",
"typPohybuK":"typPohybu.prijem",
"sparovani":{
"uhrazovanaFak@type":"faktura-vydana",
"uhrazovanaFak":"code:VF1-0031/2023",
"zbytek":"ne"
},
"cisSouhrnne":"5"
},
{
"datVyst":"2023-09-07",
"sumOsv":1210,
"bezPolozek":true,
"typDokl":"code:ZAPOCET",
"typPohybuK":"typPohybu.vydej",
"sparovani":{
"uhrazovanaFak@type":"faktura-prijata",
"uhrazovanaFak":"code:PF0016/2023",
"zbytek":"ne"
},
"cisSouhrnne":"5"
}
]
}
}
Ste s tem dobili odgovor na svoje vprašanje?