+ @* ═══ HEADER / TIÊU ĐỀ ═══ *@
+
+ NavigateTo("restaurant"))">
+
+
+ Hành trình nhà hàng
+
+ Khách: Nguyễn Văn A · 4 người · Bàn 7
+
+
+ @* ═══ STEP TRACKER / THANH BƯỚC ═══ *@
+
+
+ @for (int i = 0; i < _steps.Count; i++)
+ {
+ var step = _steps[i];
+ var stepIdx = i;
+ var isActive = stepIdx == _currentStep;
+ var isCompleted = stepIdx < _currentStep;
+ var bgColor = isCompleted ? "var(--pos-success)" : isActive ? "var(--pos-orange-primary)" : "var(--pos-bg-interactive)";
+ var fgColor = isCompleted || isActive ? "#FFF" : "var(--pos-text-tertiary)";
+
+ @* EN: Step circle / VI: Vòng tròn bước *@
+
+
_currentStep = stepIdx">
+ @if (isCompleted)
+ {
+
+ }
+ else
+ {
+
+ }
+
+
+ @step.Label
+
+
+
+ @* EN: Connector line / VI: Đường nối *@
+ @if (stepIdx < _steps.Count - 1)
+ {
+
+ }
+ }
+
+
+
+ @* ═══ GUEST INFO CARD / THẺ KHÁCH ═══ *@
+
+
+
+ A
+
+
+
Nguyễn Văn A
+
4 người · Bàn 7 · Khu VIP
+
+
+
+
+
+ @* ═══ STEP CONTENT / NỘI DUNG BƯỚC ═══ *@
+
+ @switch (_currentStep)
+ {
+ case 0:
+ @* ═══ ĐÓN KHÁCH / WELCOME STEP ═══ *@
+
+
+ Đón khách
+
+
+
+ Tên khách
+ Nguyễn Văn A
+
+
+ Số người
+ 4 người
+
+
+ Giờ đến
+ 18:30
+
+
+ Ghi chú
+ Sinh nhật
+
+
+
+ break;
+
+ case 1:
+ @* ═══ CHỌN BÀN / TABLE SELECT STEP ═══ *@
+
+
+ Chọn bàn
+
+
+ @foreach (var table in _availableTables)
+ {
+ var isSelected = table.Name == "Bàn 7";
+
+
@table.Name
+
@table.Seats chỗ · @table.Section
+
+ }
+
+
+ break;
+
+ case 2:
+ @* ═══ ĐẶT MÓN / ORDER STEP ═══ *@
+
+
+ Đặt món
+
+ @foreach (var item in _orderItems)
+ {
+
+
+
@item.Name
+
x@item.Qty
+
+
@FormatPrice(item.Price * item.Qty)
+
+ }
+
+ Tổng
+ @FormatPrice(_orderItems.Sum(i => i.Price * i.Qty))
+
+
+ break;
+
+ case 3:
+ @* ═══ BẾP / KITCHEN STEP ═══ *@
+
+
+ Bếp đang chuẩn bị
+
+ @foreach (var item in _orderItems)
+ {
+
+
+
+ @(item.Status == "done" ? "Xong" : item.Status == "cooking" ? "Đang nấu" : "Chờ")
+
+
+ }
+
+ break;
+
+ case 4:
+ @* ═══ TIẾP TỤC / CONTINUE STEP ═══ *@
+
+
+ Phục vụ bàn
+
+
+
+ Trạng thái
+ Đã phục vụ xong
+
+
+ Gọi thêm?
+ Có thể gọi thêm món
+
+
+ Thời gian ngồi
+ 45 phút
+
+
+
+ break;
+
+ case 5:
+ @* ═══ THANH TOÁN / PAYMENT STEP ═══ *@
+
+
+ Thanh toán
+
+
+ @foreach (var item in _orderItems)
+ {
+
+ @item.Qty x @item.Name
+ @FormatPrice(item.Price * item.Qty)
+
+ }
+
+
+ Tạm tính
+ @FormatPrice(_orderItems.Sum(i => i.Price * i.Qty))
+
+
+ VAT (8%)
+ @FormatPrice(_orderItems.Sum(i => i.Price * i.Qty) * 0.08m)
+
+
+ Tổng thanh toán
+ @FormatPrice(_orderItems.Sum(i => i.Price * i.Qty) * 1.08m)
+
+
+
+
+ break;
+
+ case 6:
+ @* ═══ HOÀN TẤT / COMPLETE STEP ═══ *@
+
+
+
+
+
Hoàn tất!
+
+ Cảm ơn quý khách Nguyễn Văn A
+
+
+ Bàn 7 · 4 người · Tổng: @FormatPrice(_orderItems.Sum(i => i.Price * i.Qty) * 1.08m)
+
+
+
+ In hóa đơn
+
+
+ Đánh giá
+
+
+
+ break;
+ }
+
+
+ @* ═══ FOOTER ACTIONS / NÚT HÀNH ĐỘNG ═══ *@
+
+ @if (_currentStep > 0)
+ {
+ _currentStep--">
+ Quay lại
+
+ }
+
+ @if (_currentStep < _steps.Count - 1)
+ {
+ _currentStep++">
+ Tiếp
+
+ }
+ else
+ {
+ NavigateTo("restaurant"))">
+ Về trang chính
+
+ }
+
+
+
+@code {
+ private int _currentStep = 0;
+
+ // EN: Journey steps / VI: Các bước hành trình
+ private readonly List