📌 Scope: acest document acoperă ciclul de viață al Comenzii (mesei) — deschidere, valuri, cere-nota, plată, anulare, note pe bon. Ciclul de viață la nivel de tură (raportul de închidere zilnic pe POS, permisiuni HORECA_REPORT__SHIFT_CLOSE, forma jurnalului snapshot, rapoartele agregate) este documentat separat în Rapoarte tură.În HoReCa, o comandă la o masă trăiește mai mult timp — clientul comandă în mai multe valuri, peste 30-90 de minute. Sistemul nostru modelează acest comportament cu Comanda — o entitate care:
deschisă ──cere-nota──▶ așteaptă-încasare ──încasare──▶ plătită ──confirmare-SFS──▶ închisă
│ │
│ └──manager-deblocheaza──▶ deschisă (cu motiv)
│
└──anulare──▶ anulată💡 Important: rândurile sunt draft până la "Trimite". Chelnerul poate corecta orice până atunci. După Trimite, rândurile devin bonuri de producție și nu mai pot fi modificate (doar cancel cu motiv).
Fiecare linie din Order View are 4 butoane de acțiune contextuale (vizibile doar când Comanda e open și SharedRefs feature flags sunt on):


Câmpul afișează cantitatea curentă (1 buc), acceptă noua valoare, iar TOTAL NOU se recalculează live cu TVA inclus.

Cele 2 câmpuri (net / gross) sunt interconectate — modifici oricare, celălalt se recalculează pe baza ratei TVA a produsului. Câmpul gross (verde) e cel afișat clientului.

Notă: ștergerea unei linii deja trimise la bucătărie revocă linia din bon doar dacă bonul e la stagiu wip sau awaiting-mpns. La stagii superioare (accepted/preparing/ready), sistemul rejectează cu mesaj actionable — trebuie folosită procedura de Cancel bon (manager, cu Loss).
19:42 Masa 3 deschisă
19:44 Val 1: Pizza + Salată + Apă → 3 bonuri (kitchen-hot, kitchen-cold, bar)
20:02 Val 2: Tiramisu + 2 cafele → 2 bonuri (dessert, bar)
20:17 Val 3: Mojito → 1 bon (bar)
20:35 Cere nota → check că toate cele 6 bonuri sunt "delivered"
20:36 Plată: card 380 MDL → bon fiscal unic pentru toată comandaChelnerul poate adăuga două câmpuri de text personalizate pe o comandă deschisă:
Fiecare câmp acceptă până la 1024 caractere. Editabile doar cât comanda e în starea deschisă sau așteaptă-încasare — odată plătită, notele se blochează pentru a păstra trasabilitatea audit a bonului printat.
Notele propagă automat:
Când o comandă se anulează (în orice stare valabilă), sistemul afișează un dialog cu:
client_plecat, eroare_intoducere, comanda_dubla, client_nemultumit). Default selectat e motivul implicit al POS-ului (configurat de manager).Toate anulările intră în audit cu motivul + nota înregistrate — vizibile pe fiecare bon de pierdere generat și în istoricul acțiunilor Comenzii. Agregarea pe motiv (top-uri săptămânale, % pe categorie) nu este furnizată de raportul de închidere a turei actual — jurnalul rulează la nivel de subtip (writeoff total) + top-10 MPN-uri pierdute. Analiza per-motiv rămâne o operație manuală pe log-ul de audit (⚙️ activabilă la cerere).
Pe ecranul comenzii, secțiunea "🔄 Cicluri BOM rulate pentru această comandă" centralizează toate ciclurile de producție (auto sau manuale) generate pentru bonurile copil ale comenzii. Util pentru manager să vadă efortul total din spatele unei mese:
Linie cu linie: nume ciclu, MPN produs, stadiu, ora generării, buton de navigare la cardul ciclului în depozit.
Vezi într-un ecran:
Cu un click pe orice masă → vezi comanda activă, lista chelnerului, total acumulat.
Două chelnerițe pot lucra pe aceeași comandă (ex.: una preia comanda dimineața, cealaltă servește seara — schimbarea schimbului). Sistemul logează cine a deschis Comanda / cine a adăugat fiecare rând. Împărțirea pe chelner (număr comenzi, gross total, propunere bacșiș aplicată în FE cu un % ales de manager) se generează separat, pe cerere, din cardul "Bacșiș pe chelner" din tab-ul Rapoarte al webapp-ului HoReCa — nu face parte automat din jurnalul de închidere a turei (vezi Rapoarte tură). Bacșișul nu se persistă nicăieri ca sumă înregistrată — % este parametru FE, calculat la cerere pe totalurile brute.
Fiecare acțiune pe Comandă (deschidere, adăugare rând, anulare, cere nota, deblocare, încasare) este logată cu timestamp precizie de secundă, user, context. Istoricul nu se poate edita / șterge.
Identificatorul comenzii are formatul H-IDNO-YYYYMMDDhhmmss-NNNNN (H = HoReCa) — unic, sortabil cronologic, vizibil în toate listele și rapoartele.
Pe ecranul comenzii deschise, chelnerul poate naviga direct la oricare dintre bonurile copil:
Reciproc, pe ecranul oricărui bon copil (de producție sau de pierdere), butonul 📂 Deschide comanda părinte navighează înapoi la Comanda — util pentru bucătar / casier când vor să vadă tot contextul.