# Manuál k hotovostnímu automatu (recyleru/dispenzeru)

## 1. Úvod a rozsah

### 1.1 Co je hotovostní automat (recykler/dispenser)

Tento dokument popisuje základní i pokročilé funkce a ovládání hotovostního automatu, který je připojen k vašemu pokladnímu systému KASA FIK. Zařízení slouží k automatizovanému **příjmu a výplatě hotovosti** (bankovek a mincí), čímž zjednodušuje manipulaci s penězi, snižuje riziko chyb a zvyšuje bezpečnost.

Reálné nasazení tohoto zařízení v kiosku je postaveno na:

- **akceptoru bankovek** (výrobce Innovative Technology, model řady NV4000 / Spectral) pro nominální hodnoty 100, 200, 500, 1 000, 2 000 a 5 000 Kč,
- **akceptoru mincí** (model řady Coin) pro nominální hodnoty 1, 2, 5, 10, 20 a 50 Kč,
- řídicí službě `ITL_SSP` (dále jen *REST API bridge*), která zprostředkovává komunikaci s hardware a je spuštěna na stejném zařízení jako pokladní aplikace.

### 1.2 Rozdíl mezi recyclerem, dispenserem a akceptorem

V tomto manuálu rozlišujeme tři logické role hardwaru:

| Role | Význam | Příklad v KASA FIK |
|------|--------|--------------------|
| **Akceptor** | Pouze přijímá hotovost, nic nevydává. | Bankovky/mince přijaté zákazníkem |
| **Dispenser** | Pouze vydává hotovost, nic nepřijímá. | Výplata změny zákazníkovi |
| **Recycler** | Přijímá i vydává – totéž fyzické zařízení pracuje v obou režimech podle potřeby. | NV4000 Spectral i Coin v režimu „recyklace" |

V praxi se oba moduly (akceptor bankovek i akceptor mincí) chovají jako **recyclery**: hotovost, kterou přijmou od zákazníka, může být v další transakci opět vyplacena jako změna jinému zákazníkovi. Proto se v dalším textu hovoří souhrnně o **„recykleru"** nebo **„hotovostním automatu"**.

### 1.3 Co manuál pokrývá a co ne

**Pokrývá:**

- každodenní obsluhu a postupy při směně,
- nastavení zásoby (float), konfiguraci a doporučené hodnoty,
- platbu hotovostí, vracení změny, rušení transakcí a chybové stavy,
- uzavření pokladny a inventuru hotovosti (včetně **doporučeného rozdílového způsobu**),
- bezpečnostní zásady, odpovědnost obsluhy a předání směny,
- integraci na účetní systémy (Helios, FlexiBee, Aktion NEXT) a postup pro eliminaci závislosti na třetích stranách.

**Nepokrývá:**

- fyzickou instalaci a zapojení hardwaru (řeší samostatný instalační manuál dodavatele),
- síťovou konfiguraci (řeší IT administrátor),
- postupy EET a fiskální integrace (řeší samostatný manuál k tiskárně),
- vývoj a SDK (řeší vývojářská dokumentace).

---

## 2. Terminologie a základní principy

### 2.1 Typy zařízení v systému

| Typ zařízení | Hardwarová třída | Nominální hodnoty | Identifikace v aplikaci |
|--------------|-------------------|-------------------|-------------------------|
| Akceptor bankovek | NV4000 / Spectral | 5 000, 2 000, 1 000, 500, 200, 100 Kč | Záložka **„Bankovky"** (model obsahuje `SPECTRAL`) |
| Akceptor mincí | Coin | 50, 20, 10, 5, 2, 1 Kč | Záložka **„Mince"** (model obsahuje `COIN`) |

Obě zařízení mohou být připojena přes různé USB porty; systém je rozpozná podle SSP adresy a modelu. V jedné instalaci se očekává **maximálně 2 zařízení** (1× bankovky + 1× mince) – viz `ItlDeviceManager.startDiscovery()`.

### 2.2 Základní pojmy

| Pojem | Význam |
|-------|--------|
| **Výplata (Payout)** | Hotovost vydaná zákazníkovi, typicky jako změna při platbě. |
| **Pokladní zásuvka (CashBox)** | Externí zásobník, kam směřuje přebytečná hotovost nad rámec zadané zásoby. Slouží k pozdějšímu výběru (zpravidla 1× za několik dní). |
| **Float (Zásoba)** | Minimální množství hotovosti, které zařízení udržuje k dispozici pro výplatu změny. Definuje se v konfiguraci (`CASH_ACCEPTOR_FLOAT`) ve formátu `denominace:množství`. |
| **Escrow** | Dočasná úschova bankovky předtím, než se systém rozhodne, zda ji přijme do zásobníku nebo vrátí zákazníkovi. |
| **Route (Směrování)** | Pravidlo, podle kterého se přijatá bankovka/mince uloží – buď do **Payout** zásobníku (k dalšímu vydání), nebo do **CashBoxu** (k pozdějšímu výběru). |
| **Move to CashBox** | Událost, kdy zařízení přesune bankovku/minci z Payout do CashBoxu. Tato událost je **evidována jako výběr hotovosti** (transakce typu `GIVEN_OUT`). |
| **Smart Empty** | Operace, která přesune **veškerou** hotovost ze všech vnitřních zásobníků do CashBoxu. |
| **FLOAT operace** | Operace, která ponechá v zařízení přesně definované množství hotovosti (dle konfigurace `CASH_ACCEPTOR_FLOAT`) a zbytek přesune do CashBoxu. |
| **Payout limit** | Maximální částka, kterou je zařízení ochotno vyplatit v jedné transakci (ochrana proti příliš velkému výdeji). |
| **Inhibit** | Maska, která zakazuje přijímat určité nominální hodnoty. V konfiguraci lze zakázat například 5 000 Kč, pokud je nechcete přijímat. |
| **Level** | Dvojice `(nominální hodnota, počet kusů)`. Stav každého zásobníku v aplikaci je reprezentován sadou `ItlLevel`. |

### 2.3 Schéma toku hotovosti

```
        Zákazník vloží bankovku/minci
                    │
                    ▼
            ┌──────────────┐
            │  Akceptor /  │
            │   Recycler   │
            └──────┬───────┘
                   │
            Route (Směrování)
                   │
        ┌──────────┴──────────┐
        ▼                     ▼
  ┌───────────┐         ┌──────────┐
  │   PAYOUT  │         │ CASH BOX │  ← evidence výběru (GIVEN_OUT)
  │  (výplata │         │(pokladní │
  │  zákazní- │         │ zásuvka) │
  │   kovi)   │         │          │
  └───────────┘         └──────────┘
        ▲                     │
        │                     │
        │     FLOAT operace   │
        └─────────────────────┘
```

### 2.4 Výchozí směrování (Routes)

Směrování se nastavuje při inicializaci spojení v `OpenConnectionRequest.setSetRoutes(...)`:

| Denominace | Výchozí route (NV4000 Spectral) | Poznámka |
|------------|----------------------------------|----------|
| 5 000 Kč | CashBox | Vysoké bankovky vždy do pokladny |
| 2 000 Kč | CashBox | Vysoké bankovky vždy do pokladny |
| 1 000 Kč | Payout | Pro výplatu změny |
| 500 Kč | Payout | Pro výplatu změny |
| 200 Kč | Payout | Pro výplatu změny |
| 100 Kč | Payout | Pro výplatu změny |
| 50 Kč | Payout | Pro výplatu změny |
| 20 Kč | Payout | Pro výplatu změny |
| 10 Kč | Payout | Pro výplatu změny |
| 5 Kč | Payout | Pro výplatu změny |
| 2 Kč | Payout | Pro výplatu změny |
| 1 Kč | Payout | Pro výplatu změny |

