În HoReCa, încasarea este un act distinct — separat de comandă, separat de bonurile de producție. Casierul are propriul ecran (pos-fiscal) cu un mod special: Încasează comandă.
Acest mod îi permite să încarce o Comandă "pending bill" și să emită bonul fiscal către SFS într-un singur pas, păstrând toate detaliile (TVA per cotă, metoda de plată, opțional e-Factura B2B dacă cere clientul).
Casierul deschide pos-fiscal → atinge Încasează comandă. Pe ecran apare lista comenzilor "pending bill" pe POS-ul lui:
┌──────────────────────────────────────────────────┐
│ Comenzi de încasat — POS-sala │
├──────────────────────────────────────────────────┤
│ Masa 3 — Maria — 380 MDL — vechime: 4 min │
│ Masa 7 — Ion — 245 MDL — vechime: 1 min │
│ Masa 12 — Maria — 580 MDL — vechime: 12 min ⚠ │
└──────────────────────────────────────────────────┘Se afișează: masa, chelnerul, total acumulat, vechime de când s-a cerut nota (cu alertă dacă > 10 min).
Casierul atinge masa 3 → coșul se pre-populează cu toate liniile non-anulate, non-gratuite din comanda M3-1942:
1× Pizza Margherita 85.00 MDL
1× Salată Greacă 45.00 MDL
1× Apă plată 0.5L 10.00 MDL
1× Tiramisu 65.00 MDL
2× Cafea espresso 50.00 MDL
1× Mojito 125.00 MDL
─────────────────────────────────────
Total: 380.00 MDL
TVA inclus (8% cota HoReCa): 28.15 MDLLiniile cu gift / on-the-house apar separat ca "ofertă" cu preț 0 — vizibile pe bon dar nu contribuie la total.
Casierul atinge Plătește → alege:
Plus: opțional + e-Factura dacă clientul cere factură pe firmă (introduce IDNO).
Confirmă → sistemul:
Toate aceste acțiuni se întâmplă atomic — fie reușesc toate, fie nu se schimbă nimic. Nu există situația "bonul fiscal s-a emis dar comanda a rămas deschisă".
Bonul fiscal emis primește un identificator E-IDNO-YYYYMMDDhhmmss-NNNNN (E = e-Factura / Emit) la momentul emisiei locale. La sincronizarea cu SFS, numele se actualizează automat cu seria + numărul oficial alocat (ex. E-EBH000134642), iar numele inițial rămâne ca audit secundar vizibil dimmed în lista de invoice-uri (pentru trasabilitatea draft → semnat).
În fundal, sistemul așteaptă confirmarea SFS pentru bonul fiscal. La confirmare:
Dacă SFS dă eroare (rar — probleme de rețea, etc.):
Liniile marcate ca gift (oferite de manager) au comportament special la încasare:
degustare_client, cont SNC 712 (vezi Bonuri de consum).Alternativ, configurabil: liniile gift pot fi filtrate complet din bonul fiscal (nu apar deloc) — preferință de fiecare local.
Sistemul suportă două abordări:
Vezi Raport de tură pentru calculul tip-ului per chelner.
Scenariile de split bill (împărțire total în X părți egale sau selectare de linii pentru cumpărători diferiți) nu sunt astăzi feature default în POS-Fiscal. Sunt ⚙️ activabile la cerere prin customizare — implementarea necesită ajustări în fluxul de emit-fiscal pentru a genera bonuri fiscale separate legal (fiecare cumpărător primește bonul lui) sau unic împărțit pe metode plată.
Cotare individuală după clarificarea variantei preferate.
Dacă a apărut o eroare după emitere:
Întreg fluxul "atinge Încasează comandă → bonul fiscal e imprimat" durează 3-5 secunde în condiții normale. La trafic mare (50-100 încasări / oră), performanța rămâne stabilă.
Fiecare emitere este logată cu casier + timestamp + comanda părinte + total + metodă plată. Inalterabil. La audit / suspectare, vezi exact ce a făcut casierul în orice secundă.
Aplicația POS Fiscal are două stări principale în care poate fi găsită de casier:
Când casierul deschide POS Fiscal direct din taskbar, apare o listă cu toate Comenzile deschise sau pending-bill din toate POS-urile locației, sortate cronologic. Casierul selectează Comanda pe care o încasează. Butonul 📁 Înapoi (continuă fără comandă) intră în modul liber (vânzare adhoc fără Comandă în urmă). Notă: comenzile deja plătite (paid) sau anulate (cancelled) NU apar în picker — au ajuns în stagiu terminal și nu pot fi re-emise pe această cale.
Când Comanda ajunge din HoReCa (prin butonul Open in POS-Fiscal), coșul e deja populat cu liniile Comandei. Casierul poate ajusta cantitatea, aplică o reducere, sau trece direct la încasare.
Notă: captura de mai jos folosește un helper de mascare vizuală (blur) aplicat doar pentru materialele publice de documentație — permite prezentarea layout-ului cu date reale fără expunere valori de bani. Este un tooling intern pentru capturi, NU o feature disponibilă utilizatorului final în POS-Fiscal.




