📌 Nguyên tắc: Quỹ BP chỉ ghi nhận & tra cứu. Sáng mỗi ngày trả nợ TCT bằng số dư quỹ lúc 24:00 hôm trước (tiền mặt trước, ngân hàng sau) → quỹ về 0. Hạch toán trả nợ toà nhà tại Module 📊 Công nợ.
💵 Tiền mặt
0 ₫
🏦 Ngân hàng
0 ₫
📊 Tổng quỹ
0 ₫
📒 Lịch sử phát sinh quỹ
Ngày
Loại
Nội dung
Thu (+)
Chi (−)
Số dư
📑 Khai báo chi phí phân bổ
📌 Sửa / xoá khai báo chỉ có hiệu lực từ HÔM NAY trở đi — số chi phí đã phân bổ cho những ngày trước và bút toán nợ toà nhà đã ghi được giữ nguyên. Xoá = ngừng phân bổ từ hôm nay (khai báo cũ vẫn xem được ở "đã ngừng").
📋 Khai báo chi phí
Hạng mục
Nhóm
Số tiền/tháng
Phân bổ/ngày
Ghi chú
Duyệt (C1 · C2)
Thao tác
TỔNG:
0 ₫
0 ₫
📅 Lịch sử hạch toán nợ toà nhà
Ngày
Nội dung
Số tiền
🔗 Các hạng mục liên quan
Phần mềm khác của TCT · tài liệu · lĩnh vực liên quan — bấm ô để mở
🌐 Menu khách quét QR — song ngữ Việt · English
Tên tiếng Anh của món: nhập ở ô 🌐 Tên tiếng Anh khi sửa món — để trống thì máy tự dịch (VD "Phở bò" → "Beef pho").
🍽️ Menu bán: Bật/Tắt & Hẹn giờ theo nhóm
Tắt nhóm nào thì nhóm đó biến mất khỏi màn Order và trang QR của khách, không bán được món trong đó. Đặt khung giờ để tự bật/tắt theo giờ (để trống = bán cả ngày). Cài đặt đồng bộ mọi máy.
Mặc định TẮT = vẫn bán khi hết nguyên liệu (kho có thể âm — nhập bù sau, Nhập-Xuất-Tồn báo "cần nhập bù"). Món thực sự hết thì nhân viên tắt ở 🔛 Bật/tắt bán hoặc bếp bấm 🚫 Hết món.
📱 QR Code: Khách tự order & Feedback
Tạo mã QR cho từng bàn để khách tự scan và gọi món. Tạo mã QR feedback để khách đánh giá sau bữa ăn.
🍽️
QR Order theo bàn
In mã QR đặt trên mỗi bàn, khách scan để gọi món trực tiếp
💬
QR Feedback
Khách scan sau bữa ăn để đánh giá, phân tích cảm xúc tự động
📺 Màn hình khách (TV ở quầy)
Màn hình hiện bàn nào đang chuẩn bị và bàn nào / khách nào sắp ra món, mời nhận, tự cập nhật, có chuông khi món xong. Cách dùng đơn giản nhất: bấm 📺 Link màn hình TV, mở đường dẫn đó trên máy nối TV — không cần đăng nhập. Máy đã đăng nhập thì bấm nút 📺 TV trên màn Bếp/Quầy.
🏦 Tài khoản nhận chuyển khoản (sinh mã QR tự động)
Khai một lần. Khi thu tiền chọn "Ngân hàng", phần mềm sinh mã QR đã điền sẵn số tiền và nội dung (VD "Ban 5 185k") — khách quét là chuyển, không gõ tay, không sai số.
Viết tắt tên ngân hàng (Vietcombank = VCB, Techcombank = TCB, MB Bank = MB…)
🤖 Tích hợp AI (DeepSeek)
Kết nối AI để kiểm tra tính chính xác dữ liệu, hỏi đáp thông minh tại các Module: Sàn quán, Tiền (DT-LN · Quỹ · Chi phí), Công nợ.
💬 Feedback khách hàng
💬 Feedback Khách hàng
📊 Phản hồi gần đây
Thời gian
Bàn
Cảm xúc
Nội dung
🍽️ Món (👍/👎)
Phân tích
💾 Sao lưu & Phục hồi dữ liệu
📥
Sao lưu dữ liệu
Xuất toàn bộ dữ liệu ra file JSON để lưu trữ an toàn
📤
Phục hồi dữ liệu
Nhập file sao lưu (.json) đã xuất trước đó để khôi phục
📋
Chốt kỳ — Tạo file nhẹ
Giữ khai báo (SP, KH, chi phí), kết chuyển tồn kho & công nợ thành số đầu kỳ, xoá dữ liệu phát sinh
🍚
Khởi tạo thực đơn Cơm VP
Xoá toàn bộ sản phẩm cũ + số liệu phát sinh (đơn, công nợ, quỹ, kho, sổ quỹ...). GIỮ khách hàng, chi phí, nhân sự, tài khoản, cấu hình. Tạo 10 món Cơm VP theo bảng giá chuẩn.
🔥 Xoá dữ liệu Firebase Server
Nếu Reset không sạch, bấm nút này để xoá trực tiếp trên Firebase server.
💡 Lưu ý: Nên sao lưu dữ liệu cuối mỗi ngày. File sao lưu chứa toàn bộ thực đơn, đơn hàng, công nợ, kho hàng, nhân sự... Phục hồi sẽ ghi đè toàn bộ dữ liệu hiện tại.
🗜️ Dọn dữ liệu cũ — giữ tổng hợp & số dư
Chi tiết (đơn bán, phiếu nhập, đề xuất, thu/trả nợ đã tất toán, sổ quỹ, nộp quỹ, bù trừ, chốt ngày, đặt trước, feedback) được giữ ít nhất 60 ngày; mỗi ngày phần mềm tự dọn trọn tháng đã quá hạn và chỉ giữ bảng tổng hợp tháng (doanh thu, giá vốn, chi phí, lợi nhuận, top món) cùng số dư kết chuyển: tồn kho (tồn đầu kỳ), công nợ còn lại, quỹ (dòng kết chuyển trong sổ quỹ). Số liệu tháng cũ vẫn xem được ở DT-LN theo tháng.
ngày (mặc định 60 — dọn trọn tháng, giữ tổng hợp & kết chuyển tồn kho · công nợ · quỹ)
💾 Dung lượng & hạn mức miễn phí Firebase
🛡️ Kiểm tra an toàn đồng bộ — từng Module
Soi từng module xem dữ liệu đã lên server chưa. Chờ đẩy = 0 nghĩa là mọi thay đổi đã đồng bộ an toàn. Nếu còn treo, bấm Đẩy ngay.
🔗 Link công khai & Firebase ADMIN
🔥 Cấu hình Firebase Realtime Database
Kết nối Firebase để đồng bộ dữ liệu giữa nhiều máy. 🔄 Auto-sync realtime + mỗi 30 giây. Trạng thái: 🔴 Chưa kết nối
Hướng dẫn: Vào Firebase Console → Tạo project → Realtime Database → Tạo database → Lấy config từ Project Settings.
🔐 Bảo mật + Cho khách quét QR (QUAN TRỌNG): Vào Realtime Database → Rules, dán ĐÚNG bộ luật sau rồi Publish. Bộ luật này: máy nhân viên (đăng nhập) toàn quyền; khách quét QR (điện thoại bất kỳ chỉ cần internet) chỉ được xem thực đơn + gửi đơn / feedback; mọi dữ liệu tài chính khác đều khoá kín. KHÔNG để test mode (".read":true,".write":true) — ai có link cũng xoá sạch được.
{
"rules": {
"ansang_rec": {
".read": "auth != null",
".write": "auth != null",
"col": {
"products": { ".read": true, ".indexOn": ["_rev"] }, // khách XEM thực đơn (không sửa được); chỉ mục _rev → chỉ tải món vừa đổi
"orders": { ".read": true, ".write": true, ".indexOn": ["status"], // khách GỬI đơn; chỉ mục status → chỉ tải đơn đang chờ
"$id": { ".validate": "newData.hasChild('_rev') || newData.hasChild('_del')" } },
"feedbacks": { ".read": true, ".write": true, // khách GỬI feedback + chấm từng món
"$id": { ".validate": "newData.hasChild('_rev') || newData.hasChild('_del')" } },
"staffCalls": { ".read": true, ".write": true, // khách GỌI NHÂN VIÊN + xem "đang tới"
"$id": { ".validate": "newData.hasChild('_rev') || newData.hasChild('_del')" } },
"customers": { ".read": true }, // cổng đặt cơm đơn vị: nhận ra mã đơn vị + PIN
"mealKH": { ".read": true, ".write": true, // đơn vị ĐIỀN cột Đặt / Nhận thực tế / tích xác nhận
"$id": { ".validate": "newData.hasChild('_rev') || newData.hasChild('_del')" } },
"mealNH": { ".read": true }, // đơn vị XEM cột Giao / tích nhà hàng
"completedOrders": { "$id": { ".read": "$id.beginsWith('co_qr_')" } } // khách xem đơn QR của MÌNH sau khi thanh toán (chỉ đơn quét QR)
},
"meta": { "appver": { ".read": true } }, // mọi máy biết "bản tối thiểu" → bản cũ tự khoá, nhắc tải lại
"single": {
"menuConfig": { ".read": true }, // khách: nhóm món đang mở bán / khung giờ
"bizConfig": { ".read": true } // khách: tài khoản chuyển khoản, giờ chốt đặt cơm, mã món hết nguyên liệu
}
},
"ansang_img": { ".read": true, ".write": "auth != null", // ẢNH MÓN tách riêng (09/10/2026) — khách xem trên trang QR
"$pid": { ".validate": "!newData.exists() || (newData.hasChildren(['v', 'd']) && newData.child('d').isString() && newData.child('d').val().length < 60000)" } },
"$other": { ".read": false, ".write": false }
}
}
💡 Khách quét QR chỉ cần internet — KHÔNG cần cài app/đăng nhập (link QR đã kèm địa chỉ Firebase qua tham số ?f=). Mỗi cửa hàng dùng 1 project Firebase riêng. Dữ liệu lớn: dùng nút 📋 Chốt kỳ định kỳ để giữ database nhẹ. ⚠️ Nếu muốn KÍN tuyệt đối (khách cũng phải xác thực) thì để cả 3 nhánh trên về auth!=null — nhưng khi đó QR chỉ chạy trên thiết bị đã đăng nhập.
👤 Tài khoản & phân quyền
🔐 Tài khoản & quyền đồng bộ mọi máy; mật khẩu chỉ lưu dạng mã hoá. Mỗi nhân viên chỉ thấy các module được tích — đăng nhập là mở trang đầu tiên được cấp.
Admin sửa quyền ở máy này thì máy nhân viên đổi ngay (không cần đăng nhập lại). 🗑️ Xoá = người đó bị đăng xuất ở mọi máy.
Tên đăng nhập
Họ tên
Vai trò
Module được dùng
Trạng thái
Sửa lần cuối
Thao tác
Thêm mới
5
Xác nhận?
👨🍳
BẾP
👨🍳
Chưa có đơn hàng
📺 THEO DÕI MÓN — HTP RESTAURANT
🍳 ĐANG CHUẨN BỊ
🔔 MỜI NHẬN MÓN / SẮP RA BÀN
🤖AI Trợ lý (DeepSeek)
Xin chào! Tôi là AI trợ lý. Hãy hỏi tôi về dữ liệu kinh doanh, kiểm tra tính chính xác, hoặc bất kỳ câu hỏi nào!
🍽️ HTP RESTAURANT
Chạm món → bấm GỬI ĐƠN
Bàn ?
🏷 Khách Cơm VP có MÃ RIÊNG?
Có mã → đơn ghi công nợ cho đơn vị của bạn. Không có mã → thanh toán ngay tại quầy.