### 2.5 Životnost a mechanické opotřebení

Recykler je **mechanické zařízení** s omezenou životností. Životnost se počítá v:

- **počtu cyklů příjmu** (každá přijatá bankovka/mince = 1 cyklus),
- **počtu cyklů výdeje** (každá vyplacená bankovka/mince = 1 cyklus).

Typická životnost kvalitního recycleru bývá **~100 000 – 300 000 cyklů** na jeden modul; u mincí je to řádově více. Výrobce udává MTBF (střední dobu mezi poruchami) v technické dokumentaci konkrétního modelu.

**Důsledek pro provoz:**

> ⚠️ **Doporučený postup**: Nevybírejte automat každý den. Časté Smart Empty výrazně zvyšuje opotřebení výdejního mechanismu, ale nepřináší žádnou ochranu proti ztrátě (ke ztrátě naopak může dojít právě při manipulaci s hotovostí). Hotovost nechte v zařízení a provádějte **rozdílovou inventuru** – viz § 6.3.

---

## 3. Spuštění a stav zařízení

### 3.1 Automatické spuštění

Po spuštění pokladní aplikace systém automaticky:

1. **Vyhledá** připojená USB zařízení přes REST API bridge (`getConnectedUSBDevices`).
2. **Pokouší se navázat spojení** na SSP adresách `0` a `16` (typicky adresa 0 = bankovky, adresa 16 = mince). Pokud je v konfiguraci uloženo `ITL_CONFIG`, použijí se adresy z něj.
3. **Spustí zařízení** (`startDevice` pro každý modul).
4. **Načte stav zásobníků** (`getAllLevels`) – seznam `(denominace, počet kusů)` pro každý modul.
5. **Spustí polling** stavu každou sekundu (kontrola událostí: vklad, výdej, chyba).

V uživatelském rozhraní se objeví **dvě záložky** (nebo jedna, pokud je připojen pouze jeden modul):

- Záložka **Bankovky** (model obsahuje `SPECTRAL`),
- Záložka **Mince** (model obsahuje `COIN`).

### 3.2 Stavová hlášení zařízení

Zařízení během provozu vysílá události, které se zobrazují obsluze:

| Stav / událost | Význam | Akce obsluhy |
|----------------|--------|--------------|
| **IDLE** | Zařízení je připraveno, čeká na vklad nebo výdej. | — |
| **ACCEPTING** | Zařízení přijímá hotovost (zákazník vkládá). | Počkat na dokončení. |
| **ESCROW** | Bankovka je v dočasné úschově. Systém ověřuje, zda může vrátit změnu. | Netřeba jednat – systém rozhodne sám do ~500 ms. |
| **STORED** | Bankovka/mince byla uložena do zásobníku (Payout). | — |
| **STACKED** | Hotovost přesunuta do CashBoxu. | Vizuální potvrzení, žádná akce. |
| **DISPENSING** | Zařízení právě vydává hotovost (změnu). | — |
| **DISPENSED** | Výplata dokončena. | Zákazník si může vzít hotovost. |
| **FLOATING** | Probíhá FLOAT operace (přesun do CashBoxu). | Nepřerušovat, čekat na dokončení. |
| **COMPLETED** | Aktuální operace dokončena. | — |
| **MOVED_TO_CASHBOX** | Událost přesunu do CashBoxu – **eviduje se jako výběr**. | Viz § 5.5. |
| **REJECTED** | Hotovost byla odmítnuta (poškozená, nerozpoznaná). | Vyzvat zákazníka k vložení jiné bankovky/mince. |
| **ERROR** | Chyba zařízení (zaseknutí, komunikační chyba). | Viz § 7.4. |

### 3.3 Co zobrazuje karta zařízení

V detailu zařízení (záložka Bankovky / Mince) obsluha vidí:

