Un bon de producție este documentul intern care înregistrează că o stație (kitchen-hot, bar, etc.) se angajează să prepare un anumit produs pentru o comandă specifică. Un bon are propria viață (workflow), independent de comanda din care provine.
Comanda M3-1942 (1 masă) → 5 bonuri de producție:
bon #1 → kitchen-hot: Pizza ×1
bon #2 → kitchen-cold: Salată ×1
bon #3 → bar: Apă ×1, Mojito ×1
bon #4 → dessert: Tiramisu ×1
bon #5 → coffee: Cafea ×2Fiecare bon are propriul lui workflow — pizza poate fi gata în 12 min, salata în 4, cafelele în 2, mojito în 5. Sistemul urmărește toate independent.
emis ──acceptă──▶ în-preparare ──gata──▶ așteaptă-livrare ──livrat──▶ închis
│ │ ▲
│ └──cancel-post-prep──▶ pierdere-înregistrată───────┘
│
└──refuz──▶ chelner-notificat (cu motiv)out-of-stock — s-a terminat un ingredient esențial.
- defect-utilaj — cuptorul nu funcționează.
- volum-prea-mare — nu pot prepara la timp (ora de vârf).Sistemul:
writeoff (vezi Rapoarte de tură). ⚙️ Etichetarea per-linie pe motiv ("anulare client") și mapping-ul pe conturi SNC (ex. 714 — alte cheltuieli operaționale) sunt planificate pentru Faza 2 a jurnalului de tură (v1 curent expune doar totaluri pe subtip).writeoff. ⚙️ Diferențierea pe motiv ("respins client" vs. "anulare client" vs. pierdere generică) și mapping-ul pe conturi SNC nu sunt disponibile în v1 curent — planificate pentru Faza 2 a jurnalului de tură.Sistemul măsoară:
Timestamp-urile fiecărei tranziții rămân vizibile în istoricul comenzii-părinte pentru inspecție manuală (vezi secțiunea Audit mai jos).
⚙️ Agregarea automată a mediilor pe stație / produs în raportul de închidere de tură, plus detectorii derivați (bottleneck pe produs, supra-încărcare pe stație, ETA realist pe fel) NU sunt implementate în v1. Jurnalul de tură curent expune doar totaluri pe subtip (production / sell / writeoff / transfer / supply / transform / ecommerce) + top 10 pierderi după cantitate — detalii în Rapoarte de tură. Extensia cu analitice per-stație este activabilă la cerere (Roadmap).
Pentru bonuri mari (ex. comandă banchet, 12 pizzas) — managerul poate împărți bonul:
Sistemul tracker fiecare sub-bon. La "Gata" toate, bonul-părinte intră în "așteaptă-livrare".
Fiecare produs are un cooking time estimat (configurabil în meniul tău). Sistemul folosește aceste valori pentru:
Fiecare tranziție pe bon (acceptă, start, gata, livrat, refuz, cancel, re-fa) e logată cu user + timestamp. Toate sunt vizibile în istoricul comenzii părinte. Inalterabil.
Identificatorii bonurilor au formatul K-IDNO-YYYYMMDDhhmmss-NNNNN (K = Kitchen) — unici, sortabili cronologic. La fiecare receptie pe ecranul bucătarului se afișează chelnerul și bucătarul care a acceptat-o, sub formă de chip-uri colorate lângă numele bonului.
Pe tableta bucătarului, în lista "🍽️ De pregătit", fiecare linie de fel de mâncare are două butoane:
Ciclurile generate apăsând acest buton rămân atașate de bonul curent + de comanda părinte, vizibile în secțiunea "🔄 Cicluri BOM lansate din acest bon" (jos pe ecran).
Util pentru:
Butonul ⚡ Auto-cycle ingrediente (sus pe ecranul bonului) detectează automat ingredientele insuficiente pentru bonul curent + creează cicluri de producție pentru cele care au rețetă proprie (e.g. mozzarella tăiată e "produsă" din mozzarella blocuri).
1.0 per pizza)per cycle × număr porții comandate)recipe.auto=false (ingredientul nu se poate fabrica intern) etc.
2. Doar după ce confirmi cu "✅ Creează N ciclu(uri)" se lansează efectiv ciclurile.Asta protejează de cazul "1 click → 10 cicluri silențios" pe un bon încărcat — bucătarul vede exact ce se va întâmpla înainte de a confirma.
Pe ecranul fiecărui bon, jos, secțiunea "🔄 Cicluri BOM lansate din acest bon" listează:
automanualColoane: nume ciclu, MPN output, stadiu, data + ora generării, buton 📂 Deschide care navighează direct la cardul ciclului în depozitul de invoice-uri.
Pe ecranul comenzii părinte (Order View) există o secțiune analogă "🔄 Cicluri BOM rulate pentru această comandă" care agregă TOATE ciclurile linkate la comandă — direct sau prin bonurile de producție copil. Așa managerul vede întreg lanțul de pregătire pentru o masă, fără să navigheze între bonuri individuale.
prepare-at: 20:50 — apar pe tableta bucătarului doar la 20:50, nu mai devreme.