Doanh thu & Chi phí
6 tháng gần nhất · Triệu đồng
Thu
Chi
Lợi nhuận
Cơ cấu chi phí
Phân bổ theo danh mục
Hợp đồng gần nhất
5 mới nhất
| Số HĐ | Khách hàng | Giá trị | Trạng thái |
|---|
Tình trạng xe
Cập nhật real-time
🏆 Top Tài xế
Theo tháng đang xem
Danh sách Hợp đồng
0 hợp đồng
| Số HĐ | Khách hàng | Tuyến đường | Ngày | Xe/Tài xế | Giá trị | Đã thu | Trạng thái |
|---|
Danh sách Khách hàng
0 khách hàng
| Mã KH | Khách hàng | Loại | Điện thoại | Tổng HĐ | Doanh số |
|---|
Thu Chi theo tháng
6 tháng gần nhất
Thu
Chi
Cơ cấu chi phí
Tổng chi
0
Tổng chi
Lịch sử giao dịch
0 giao dịch
| Ngày | Loại | Mô tả | HĐ | Xe/Tài xế | Hình thức | Số tiền |
|---|
Xu hướng Doanh thu & Chi phí
6 tháng gần nhất
Doanh thu
Chi phí
Lợi nhuận
Cơ cấu chi phí
Phân bổ danh mục
0
Tổng chi
Hiệu suất từng xe
Tháng 4/2026
| Xe | Doanh thu | Chi phí | Lợi nhuận | Tỷ suất |
|---|
Top Tài xế
✅ Duyệt báo cáo tài xế
Đang tải...
💡 Báo cáo đổ dầu khi duyệt sẽ tự động tạo phiếu chi nhiên liệu tương ứng.
🔐 Tài khoản tài xế
Đăng nhập bằng Số điện thoại + Mật khẩu
Đang tải danh sách tài xế...
⚙️ Thông tin công ty
🗄️ Cấu trúc Database
Chạy SQL này trên Supabase để kích hoạt tính năng lịch sử bảo dưỡng
Vào Supabase → SQL Editor và chạy lệnh sau:
-- Bảng lịch sử bảo dưỡng xe CREATE TABLE IF NOT EXISTS bao_duong_lich_su ( id uuid DEFAULT gen_random_uuid() PRIMARY KEY, bien_so_xe text NOT NULL, loai text NOT NULL, -- dang_kiem | bao_hiem | thay_nhot | sua_chua | khac ngay date NOT NULL, km integer, ghi_chu text, created_at timestamptz DEFAULT now() ); -- Thêm cột km_thay_nhot vào bảng xe (nếu chưa có) ALTER TABLE xe ADD COLUMN IF NOT EXISTS km_thay_nhot integer; -- Thêm cột mật khẩu đăng nhập cho tài xế (nếu chưa có) ALTER TABLE tai_xe ADD COLUMN IF NOT EXISTS mat_khau text; -- Định mức tiêu hao & giá dầu tham chiếu cho từng xe (nếu chưa có) ALTER TABLE xe ADD COLUMN IF NOT EXISTS dinh_muc_l100km numeric(5,1); ALTER TABLE xe ADD COLUMN IF NOT EXISTS gia_dau_tk integer; -- Trạng thái duyệt báo cáo (cho_duyet | da_duyet | tu_choi) -- Mặc định 'da_duyet' để không ảnh hưởng dữ liệu cũ ALTER TABLE bao_cao ADD COLUMN IF NOT EXISTS trang_thai text DEFAULT 'da_duyet'; -- Báo cáo mới từ tài xế sẽ được gửi với trang_thai = 'cho_duyet' -- Index để query nhanh theo biển số CREATE INDEX IF NOT EXISTS idx_bd_bien_so ON bao_duong_lich_su(bien_so_xe); CREATE INDEX IF NOT EXISTS idx_bd_loai ON bao_duong_lich_su(loai); -- ════════════════════════════════════════ -- Bảng lịch sử giá dầu toàn hệ thống -- ════════════════════════════════════════ CREATE TABLE IF NOT EXISTS gia_dau ( id uuid DEFAULT gen_random_uuid() PRIMARY KEY, gia integer NOT NULL, -- giá đ/lít (VD: 22000) ngay_ap_dung date NOT NULL, -- ngày bắt đầu áp dụng ghi_chu text, -- VD: "Xăng RON 95-III TP.HCM" created_at timestamptz DEFAULT now() ); CREATE INDEX IF NOT EXISTS idx_gia_dau_ngay ON gia_dau(ngay_ap_dung DESC); -- NOTE: xe.gia_dau_tk vẫn được dùng như giá override riêng từng xe. -- Nếu không set, hệ thống tự lấy giá mới nhất từ bảng gia_dau.