.).* Este butonul cheie — la total ≠ 0 declanșează fluxul de plată (deschide selector metodă plată, apoi emit-fiscal). La total 0 nu face nimic.
Documentul Pre-bill (butonul din Order View HoReCa) e configurabil prin colecția horeca-print din SharedRefs Manager. Fiecare rând/coloană/element vizual e gated de o variabilă separată — permit stripping down la doar informația necesară pentru client (menu = preț cu TVA inclus; net + VAT split apare doar dacă auditul intern îl cere).
Vezi captura Pre-bill din Scenariu 1 pentru referință vizuală a documentului default.
horeca-print — ref-uri disponibile| Ref ID | Tip | Default | Ce controlează |
|---|---|---|---|
pre-bill.short-code.enabled | bool | true | Când true, header-ul afișează short-code (K-1, K-2, ...) în loc de folder-id lung. Reset zilnic per POS. |
pre-bill.short-code.prefix | string | "K-" | Prefix pentru short-code. Ex: "M-" produce M-1, M-2. |
pre-bill.header.text | string | "" | Text custom deasupra numelui companiei (ex: sloganul brand-ului, adresa localului). Gol = nu apare linia. |
pre-bill.header.font-size-px | int (8-48) | 16 | Mărimea fontului pentru header-ul custom. Clamped server-side la interval [8, 48]. |
pre-bill.company.font-size-px | int (8-48) | 14 | Mărimea fontului pentru numele companiei. |
pre-bill.waiter.suffix | string | "" | Suffix după numele chelnerului. Ex: "(operator)" → afișează "Ana (operator)". |
pre-bill.footer.show-folder-id | bool | true | Când true, footer-ul include folder-id-ul complet pentru reconciliere internă. false = doar pentru client-facing. |
pre-bill.column.unit-net-price.enabled | bool | true | Coloana "Preț unit. (fără TVA)". Dezactivează dacă clientul nu are nevoie de detaliul net (menu-ul afișează preț cu TVA). |
pre-bill.column.vat.enabled | bool | true | Coloana "TVA %" per linie. Dezactivează pentru bill minimalist. |
pre-bill.footer.subtotal-net.enabled | bool | true | Rândul "Subtotal fără TVA (MDL)" din footer-ul tabelei. |
pre-bill.footer.vat-total.enabled | bool | true | Rândul "TVA total (MDL)" din footer-ul tabelei. |
Cu toate ref-urile la default, pre-bill-ul are:
Cu unit-net-price.enabled, vat.enabled, subtotal-net.enabled, vat-total.enabled toate setate false:
horeca-print. Dacă lipsește un ref, apasă + New variable, alege collection: horeca-print, ref_id: pre-bill.<varianta>, ctx_type: global (sau pos:<pos-id> pentru per-POS), value: <valoare> (bool true/false, sau string, sau număr).Butonul 🖨 Pre-bill din Order View (sus, lângă butonul Reload) deschide print preview-ul într-un tab nou de browser (poate necesita permisiune pop-up prima dată).


pre-bill.column.unit-net-price.enabled = false + pre-bill.column.vat.enabled = false + footer echivalent.pre-bill.header.text. Numele companiei "SGAPPS LABS SRL" + IDNO vin din maintainer profile (setat la onboarding).→ Roluri HoReCa sau Raport de tură.