Přes REST API — stejně jako přes webové rozhraní — lze vygenerovat faktury ze smluv, a to buď ze všech, nebo z jedné konkrétní. Jde o jednoduché volání metodou PUT nebo POST.
Sestavení URL
Adresa | Co udělá |
| Vygeneruje vydané faktury pro všechny odběratelské smlouvy. |
| Vygeneruje vydané faktury pro odběratelskou smlouvu s ID 1. |
| Analogicky vygeneruje přijaté faktury z dodavatelských smluv. |
PUT https://demo.flexibee.eu/c/demo/smlouva/generovani-faktur.xml
PUT https://demo.flexibee.eu/c/demo/dodavatelska-smlouva/generovani-faktur.xml
🚨 Volání nerespektuje parametr testovacího uložení ?dry-run=true — faktury se vytvoří i s ním. Nezkoušejte proto generování „na nečisto" v produkční firmě.
Parametry
Požadavek je možné doplnit volitelným parametrem datumGenerovani ve formátu ISO 8601 (YYYY-MM-DD); výchozí hodnotou je aktuální datum.
PUT https://demo.flexibee.eu/c/demo/smlouva/generovani-faktur.xml?datumGenerovani=2023-03-01
⚠️ Datum v jiném než uvedeném formátu neskončí chybou 400, ale 500 s hlášením Text 'nesmysl' could not be parsed at index 0. Formát si proto ověřte na straně integrace.
Výsledek
Odpověď v XML má následující podobu — obsahuje odkazy na vytvořené doklady, jedno souhrnné hlášení a případná chybová hlášení:
<?xml version="1.0"?>
<winstrom version="1.0">
<operation>Generování faktur</operation>
<success>ok</success>
<results>
<result>
<ref>/c/demo/faktura-vydana/1503</ref>
</result>
</results>
<messages>
<message>Počet úspěšně vygenerovaných faktur: 1</message>
</messages>
<errors></errors>
</winstrom>
Element success může nabývat těchto hodnot:
| Vygenerování faktur proběhlo v pořádku. Nemusely přitom vzniknout žádné faktury, pokud to nebylo potřeba — pak je v |
| Pro některé smlouvy vygenerování proběhlo v pořádku, u jiných došlo k chybě. |
| Nebyly vygenerovány žádné faktury a u některých smluv došlo k chybě. |
| Nemělo by nikdy nastat. |
⚠️ HTTP status je 200 i u partial a failed — úspěch tedy poznáte pouze z elementu success, ne ze statusu.
Odkazy na vytvořené doklady a chyby
Elementy result obsahují odkazy na vytvořené doklady, message souhrnné hlášení o úspěchu (nejvýše jedno) a error chybová hlášení — jedno pro každou smlouvu, u které došlo k chybě. Každá chyba nese messageCode a je uvozena kódem smlouvy:
<errors>
<error messageCode="polDoklNeniDostVyrobnichCisel">211> - Není zadáno odpovídající množství výrobních čísel (0/64).</error>
<error messageCode="validace.neplatnyCiselnik">TEST_01 - Pole 'Kód z ceníku' obsahuje neplatnou položku číselníku.</error>
</errors>
Chyba u jedné smlouvy nezastaví generování ostatních — proto může celkový výsledek skončit jako partial.
Žurnál smluv
Každé generování — ruční i automatické — se zapíše do žurnálu, který je přes API dostupný na endpointu smlouva-zurnal:
GET https://demo.flexibee.eu/c/demo/smlouva-zurnal.xml?detail=full
<winstrom version="1.0">
<smlouva-zurnal>
<id>2</id>
<datCas>2019-11-18T09:20:57.413+01:00</datCas>
<transakceK showAs="Ruční generace">operaceZurnalSmlouvy.manualGenerace</transakceK>
<pocetOk>1</pocetOk>
<pocetErr>0</pocetErr>
<chyby></chyby>
<uzivatel>code:admin</uzivatel>
</smlouva-zurnal>
</winstrom>
Vlastnost transakceK rozlišuje operaceZurnalSmlouvy.manualGenerace (Ruční generace) a operaceZurnalSmlouvy.autoGenerace (Automatická generace); generování přes REST API se do žurnálu zapíše jako ruční.
