Valorizace smluv přes REST API

Smlouvy v ABRA Flexi lze valorizovat i pomocí API Flexi

Ota Rádl avatar
Autor: Ota Rádl
Aktualizováno před více než týdnem

Odběratelské a dodavatelské smlouvy slouží k automatické fakturaci v pravidelných, popř. i nepravidelných intervalech na základě využívání nebo poskytování služeb.

Smlouvy je možné pomocí REST API generovat. V tomto návodu se podíváme jak smlouvy valorizovat. Pomocí REST API lze valorizovat odběratelské a dodavatelské smlouvy. Valorizace slouží ke zhodnocení smlouvy na nové období. Standardně se nastavuje období a procento valorizace smlouvy.

Způsob volání

Lze využít HTTP metodu: PUT nebo POST.

Služba je dostupná na adresách:

/c/{firma}/smlouva/valorizuj-smlouvy - pro odběratelské smlouvy

/c/{firma}/dodavatelska-smlouva/valorizuj-smlouvy - pro dodavatelské smlouvy, kde {firma} je databázový identifikátor firmy.

Příklad endpointu na demo firmě:

https://demo.flexibee.eu/c/demo/smlouva/valorizuj-smlouvy.json

Jsou podporovány výstupní formáty: XML nebo JSON.

Tělo požadavku

V těle požadavku je nutné uvést povinné vlastnosti rok a procentoValorizace. Dále je možné uvést i nepovinný filtr, pomocí něhož valorizujeme pouze některé smlouvy:

  • rok - účetní období, na které valorizace platí (ve tvaru např. 2022, 2023, atd.)

  • procentoValorizace - procento, které určuje jak se položky smluv navýší (ve tvaru 5, 10, atd.)

  • filtr - filtrace vybraných smluv, které se mají valorizovat

    • Pokud není filtr uveden, budou valorizovány všechny smlouvy, jejichž položky jsou platné v uvedeném roce.

Důležité: Dále je třeba vzít v úvahu, že valorizace proběhne pouze u položek smluv, které mají nastaveny vlastnosti valorizovat a valorizovatMesic. Dále je nutné, aby vlastnost platiOdData u položky smlouvy nebyla ve stejném měsíci jako vlastnost valorizovatMesic, viz. vlastnosti položek smluv . Tyto vlastnosti udávají, zda se má položka valorizovat a k jakému měsíci, více v dokumentaci smluv.

Výsledek

V případě úspěšné valorizace položek smlouvy je ve smlouvě vytvořena nová položka a původní položka má ukončenou platnost.. Zda byla služba vykonána úspěšně, lze kontrolovat HTTP status odpovědi nebo vlastnost success v získaném dokumentu je na hodnotě true.

V případě úspěšného vykonání služby je vracen HTTP status 201 Created a dokument odpovídající standardnímu formátu, viz. návratové hodnoty.

V případě neúspěchu je vracen status 4xx/5xx a zpráva o důvodu neúspěchu.

Ukázky volání

1. volání v XML

POST https://demo.flexibee.eu/c/demo/smlouva/valorizuj-smlouvy.xml

Tělo:
<winstrom version="1.0">
<rok>2023</rok>
<procentoValorizace>10</procentoValorizace>
</winstrom>

V případě tohoto volání dojde k valorizaci všech položek všech smluv na období 2023 o 10 %, které mají nastaveno valorizovat.

2. volání v JSON:

PUT https://demo.flexibee.eu/c/demo/dodavatelska-smlouva/valorizuj-smlouvy.json

Tělo:
{
"winstrom": {
"rok": "2023",
"procentoValorizace": "10",
"filtr":"code:SMLOUVA123"
}
}

V tomto případě dojde k valorizaci všech položek smlouvy s označením SMLOUVA123, které jsou nastaveny pro valorizaci.

Neúspěšné requesty

1. V případě, že je zadán špatný čí prázdný rok dojde k cyhbě 400 Bad Request

<message>Pole 'rok' musí být vyplněno jednou z hodnot 2018, 2019, 2020, 2021, 2022, 2023, 2024.</message>

2. V případě, že není vyplněno procentoValorizace, odpověď je opět 400 Bad Request

<message>Element 'procentoValorizace' musí být uveden.</message>

3. V případě, že je zapsán element filter namísto filtr, dojde k valorizaci všech smluv! S výsledkem 201 Created.

<winstrom version="1.0">
<rok>2018</rok>
<procentoValorizace>5</procentoValorizace>
<filter>code:SMLOUVA123</filter>
</winstrom>

FAQ

Příklady zadání smluv

Odběratelské smlouvy v praxi

Jak najít vygenerovanou fakturu ze smlouvy?

Vazba mezi fakturou a smlouvou nevzniká. Z faktury je možné danou smlouvu dohledat pouze podle pole cisSml.

Potřebujete poradit?

V případě dotazů k aplikaci nás kontaktujte na podporaflexi@abra.eu případně prostřednictvím chat okna v pravém dolním rohu.

Dostali jste odpověď na svou otázku?