| Pole | Význam |
|------|--------|
| **Device Model** | Typ hardwaru (např. „NV4000 Spectral") |
| **Firmware** | Verze firmware zařízení |
| **Dataset** | Konfigurační datasheet |
| **Device Error** | Aktuální chybový kód (nebo „Not available") |
| **CashBox Payout Limit** | Maximální částka, kterou zařízení vyplatí |
| **Serial Number** | Výrobní číslo (hlavní modul + hopper) |
| **Counters** | Počítadla akcí (přijaté, vydané, escrow) |
| **Routes** | Aktuální směrování |
| **Inhibits** | Zakázané nominální hodnoty |
| **Open** | Je zařízení v otevřeném stavu? (true/false) |

Dále je vidět **stav zásobníků** pro každý level (např. *„100 CZK: 12 ks"*) a celkový součet v Payout (např. *„Total: 4 230 Kč (42 ks)"*).

### 3.4 Přepínače na kartě

Na kartě zařízení jsou k dispozici tři přepínače:

| Přepínač | Funkce | Doporučení |
|----------|--------|------------|
| **Enable Acceptor** | Povolí / zakáže příjem hotovosti. | Při otevření směny **zapnout**. Při ukončení směny **vypnout**. |
| **Enable Payout** | Povolí / zakáže výdej hotovosti. | Zapnuto trvale během směny. |
| **Auto-Accept Escrow** | Automaticky přijme bankovky z escrow (bez čekání na rozhodnutí). | **Zapnuto** – urychluje platby. Při vypnutí systém čeká a může odmítnout bankovku, pokud nemůže vrátit změnu. |

Při opuštění obrazovky (onPause) systém **automaticky zakáže akceptor**, aby nedošlo k vkladu do opuštěného zařízení.

---

## 4. Platba hotovostí

### 4.1 Kdy je automat k dispozici

Hotovostní platba je dostupná, pokud jsou splněny všechny tyto podmínky:

- otevřená směna,
- připojen alespoň jeden modul (bankovky nebo mince),
- v zařízení je dostatečná zásoba pro vrácení změny (viz § 4.2),
- akceptor je povolen (Enable Acceptor = on).

Systém při inicializaci ověřuje minimální požadované množství každé denominace:

```
1 Kč  × 5 ks   │   5 Kč  × 2 ks
2 Kč  × 5 ks   │   10 Kč × 3 ks
10 Kč × 3 ks   │   20 Kč × 2 ks
50 Kč × 1 ks   │   100 Kč × 3 ks
200 Kč × 2 ks  │   500 Kč × 1 ks
1000 Kč × 1 ks
```

Pokud zásoba v některé denominaci klesne pod minimum, **platební okno se nezobrazí** a zákazník je informován, že hotovostní platba není dostupná. Zároveň je na e-mail účetního (viz § 9) odesláno automatické upozornění.

### 4.2 Průběh platby – krok za krokem

1. Zákazník zahájí platbu v kiosku, zvolí **„Platba hotově"**.
2. Zobrazí se **platební okno** s textem „Vložte hotovost do automatu".
3. Zákazník vkládá bankovky/mince. Systém průběžně aktualizuje:
   - **Vloženo**: celková částka vložená zákazníkem,
   - **Zbývá doplatit**: rozdíl do ceny,
   - **Stav zařízení**: aktuální stav automatu.
4. Po dosažení přesné částky systém:
   - **ukončí příjem** (`enableAll(false)`),
   - přesune přebytečné bankovky dle **směrovacích pravidel** do Payout nebo CashBoxu,
   - dokončení transakce se zákazníkovi potvrdí.
5. Pokud zákazník vloží **více**, než je třeba:
   - systém vypočítá **vrácenou částku** (změnu),
   - ověří, zda ji lze složit z dostupných nominálních hodnot (`CashAcceptorHelper.canGiveChange`),
   - pokud ano, vyplatí ji z Payout zásobníku,
   - pokud ne, zobrazí chybu „Nedostatek hotovosti pro vrácení" – viz § 7.1.

### 4.3 Zrušení platby zákazníkem

1. Zákazník stiskne tlačítko **„Zrušit"** v platebním okně.
2. Systém zastaví další příjem hotovosti.
3. **Pokud již zákazník něco vložil**, systém tuto částku automaticky **vyplatí zpět** z Payout zásobníku (viz `setLayoutAsPayout(amountReceived)`).
4. Transakce se v systému **neeviduje jako tržba**.
5. Pokud automat nemůže vrátit peníze (např. vložil 2 000 Kč, ale v zařízení jsou jen 100 Kč bankovky), zobrazí se chyba „Nelze vyplatit hotovost" a je odeslán e-mail účetnímu s detailem incidentu.

> ⚠️ **Pro obsluhu**: Rušení transakce je běžné. Pokud se opakuje u stejného zákazníka nebo se chování zdá neobvyklé, kontaktujte nadřízeného.

### 4.4 Přehled možných chybových stavů při platbě

| Chybové hlášení | Význam | Akce obsluhy |
|-----------------|--------|--------------|
| **„Nedostatek hotovosti pro vrácení"** | Systém nemůže složit vrácenou částku z dostupných bankovek/mincí. | Viz § 7.1. |
| **„Odmítnuto"** | Vložená bankovka/mince nebyla akceptována. | Vyzvat zákazníka k jiné bankovce/minci. |
| **„Nelze vyplatit bankovku, chyba při validaci"** | Chyba při výdeji (zaseknutí, vyčerpání). | Viz § 7.4. |
| **„Hotovostní platba je nedostupná"** | Zásoba v zařízení klesla pod minimum. | Doplňte float dle § 5.3. |

---

## 5. Operace s hotovostí

### 5.1 Akce dostupné v menu

Menu pro správu hotovostního automatu (v záložce zařízení, tlačítko **Akce**) obsahuje tyto operace:

| Akce | Účel | Kdy použít |
|------|------|------------|
| **Smart Empty** | Přesun veškeré hotovosti ze zásobníků do CashBoxu. | **Jen výjimečně** – viz § 5.4. |
| **Nastavení zásoby (Float)** | Zobrazí a umožní upravit konfiguraci minimální zásoby. | Při prvním nasazení, při změně intenzity provozu. |
| **Reset zařízení** | Restartuje a znovu inicializuje hardware. | Při drobných chybách, po údržbě. |
| **Reset Connection Settings** | Smaže uloženou konfiguraci portů/adres. | Při výměně hardwaru nebo přidání nového modulu. |

> Akce **„Tisk/Odeslání stavu hotovosti"** (zmíněná v dřívější verzi manuálu) je v současnosti k dispozici nepřímo – stav se zobrazuje přímo v záložkách a v pravém sloupci obrazovky uzavření pokladny (viz § 6).

### 5.2 Tisk / odeslání stavu hotovosti (report)

Aktuální stav hotovosti je vidět vždy v záložkách zařízení a v pravém sloupci obrazovky **„Uzavřít pokladnu"**:

- **Levý sloupec**: aktuální stav v Payout zásobnících (počet kusů × denominace).
- **Pravý sloupec**: plánovaná výplata při zadaném koncovém stavu.

Řádky s **oranžovým pozadím** znamenají, že aktuální počet kusů je **nižší než minimální zásoba** (`Min ks`) – je třeba doplnit float. Viz § 5.3.

> **E-mail účetnímu**: Pokud je v konfiguraci nastaven e-mail (`getAccountantEmail`), systém **automaticky** posílá notifikace při incidentech (např. „Nedostatek hotovosti pro vrácení, doplnit: 5 Kč × 0, 10 Kč × 1…"). Manuální odeslání reportu se v současné verzi neprovádí – pro účely denní uzávěrky slouží **Z-report** zavírání pokladny.

### 5.3 Nastavení zásoby (Float) – konfigurace

Konfigurace zásoby se ukládá do nastavení aplikace pod klíčem `CASH_ACCEPTOR_FLOAT`. Formát je:

```
denominace:množství, denominace:množství, …
```

kde `denominace` je celé číslo v Kč (1, 2, 5, 10, 20, 50, 100, 200, 500, 1 000, 2 000, 5 000) a `množství` je nezáporné celé číslo (kolik kusů této denominace má zůstat v Payout po float operaci).

**Výchozí hodnota (pro CZK):**

```
5000:0, 2000:0, 1000:2, 500:0, 200:0, 100:0, 50:4, 20:1, 10:0, 5:1, 2:10, 1:10
```

Význam: po provedení float operace zůstanou v zařízení:

- 0× 5 000 Kč,
- 0× 2 000 Kč,
- 2× 1 000 Kč,
- 0× 500 Kč,
- 0× 200 Kč,
- 0× 100 Kč,
- 4× 50 Kč,
- 1× 20 Kč,
- 0× 10 Kč,
- 1× 5 Kč,
- 10× 2 Kč,
- 10× 1 Kč.

**Jak upravit:**

1. V detailu zařízení (záložka Bankovky / Mince) klikněte na tlačítko **Akce** (vpravo nahoře).
2. Zvolte **„Nastavení zásoby"**.
3. Zobrazí se dialog s výchozí hodnotou. Upravte podle potřeby.
4. Potvrďte tlačítkem **Uložit**.

**Doporučení pro volbu hodnot:**

> ⚠️ **Doporučujeme ponechat větší zásobu drobných mincí** (1, 2, 5, 10 Kč). Ty se používají pro většinu změn. Naopak vysoké bankovky (1 000, 2 000, 5 000 Kč) v Payout obvykle nepotřebujete – systém je díky směrovacím pravidlům automaticky posílá do CashBoxu.

**Příklad vhodné konfigurace pro běžný provoz (pokladna s 200–500 transakcemi denně):**

```
5000:0, 2000:0, 1000:2, 500:2, 200:5, 100:10,
50:10, 20:15, 10:20, 5:20, 2:30, 1:30
```

Tato konfigurace poskytne dostatečnou flexibilitu pro vrácení změny do ~250 Kč v mincích a ~3 000 Kč v bankovkách.

### 5.4 Float operace – provedení

Float operace přesune přebytečnou hotovost z Payout zásobníků do CashBoxu tak, aby v Payout zůstalo **přesně** tolik, kolik je definováno v konfiguraci.

**Krok za krokem:**

1. V detailu zařízení klikněte na **Akce** → **„Provést float"** (tlačítko s označením „Float" na kartě zařízení).
2. Systém provede výpočet:
   - porovná aktuální stav Payout s konfigurací `CASH_ACCEPTOR_FLOAT`,
   - určí, kolik kusů každé denominace je „navíc" (s respektováním `keepMinimum`),
   - najde optimální kombinaci, která minimalizuje počet vyplácených kusů a **maximalizuje ponechání drobných** (viz `ItlDeviceManager.calculateKeepQuantities`).
3. Systém zobrazí stav **FLOATING**.
4. Přebytečná hotovost je přesunuta do CashBoxu. Každý přesun je **evidován jako transakce `GIVEN_OUT`** (viz § 5.5).
5. Po dokončení se zobrazí stav **COMPLETED**.

> **Doporučení**: Provádějte float operaci **na začátku směny** (po nastavení floatu z předchozího dne) a **na konci směny**, pokud necháváte zásobu pro další den. Smart Empty v naprosté většině případů **nepotřebujete** – viz § 5.6.

### 5.5 Sledování pohybů do CashBoxu

Každá událost `MOVED_TO_CASHBOX` je automaticky evidována jako transakce v databázi pokladny:

- typ: `GIVEN_OUT` (výdej z pokladny),
- částka: nominální hodnota přesunuté bankovky/mince,
- měna: `CZK`,
- ID pokladny, směny, zaměstnance, provozovny: vyplněno z aktuálního kontextu,
- ID objednávky: pokud jde o přesun v rámci platby, doplní se.

Evidence slouží k:

- sledování toku hotovosti mezi Payout a CashBox,
- auditům (kdo, kdy, kolik přesunul),
- inventuře (viz § 6.3).

### 5.6 Smart Empty – kdy (ne)použít

Smart Empty přesune **veškerou** hotovost z vnitřních zásobníků do CashBoxu. V drtivé většině provozů **tuto operaci nepotřebujete**.

> ⚠️ **NEDOPORUČUJE SE** provádět Smart Empty každý den, protože:
> 1. **Opotřebovává výdejní mechanismy** recycleru (každý výdej = cyklus). Časté vybírání zkracuje životnost zařízení.
> 2. **Nezlepšuje bezpečnost** – hotovost v CashBoxu je stejně zabezpečená jako v Payout. Naopak častá manipulace zvyšuje riziko chyby obsluhy.
> 3. **Komplikuje provoz** – po Smart Empty musíte znovu ručně nastavit float, jinak automat nemůže vracet změnu.
> 4. **Zvyšuje riziko neshody** – při každém výběru z CashBoxu musíte přepočítat, kolik bylo vybráno, a porovnat s evidencí `MOVED_TO_CASHBOX`.

**Kdy Smart Empty smysl dává:**

- **První uvedení do provozu** – po instalaci, pokud v zařízení zůstala testovací hotovost.
- **Výměna hardwaru** – před fyzickým servisem zařízení.
- **Plánovaná odstávka delší než 7 dní** – pokud bude kiosk delší dobu mimo provoz.
- **Dlouhodobý výpadek elektrického napájení** – po obnově, pokud si nejste jisti stavem.

**Krok za krokem (pokud je přesto potřeba):**

1. V detailu zařízení klikněte na **Akce** → **„Smart Empty"**.
2. Potvrďte akci v dialogu.
3. Počkejte na dokončení (stav `FLOATING` → `COMPLETED`).
4. **Ihned poté nastavte float** (§ 5.3) a proveďte **FLOAT operaci** (§ 5.4), aby zařízení mohlo vracet změnu.
5. Zkontrolujte, že v Payout zbývá očekávané množství.

### 5.7 Reset zařízení

Reset restartuje hardware a znovu inicializuje spojení přes SSP protokol.

**Kdy použít:**

- zařízení přestalo odpovídat (trvá >30 s bez reakce),
- zobrazuje se neznámý chybový stav,
- po výměně hardwaru nebo servisním zásahu,
- po delší odstávce.

**Důležité:**

> ℹ️ Reset **nevymaže** informace o aktuálním stavu hotovosti. Zásobníky si svůj stav pamatují i bez napájení (mají vlastní záložní paměť). Reset pouze obnoví komunikaci.

**Postup:**

1. V detailu zařízení klikněte na **Akce** → **„Reset zařízení"**.
2. Potvrďte akci.
3. Zařízení provede restart (cca 5–15 s).
4. Systém znovu naváže spojení a obnoví stav.
5. Ověřte, že stav v aplikaci odpovídá skutečnosti.

### 5.8 Manuální výplata denominace

V kartě zařízení je u každého levelu tlačítko pro **manuální výplatu** (Dispense). Slouží pro testovací a servisní účely.

> ⚠️ **POZOR**: Tato operace **neeviduje se jako transakce**, ale **snižuje stav hotovosti v Payout**. Použití za běžného provozu může narušit očekávaný float a způsobit neschopnost vrátit změnu.

**Používejte pouze:**

- při testu po servisu,
- při ověřování funkčnosti výdeje,
- na pokyn technické podpory.

---

## 6. Práce s hotovostí a uzavření pokladny

### 6.1 Kde najdete uzavření pokladny

Na hlavní obrazovce aplikace otevřete **Pokladna → Uzavřít pokladnu**. Zobrazí se obrazovka s:

- **levým sloupcem**: aktuální stav hotovosti v Payout (podle záložek zařízení),
- **pravým sloupcem**: plánovaná výplata (počet kusů k přesunu do CashBoxu),
- **vstupním polem**: požadovaný koncový stav (částka, která má zůstat v Payout).

### 6.2 Doporučený postup – inventura rozdílem

> ⚠️ **Doporučený postup**: Provádějte **rozdílovou inventuru** (viz § 6.3), nikoli úplný fyzický rozpočet. Fyzický rozpočet celé hotovosti v Payout je zbytečně pracný a opotřebovává výdejní mechanismy (každý výdej znamená cyklus).

**Standardní postup na konci směny:**

1. **Zavřete všechny otevřené transakce** v kiosku.
2. Otevřete **Pokladna → Uzavřít pokladnu**.
3. Do pole **„Požadovaný koncový stav"** zadejte **částku, kterou chcete ponechat v Payout jako float pro další směnu**.
   - Výchozí doporučení: ponechte **konfiguraci dle § 5.3** (např. 4 230 Kč z výchozího příkladu).
4. Systém **automaticky vypočítá**, kolik a jaké denominace je třeba přesunout do CashBoxu, aby v Payout zůstal přesně požadovaný stav.
5. **Zkontrolujte pravý sloupec** – vidíte plánovaný přesun (např. *„2× 200 Kč"*).
6. Pokud se plánovaná výplata **nerovná aktuálnímu rozdílu**, systém vás upozorní. Zkontrolujte zadaný koncový stav.
7. **Potvrďte a uložte**. Systém provede přesun do CashBoxu a uzavře směnu.

### 6.3 Inventura rozdílem (doporučený způsob)

Místo každodenního fyzického přepočítávání celé hotovosti doporučujeme **rozdílovou inventuru**:

1. **Na konci směny** (před uzavřením) systém sám zná **počáteční stav** + **všechny transakce** + **všechny přesuny do/z CashBoxu** → dopočítá **očekávaný stav**.
2. Obsluha zadá **požadovaný koncový stav** (= plánovaný float pro další směnu).
3. Systém sám přesune přebytečnou hotovost do CashBoxu a **eviduje všechny přesuny** (viz § 5.5).
4. **Inventura se provede rozdílem**: porovnáním
   - očekávaného stavu (vypočteného systémem),
   - skutečného stavu po provedení floatu.
5. **Rozdíl = neshoda**. Pokud je nenulový:
   - **přičtěte jej k poznámce** v reportu (viz níže),
   - **prošetřete** (většinou jde o nezaevidovaný vklad/výběr nebo o záměnu koncového stavu).

**Výhody rozdílové inventury:**

| Výhoda | Vysvětlení |
|--------|------------|
| **Minimální opotřebení** | Zařízení samo provede jen tolik výdejů, kolik je nezbytné. |
| **Rychlost** | Netřeba ručně přepočítávat každý kus. |
| **Přesnost** | Systém eviduje každý přesun, lidská chyba je minimalizována. |
| **Auditovatelnost** | Každý `MOVED_TO_CASHBOX` má časovou značku a ID zaměstnance. |

### 6.4 Fyzický rozpočet CashBoxu (když je třeba)

> ⚠️ **Doporučení**: CashBox vybírejte **jednou za několik dní** (typicky 1× týdně nebo při dosažení limitu), nikoli denně.

Když je CashBox třeba fyzicky vybrat (odvod tržeb do banky):

1. **Nejdříve uzavřete směnu** v aplikaci (viz § 6.2). Tím se aktualizuje evidence `MOVED_TO_CASHBOX`.
2. **Otevřete CashBox** fyzicky (klíčem, podle modelu zařízení).
3. **Vyndejte hotovost** a **přepočítejte ji**.
4. **Porovnejte** s údajem v Z-reportu nebo v reportu `MOVED_TO_CASHBOX` za období.
5. **Případný rozdíl** zdokumentujte (datum, čas, částka, jméno) a kontaktujte nadřízeného.

> **Doporučená praxe**: Pravidelně (1× týdně) kontrolujte, zda se objem CashBoxu blíží fyzickému limitu zařízení. Pokud ano, proveďte odvod. CashBox by neměl být nikdy zcela plný – při dosažení 80 % kapacity hrozí, že zařízení nebude moci přesunout další hotovost.

### 6.5 Jak číst obrazovku uzavření

| Sloupec / pole | Význam |
|----------------|--------|
| **Levý – Stav (Payout)** | Počet kusů každé denominace aktuálně v Payout zásobnících. |
| **Levý – Min ks** | Minimální množství dle konfigurace `CASH_ACCEPTOR_FLOAT`. Pokud je `Stav < Min`, řádek je **oranžový** = podstav, vyžaduje doplnění. |
| **Pravý – Výplata** | Plánovaný přesun do CashBoxu pro dosažení zadaného koncového stavu. |
| **Vstup – Koncový stav** | Částka, která má zůstat v Payout (výchozí = aktuální konfigurace floatu). |

### 6.6 Příklad z praxe

Výchozí stav po celodenním provozu:

| Denominace | Stav ks | Min ks | Rozdíl |
|------------|--------:|-------:|-------:|
| 1 000 Kč   |       5 |      2 |     +3 |
| 500 Kč     |       1 |      0 |     +1 |
| 200 Kč     |       2 |      0 |     +2 |
| 100 Kč     |       8 |      0 |     +8 |
| 50 Kč      |       6 |      4 |     +2 |
| 20 Kč      |       8 |      1 |     +7 |
| 10 Kč      |      10 |      0 |    +10 |
| 5 Kč       |       5 |      1 |     +4 |
| 2 Kč       |      15 |     10 |     +5 |
| 1 Kč       |      14 |     10 |     +4 |

Celkem v Payout: cca 7 600 Kč.

Chceme ponechat **4 230 Kč** (dle výchozího floatu). Systém vypočítá, že do CashBoxu přesune přebytečné bankovky (např. 3× 1 000 + 1× 500 + 1× 200 + 2× 50 + 1× 20 + …) tak, aby výsledný stav odpovídal zadanému koncovému stavu.

**Vy** jen ověříte, že plánovaná výplata dává smysl, a potvrdíte.

---

## 7. Řešení problémů (Troubleshooting)

### 7.1 Problém: „Nedostatek hotovosti pro vrácení"

**Příznaky:** Zákazník vložil bankovku, systém hlásí, že nemůže vrátit změnu. Nebo se platební okno vůbec neotevře.

**Možné příčiny:**

- Příliš nízký float – v zařízení chybí drobné mince nebo nízké bankovky potřebné pro vrácení.
- Nevhodná konfigurace floatu.
- Zařízení dlouho nebylo doplňováno a spotřebovalo drobné.

**Řešení:**

1. Ověřte stav zásobníků v záložce zařízení. Hledejte denominace s **0 ks**.
2. Pokud chybí drobné (1, 2, 5 Kč), **doplňte float** (viz § 5.3):
   - Zvyšte počet kusů příslušné denominace v konfiguraci,
   - Proveďte float operaci – systém sám přesune z CashBoxu (pomocí `MOVED_TO_CASHBOX`) do Payout požadované množství.
3. Pokud chybí **vyšší** bankovky (500, 1 000 Kč) a ty jsou potřeba pro změnu, zvyšte příslušné hodnoty ve floatu.
4. Pokud ani po úpravě floatu nelze sestavit změnu, **kontaktujte technickou podporu**.

### 7.2 Problém: Zařízení neodpovídá

**Příznaky:** Stav zařízení se nemění, operace končí chybou `Unable to get device status`, polling stavu nedává výsledky.

**Krok za krokem:**

1. **Ověřte fyzické připojení**: USB kabel, napájení.
2. **Restartujte aplikaci** (zavřít a znovu otevřít).
3. **Resetujte zařízení** v aplikaci (§ 5.7).
4. Pokud ani to nepomůže, **restartujte celý kiosk** (tablet).
5. Pokud problém přetrvává, kontaktujte technickou podporu s popisem:
   - čas posylední funkční operace,
   - jakékoli změny v prostředí (napájení, USB, síť),
   - výpis z logu (je-li dostupný).

### 7.3 Problém: Bankovka/mince odmítnuta (REJECTED)

**Možné příčiny:**

- bankovka je poškozená, opotřebovaná, špinavá,
- mince je cizí měny,
- mince je mechanicky poškozená,
- zařízení má problém se senzorem (opotřebení, znečištění).

**Akce:**

1. Vyzvěte zákazníka k použití jiné bankovky/mince.
2. Pokud jsou **opakovaně** odmítány i nové bankovky/mince, kontaktujte technika – pravděpodobně je třeba vyčistit nebo vyměnit senzor.
3. **Neodmítejte zákazníka** – omluvte se a nabídněte alternativu (např. bezhotovostní platbu).

### 7.4 Problém: Chyba při výplatě (ERROR_DURING_PAYOUT)

**Příznaky:** Systém hlásí chybu při pokusu o výplatu. Stav přejde do `ERROR`.

**Řešení:**

1. Ověřte, že v požadované denominaci je dostatek kusů (`Stav ks > 0`).
2. **Resetujte zařízení** (§ 5.7) a zkuste výplatu znovu.
3. Pokud se chyba opakuje, **odložte zařízení z provozu** (zakažte akceptor) a kontaktujte technika.
4. **Dokumentujte incident**: čas, částku, jméno zákazníka. Systém automaticky odešle e-mail účetnímu s detailem.

### 7.5 Problém: Nesoulad mezi evidencí a skutečností

**Příznaky:** Při inventuře (rozdílové) se zjistí, že skutečný stav hotovosti neodpovídá evidenci.

**Postup:**

1. **Bezprostředně informujte nadřízeného**.
2. Proveďte **diferencovanou inventuru**: zjistěte, kdy a o kolik se stav liší (za den, týden, směnu).
3. **Projděte log událostí** `MOVED_TO_CASHBOX` v aplikaci – zkontrolujte, zda nedošlo k neočekávaným přesunům.
4. **Ověřte otevírání/zavírání směn** – chyba je často v zadání nesprávného koncového stavu.
5. **Zapište rozdíl** (datum, čas, částka, jméno obsluhy, jméno kontrolora).
6. **Pokud rozdíl přesáhne 200 Kč**, kontaktujte technickou podporu a finanční oddělení.

### 7.6 Problém: Platební okno se neotevírá

**Příznaky:** Zákazník zvolí „Platba hotově", ale okno se neotevře nebo se zobrazí „Hotovostní platba je nedostupná".

**Příčiny a řešení:**

| Příčina | Řešení |
|---------|--------|
| Nízký float (viz § 4.1) | Doplňte float. |
| Žádné zařízení připojeno | Ověřte USB / restartujte. |
| Směna není otevřena | Otevřete směnu. |
| Akceptor není povolen | V kartě zařízení zapněte `Enable Acceptor`. |

---

## 8. Bezpečnostní upozornění a odpovědnost

### 8.1 Obecné zásady bezpečného provozu

**✅ Doporučeno:**

- Pravidelně kontrolujte stav hotovosti (alespoň 1× denně).
- Dodržujte postupy otevírání a zavírání směn.
- Jakoukoli odchylku od očekávaného stavu zdokumentujte a nahlaste.
- Ponechávejte v zařízení **minimální nutný float** (viz § 5.3), neponechávejte zbytečně mnoho hotovosti.
- Před jakýmkoli fyzickým zásahem do zařízení **uzavřete směnu** v aplikaci.
- Pokud si všimnete neobvyklého chování zařízení (jiné zvuky, vibrace, opakované chyby), kontaktujte technika.

**❌ Zakázáno:**

- **Nemanipulujte** se zařízením během probíhající transakce zákazníka.
- **Nevybírejte hotovost** z CashBoxu bez předchozího uzavření směny.
- **Neprovádějte neoprávněné operace** (Smart Empty, float) mimo schválené postupy.
- **Neukládejte** hotovost do jiného zařízení, než jak je definováno v konfiguraci.
- **Neprozrazujte** přihlašovací údaje třetím osobám.
- **Neponechávejte** kiosk bez dozoru s otevřenou hotovostí.

### 8.2 Odpovědnost za hotovost

> ⚠️ **DŮLEŽITÉ**: Obsluha kiosku odpovídá za hotovost v Payout **od okamžiku otevření směny do okamžiku jejího uzavření** a za soulad se systémovou evidencí.

**Zásady:**

1. **Počáteční stav** při otevření směny musí odpovídat skutečné hotovosti v Payout.
2. **Jakýkoli výběr nebo vklad** musí být evidován v aplikaci (transakce `GIVEN_OUT`, `TAKEN_IN`).
3. Před **uzavřením směny** musí obsluha:
   - zkontrolovat aktuální stav v aplikaci,
   - zadat **reálný koncový stav** (kolik má zůstat v Payout),
   - potvrdit uzavření.
4. **Rozdíl** (nesoulad mezi očekávaným a skutečným stavem) **musí být prošetřen** před ukončením směny.
5. **Opakované rozdíly** u stejné obsluhy jsou důvodem k přeřazení nebo školení.

### 8.3 Předání směny

Při předání směny mezi dvěma obsluhami:

1. **Odcházející obsluha** uzavře svou směnu (viz § 6) a vytiskne/odešle Z-report.
2. **Příchozí obsluha** otevře novou směnu s **počátečním stavem odpovídajícím koncovému stavu předchozí směny**.
3. **Obě obsluhy** zkontrolují stav zařízení (alespoň zběžně, že se čísla v aplikaci shodují s očekáváním).
4. **Doporučeno**: zapsat předání do **knihy předání** (datum, čas, jména, případné nesrovnalosti).

> **Tip**: Pokud vaše firma používá **Helios** nebo jiný účetní systém, předání směny se automaticky promítne do denní uzávěrky – viz § 9.

### 8.4 Protokolování a evidence

Všechny operace s hotovostí **musí být evidovány**. Minimální rozsah:

| Typ záznamu | Kdy vzniká | Kde je uložen |
|-------------|------------|---------------|
| **Počáteční stav** | Otevření směny | `Shifts` tabulka + Z-report |
| **Vklad (TAKEN_IN)** | Ruční vklad hotovosti | `Transactions` (typ `TAKEN_IN`) |
| **Výběr (GIVEN_OUT)** | Ruční výběr + automatický `MOVED_TO_CASHBOX` | `Transactions` (typ `GIVEN_OUT`) |
| **Tržba** | Každá platba zákazníka | `Transactions` (typ `SALE`) |
| **Koncový stav** | Uzavření směny | `Shifts` tabulka + Z-report |
| **Výjimečná událost** | Chyba, rušení, reklamace | Logy + e-mail účetnímu |

Evidence slouží k:
- kontrole shody s fyzickou hotovostí,
- auditům (interním i externím),
- daňové kontrole (EET, DPH),
- řešení reklamací zákazníků.

---

## 9. Integrace na účetní systémy (Helios, FlexiBee, Aktion NEXT)

### 9.1 Proč tuto sekci potřebujete

KASA FIK nabízí **přímou integraci na účetní systémy** prostřednictvím REST API. Hlavním účelem je **automatický přenos dat** (transakce, směny, stavy) do účetnictví, čímž se:

- eliminuje ruční opisování dokladů,
- snižuje riziko lidské chyby,
- zrychluje měsíční uzávěrky,
- zajišťuje soulad mezi pokladnou a účetnictvím.

**Cílový stav**: KASA FIK je soběstačný pokladní systém, který **nezávisí na dostupnosti třetích stran** pro běžný provoz. Integrace slouží k přenosu dat, nikoli k zajištění funkčnosti pokladny.

### 9.2 Podporované účetní systémy

| Systém | Protokol | Směr přenosu | Účel |
|--------|----------|---------------|------|
| **Helios** | REST API (HTTP/JSON) | KASA FIK → Helios | Přenos směn, Z-reportů, transakcí |
| **FlexiBee** | REST API (HTTP/JSON + XML) | KASA FIK → FlexiBee | Účetní doklady, pokladní kniha |
| **Aktion NEXT** | WebAPI (HTTP/HTML) | KASA FIK → Aktion | Katalog produktů, sklady, transakce |
| **EET (Finanční správa)** | SOAP (HTTPS) | KASA FIK → FS | Fiskální evidence tržeb |
| **Pohoda, Money, Stereo, Jeti** | Přes Dativery / vlastní middleware | Zprostředkovaně | Vyžaduje samostatnou konfiguraci |

### 9.3 Princip integrace – datový tok

```
┌──────────────────────┐      REST API       ┌────────────────────┐
│                      │ ──────────────────► │                    │
│      KASA FIK        │   (auth token)      │   Účetní systém    │
│   (pokladní systém)  │                     │   (Helios, etc.)   │
│                      │ ◄─────────────────  │                    │
└──────────────────────┘   (stav, potvrzení)  └────────────────────┘
         ▲                                                ▲
         │                                                │
         │                                                |
         └──────── Při výpadku třetí strany ──────────────┘
```

### 9.4 Konfigurace integrace na Helios (a podobné systémy)

> ⚠️ **Doporučení**: Integraci konfiguruje **IT administrátor** ve spolupráci s administrátorem účetního systému. Níže uvedené kroky slouží k pochopení celého řetězce – viz § 9.6 pro postup eliminace závislosti.

**Požadované údaje od třetí strany (účetní systém):**

| Položka | Popis | Příklad |
|---------|-------|---------|
| **API base URL** | Kořenová URL API účetního systému. | `https://api.helios.example.com/v2/` |
| **API klíč / token** | Autentizační token pro KASA FIK. | `Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...` |
| **ID pokladny** | Identifikátor pokladny v účetním systému. | `KASA-FIK-01` |
| **ID provozovny** | Identifikátor provozovny. | `PROVOZOVNA-001` |
| **Seznam mapování účtů** | Mapování typů plateb / kategorií na účty. | Viz § 9.5. |
| **Webhook URL** *(volitelně)* | URL pro notifikace z KASA FIK zpět. | `https://...` |

**Postup konfigurace v KASA FIK:**

1. V nastavení aplikace přejděte do **Integrace → Účetní systém**.
2. Zadejte API base URL.
3. Vložte API klíč (token).
4. Ověřte spojení tlačítkem **„Test spojení"**.
5. Pokud test proběhne úspěšně, uložte konfiguraci.
6. Proveďte **testovací přenos**: uzavřete jednu směnu a ověřte, že se data objevila v účetním systému.

### 9.5 Datové entity přenášené do účetnictví

| Entita | Kdy se přenáší | Směr | Popis |
|--------|----------------|------|-------|
| **Směna (Shift)** | Při otevření a uzavření | → účetnictví | Datum, čas, pokladní, počáteční stav, koncový stav, rozdíl. |
| **Transakce (Transaction)** | Průběžně / při uzavření | → účetnictví | Jednotlivé platby (hotovost, karta, …). |
| **Doklad (Receipt)** | Při vystavení | → účetnictví + EET | Položky, DPH, celková částka. |
| **Zpráva o stavu pokladny** | Při uzavření | → účetnictví | Souhrnný report za směnu. |
| **Produkt / Sklad** | Průběžně | ↔ účetnictví | Katalog produktů, stav skladu (u Aktion NEXT obousměrně). |

### 9.6 Eliminace závislosti na třetích stranách

#### a) Detekce výpadku a alerting

Systém **automaticky detekuje** výpadek spojení s třetí stranou:

- zobrazí varování obsluze,

#### d) Dokumentace integračního rozhraní (vlastníkem KASA FIK)

Pro úplnou eliminaci závislosti na třetích stranách je třeba mít **dokumentaci vlastního integračního rozhraní**, aby:

- interní tým mohl sám upravit chování integrace,
- nemusel čekat na dodavatele účetního systému,
- bylo možné při změně účetního systému **rychle přenastavit mapování**.

**Tato dokumentace musí obsahovat:**

| Sekce | Popis |
|-------|-------|
| **REST API endpointy KASA FIK** | Endpointy pro čtení stavu pokladny, směn, transakcí. |
| **REST API endpointy účetního systému** | Endpointy účetního systému, na které se KASA FIK připojuje. |
| **Datový slovník** | Přesná struktura každé entity (JSON / XML). |
| **Mapování** | Jak se konkrétní typ platby / kategorie v KASA FIK mapuje na účet v účetnictví. |
| **Chybové kódy** | Význam každého chybového kódu a akce při jeho výskytu. |
| **Retry logika** | Jak se systém chová při selhání přenosu (kolikrát opakuje, po jaké době). |
| **Bezpečnost** | Jak se autentizuje, kde jsou uloženy klíče, jak se rotují. |
| **Testovací prostředí** | Jak spustit testovací přenos bez dopadu na produkční data. |

#### e) Konkrétní kroky pro Helios

1. **Získejte od dodavatele Helios** dokumentaci k API (nebo vlastní implementaci).
2. **Zmapujte entity**: směna, transakce, doklad, platba → ekvivalent v Helios (cash desk, receipt, journal).
3. **Definujte mapování**:
   - Hotovostní platba → účet `221` (Pokladna),
   - Bezhotovostní platba kartou → účet `221` se střediskem dle terminálu,
   - Výběr z pokladny → `MD 261 / D 221` apod.

### 9.7 Co dělat při výpadku třetí strany

1. **Neměňte postup obsluhy** – pokladna funguje normálně.
2. **Kontrolujte stav spojení** v nastavení (Integrace → Účetní systém → Stav).
3. **Po obnovení** spojení systém automaticky provede synchronizaci.
4. **Pokud se synchronizace nedaří**, kontaktujte technickou podporu s:
   - časem výpadku,
   - typem účetního systému,
   - popisem chyby (snímek obrazovky, výpis z logu).

### 9.8 Zálohování dat vlastními silami

I bez ohledu na třetí strany doporučujeme:

- **Pravidelný export dat** z KASA FIK (Nastavení → Záloha → Export do CSV / JSON).
- **Uchovávání záloh** minimálně 90 dní (dle zákona o účetnictví).
- **Ověření obnovitelnosti** – jednou za čtvrtletí proveďte test obnovy ze zálohy.

---

## 10. Technická referenční příručka (pro administrátory)

### 10.1 Konfigurační parametry

| Parametr | Klíč v PreferencesUtils | Výchozí hodnota | Význam |
|----------|--------------------------|-----------------|--------|
| **Float konfigurace** | `CASH_ACCEPTOR_FLOAT` | `5000:0,2000:0,1000:2,500:0,200:0,100:0,50:4,20:1,10:0,5:1,2:10,1:10` | Minimální zásoba pro každou denominaci. |
| **Konfigurace portů** | `ITL_CONFIG` | prázdné | JSON se seznamem `(port, adresa)` pro každé zařízení. |
| **E-mail účetního** | `accountant_email_address` | prázdné | E-mail pro automatické notifikace o incidentech. |

### 10.2 Přehled denominací CZK a jejich priorit

| Nominální hodnota | Typ | Priorita pro změnu | Doporučený min. počet |
|-------------------|-----|---------------------|------------------------|
| 5 000 Kč | Bankovka | Nízká | 0 |
| 2 000 Kč | Bankovka | Nízká | 0 |
| 1 000 Kč | Bankovka | Střední | 2 |
| 500 Kč | Bankovka | Střední | 0–2 |
| 200 Kč | Bankovka | Vysoká | 0–5 |
| 100 Kč | Bankovka | Vysoká | 0–10 |
| 50 Kč | Mince | Vysoká | 4 |
| 20 Kč | Mince | Vysoká | 1 |
| 10 Kč | Mince | Vysoká | 0–3 |
| 5 Kč | Mince | Vysoká | 1 |
| 2 Kč | Mince | Vysoká | 10 |
| 1 Kč | Mince | Vysoká | 10 |

### 10.3 Stavové kódy zařízení – úplný přehled

| Kód / stav | Význam | Doporučená akce |
|------------|--------|------------------|
| `IDLE` | Zařízení připraveno | — |
| `ACCEPTING` | Přijímá hotovost | — |
| `ESCROW` | Bankovka v dočasné úschově | — (systém rozhodne) |
| `STORED` | Uloženo do zásobníku | — |
| `STACKED` | Přesunuto do CashBoxu | — (eviduje se jako `GIVEN_OUT`) |
| `DISPENSING` | Vydává hotovost | — |
| `DISPENSED` | Výplata dokončena | — |
| `FLOATING` | Probíhá float | Nechat dokončit |
| `COMPLETED` | Operace dokončena | — |
| `MOVED_TO_CASHBOX` | Přesun do CashBoxu | Evidence |
| `REJECTED` | Hotovost odmítnuta | Viz § 7.3 |
| `ERROR` | Chyba zařízení | Viz § 7.4 |
| `UNAVAILABLE` | Zařízení neodpovídá | Viz § 7.2 |

### 10.4 Architektura – Bill Validator vs. Coin Acceptor

Oba moduly jsou nezávislé:

| Vlastnost | Bill Validator (NV4000) | Coin Acceptor (Coin) |
|-----------|--------------------------|----------------------|
| Nominální hodnoty | 100–5 000 Kč | 1–50 Kč |
| Escrow | Ano (podporováno) | Ne (mince nemá escrow) |
| Auto-accept | Podporováno | Vždy (mince jsou přijaty okamžitě) |
| Směrování | Konfigurovatelné per denominace | Všechny mince do Payout |

V aplikaci jsou moduly identifikovány podle modelu:

- model obsahuje `SPECTRAL` → záložka „Bankovky",
- model obsahuje `COIN` → záložka „Mince".

### 10.5 Podpora a servis

| Typ problému | Kontakt |
|--------------|---------|
| Funkční chyba zařízení | Technická podpora KASA FIK |
| Integrace na účetní systém | Správce IT + správce účetního systému |
| Fiskální (EET) problémy | Správce fiskální tiskárny |
| Fyzický servis hardwaru | Autorizovaný servis dle modelu |

---

## 11. Přílohy

### 11.1 Slovníček pojmů

| Termín | Vysvětlení |
|--------|------------|
| **Recycler** | Zařízení, které přijímá i vydává hotovost (totéž fyzické zařízení). |
| **Dispenser** | Zařízení pouze vydávající hotovost. |
| **Akceptor** | Zařízení pouze přijímající hotovost. |
| **CashBox** | Pokladní zásuvka / externí zásobník pro sběr přebytečné hotovosti. |
| **Float** | Zásoba – minimální množství hotovosti pro výplatu změny. |
| **Escrow** | Dočasná úschova bankovky před rozhodnutím o přijetí/vrácení. |
| **Route** | Směrování – pravidlo určující, kam se ukládá přijatá hotovost. |
| **Payout** | Výplata – hotovost vydaná zákazníkovi. |
| **Level** | Dvojice `(nominální hodnota, počet kusů)` reprezentující stav zásobníku. |
| **Inhibit** | Maska zakazující příjem určité nominální hodnoty. |
| **Inhibits** | Bitová maska – každý bit odpovídá jedné nominální hodnotě. |
| **Smart Empty** | Operace pro přesun veškeré hotovosti do CashBoxu. |
| **FLOAT operace** | Operace pro nastavení optimálního stavu hotovosti v Payout. |
| **REST API bridge** | `ITL_SSP` – služba zprostředkovávající komunikaci s hardware. |
| **SSP** | Smíšený protokol Innovative Technology pro komunikaci s recyclery. |
| **Cents** | Haléře – v interní reprezentaci jsou všechny částky v centech (×100). |

### 11.2 Rychlá referenční karta

| Co chcete udělat | Kde | Jak |
|------------------|-----|-----|
| **Přijmout platbu** | Kiosk → Platba hotově | Vložit hotovost → systém zpracuje → případně přijmout změnu |
| **Zrušit platbu** | Kiosk → platební okno | Stisknout „Zrušit" → přijmout vrácenou hotovost |
| **Zobrazit stav hotovosti** | Pokladna → Správa hotovostního automatu | Záložky zařízení |
| **Nastavit float** | Správa hotovostního automatu → Akce → Nastavení zásoby | Upravit hodnotu → Uložit |
| **Provést float** | Karta zařízení → tlačítko Float | Potvrdit |
| **Smart Empty** *(výjimečně)* | Správa → Akce → Smart Empty | Potvrdit (viz § 5.6) |
| **Resetovat zařízení** | Správa → Akce → Reset | Potvrdit |
| **Uzavřít směnu** | Pokladna → Zavřít pokladnu | Zadat koncový stav → Potvrdit |
| **Inventura hotovosti** | Rozdílová (viz § 6.3) | Porovnat evidenci vs. skutečnost |
| **Vybrat hotovost z CashBoxu** | Fyzicky, mimo aplikaci | Po uzavření směny → klíč → přepočítat |
| **Řešit chybu zařízení** | Viz § 7 | Kroky dle typu chyby |
| **Kontaktovat podporu** | — | Dle § 10.5 |

### 11.3 Doporučené kontroly před zahájením směny

| Kontrola | Jak | Co hledat |
|----------|-----|-----------|
| **Stav zařízení** | Záložky zařízení | Všechny stavy `IDLE` |
| **Float** | Pravý sloupec obrazovky uzavření | Žádné oranžové řádky |
| **Akceptor povolen** | Přepínač na kartě | `Enable Acceptor = ON` |
| **E-mail účetního** | Nastavení | Ověřit, že je nastaven |
| **Směna otevřena** | Hlavní obrazovka | Tlačítko „Zavřít pokladnu" je aktivní |

---

# Návod k obsluze hotovostního automatu

Tento dokument popisuje základní funkce a ovládání hotovostního automatu, který je připojen k vašemu pokladnímu systému. Zařízení slouží k automatizovanému příjmu a výplatě hotovosti (bankovek a mincí), čímž zjednodušuje manipulaci s penězi, snižuje riziko chyb a zvyšuje bezpečnost.

![Screenshot_20250525_063026.png](https://manual.kasafik.cz/uploads/images/gallery/2025-05/scaled-1680-/86sQs7QD5g8ohn62-screenshot-20250525-063026.png)

## Spuštění a stav zařízení

- Po spuštění pokladní aplikace systém automaticky vyhledá a naváže spojení se všemi připojenými hotovostními zařízeními (akceptor bankovek, akceptor mincí).
- Aplikace následně zjistí jejich aktuální provozní stav a množství hotovosti v jednotlivých vnitřních zásobnících zařízení.
- V uživatelském rozhraní aplikace (např. na záložkách) můžete vidět stav každého připojeného zařízení zvlášť.

## Manipulace s hotovostí a její určení

Hotovost, se kterou automat pracuje, může mít dvě hlavní určení:

- **Výplata zákazníkovi (Payout):** Toto je hotovost, kterou zařízení vydává přímo zákazníkovi, například při vracení peněz po platbě v hotovosti. Zařízení si pro tyto účely udržuje nezbytnou minimální zásobu hotovosti (tzv. **"Float"**), aby byla zajištěna plynulá výplata.
- **Pokladní zásuvka (CashBox):** Toto je externí zásobník nebo zásuvka, která slouží k bezpečnému uložení hotovosti určené k pozdějšímu výběru a přepočítání (např. na konci směny). Bankovky a mince, které zařízení přijme nad rámec potřebného "Floatu" nebo nad kapacitu svých vnitřních zásobníků, jsou automaticky přesunuty do této Pokladní zásuvky.

## Dostupné akce

V aplikaci máte k dispozici následující akce pro správu hotovostního automatu:

### Tisk / Odeslání stavu hotovosti

- Tato akce vytiskne detailní přehled o aktuálním množství hotovosti v jednotlivých vnitřních zásobnících zařízení a také v Pokladní zásuvce (CashBox).
- Volitelně lze v nastavení aplikace nakonfigurovat automatické zasílání tohoto reportu na zadaný e-mail, což je užitečné například pro účely denních uzávěrek.

### Výběr hotovosti do pokladní zásuvky - Chytá výplata

- Tato akce slouží k přesunu veškeré hotovosti, která je aktuálně uložena ve vnitřních zásobnících hotovostního automatu, do Pokladní zásuvky (CashBox).
- Používá se typicky na konci směny, při potřebě vybrat hotovost ze zařízení pro přepočítání a odvod, nebo pokud je potřeba zcela vyprázdnit vnitřní zásobníky.

### Nastavení zásoby

- Umožňuje uživatelsky konfigurovat potřebnou zásobu hotovosti při převodu do Cashboxu (pokladny).

### Reset zařízení

- Provede restart a novou inicializaci hotovostního zařízení.
- Tato akce může být nutná při řešení drobných chyb nebo po provedení údržby zařízení.
- **Důležité:** Reset zařízení **nevymaže** informace o aktuálním stavu hotovosti v zařízení ani v Pokladní zásuvce.

## Práce s hotovostí a uzavření pokladny

Na hlavní obrazovce otevřete **Pokladna - Uzavřít pokladnu** - zadejte požadovaný stav hotovosti, která má zůstat jako zásoba. Zbytek bude vyplacen do **Pokladní zásuvky (CashBox)**.

- Pravý sloupec ***Výplata*** zobrazuje počet ks mincí/bankovek, které budou vyplaceny.
- Pokud je ***Stav ks*** méně než ***Min ks***, jedná se o podstav a řádek je označen oranžovou barvou - min. zásobu lze nastavit v konfiguraci Zásoby.

V příkladu níže jsme zadali, že chceme zachovat 1400 Kč, systém provedl výpočet a naplánoval vyplacení 2x 200 Kč.

![Screenshot from 2025-09-22 09-23-04.png](https://manual.kasafik.cz/uploads/images/gallery/2025-09/scaled-1680-/whreq9CsOltmlZQG-screenshot-from-2025-09-22-09-23-04.png)