Akce a zamykání

Provádění akcí

Místo běžného vytvoření/změny lze na záznamu vyvolat akci pomocí atributu action (tělo požadavku, ne jiná HTTP metoda):

<faktura-vydana action="delete">
  <id>123</id>
  <id>uuid:123456</id>
</faktura-vydana>

Akce

Popis

delete

Záznam bude smazán.

storno

Záznam bude stornován (jen doklady).

lock

Záznam bude zamknut.

unlock

Záznam bude odemknut.

lock-for-ucetni

Záznam bude zamknut pro účetní.

Při provádění akcí nejsou záznamy jinak modifikovány, nemá tedy smysl uvádět jiné elementy než id; záznamy musí již existovat.

Akce lze vyvolat i hromadně nad skupinou záznamů pomocí atributu filter na evidenci (viz Dávkové operace a transakce):

<faktura-vydana action="lock" filter="stavUhrK = 'stavUhr.uhrazeno' and typDokl = 'code:INTERNET'"/>

Akce na položkách dokladu (nutné zanořit přes kolekci položek nadřazeného dokladu):

<faktura-vydana>
  <id>123</id>
  <polozkyFaktury>
    <faktura-vydana-polozka id="456" action="delete"/>
  </polozkyFaktury>
</faktura-vydana>

Rozdíl mezi action="delete" a metodou DELETE

V jádru shodné, liší se kontroly před provedením:

  • action="delete" dovoluje smazání dokladů i v jiném než aktuálním účetním období; DELETE to nedovolí (chyba “No permission”).

  • action="delete" je použitelná téměř všude, kromě uživatelů a standardních/vestavěných záznamů typu přehledů.

  • action="delete" je bezpečně použitelná: podle typu vazby buď smaže navázané záznamy, zruší vazby, nebo akci nepovolí; ve výjimečných případech může transakci zastavit až databázový trigger.

Zamykání a odemykání záznamů

Stejný mechanismus jako obecné akce (viz výše):

<faktura-vydana action="lock"><id>1</id></faktura-vydana>
<faktura-vydana action="lock-for-ucetni"><id>1</id></faktura-vydana>
<faktura-vydana action="unlock"><id>1</id></faktura-vydana>

Hromadně přes filtr:

<faktura-vydana action="lock" filter="stavUhrK = 'stavUhr.uhrazeno' and typDokl = 'code:INTERNET'"/>

Zamykání účetních období

Odlišné od zamykání jednotlivých záznamů — dedikovaná evidence /c/{firma}/zamek.

Čtení: GET /c/{firma}/zamek.xml?detail=full&limit=0. Klíčová pole:

  • zamekK — typ zámku: zamek.otevreno (otevřeno) / zamek.polozamceno (zamčeno mimo účetní) / zamek.zamceno (zamčeno).

  • platiOdData / platiDoData — rozsah dat.

  • neucetni — zda zamknout i neúčetní doklady (výchozí true).

  • Jeden boolean flag za modul (viz níže).

Nastavení zámku: POST /c/{firma}/zamek.xml s povinným zamekK, platiOdData, platiDoData a alespoň jedním modulem nastaveným na true (jinak se nic nezamkne):

modulFav (fakt. vydané), modulFap (fakt. přijaté), modulPhl (ostatní pohledávky), modulZav (ostatní závazky), modulBan (banka), modulPok (pokladna), modulInt (interní doklady), modulSkl (skladové pohyby), modulPpp/modulPpv (poptávky přij./vyd.), modulNap/modulNav (nabídky přij./vyd.), modulObp/modulObv (objednávky přij./vyd.), modulMaj (majetek), modulLea (leasing), modulMzd (mzdy).

<zamek>
  <zamekK>zamek.zamceno</zamekK>
  <platiOdData>2022-01-01</platiOdData>
  <platiDoData>2022-01-15</platiDoData>
  <modulFap>true</modulFap>
</zamek>

Smazání zámku: <zamek action="delete"><id>6</id></zamek>.

Warning

Smazání zámku období neodemyká jednotlivé doklady zamčené v jeho rámci! Ty je nutné odemknout samostatně (action="unlock").