Phương Án Tối Ưu Base & Module Hợp Đồng Dịch Vụ

Tín Nghĩa - Quản lý xe máy & Dịch vụ sửa chữa, tân trang
Ngày phân tích: 11/05/2026 • 33 bảng • ~730 fields
Version 2.0 - Bổ sung: Mã xe duy nhất, Công nợ KH/NCC, Ngân hàng TPBank, Báo cáo CRM

1. Tổng Quan

33
Bảng
~730
Fields
15+
Relationships
v2.0
Phiên bản

2. Vấn Đề Hiện Tại

#Vấn đềMô tảMức độ
11 xe nhiều mã (Kho xe phình to)Xe mua đi bán lại tạo ra nhiều record: mua anh A→bán anh B (mã 1), mua lại anh B→bán anh C (mã 2), mua lại anh C (mã 3)Cao
2Công nợ theo xe không phù hợpChốt với Thượng là quản lý công nợ theo xe, nhưng thực tế nên theo khách hàng và nhà cung cấpCao
3Chuyển ngân hàng MB → TPBankChưa có auto tạo phiếu thu/chi, thiếu công nợ mảng dịch vụ, cần thêm cột số dư hiện tạiCao
4Thiếu báo cáo CRMChưa có: doanh thu/lợi nhuận ngày/tháng, theo mảng, top thợ, tồn kho + số ngày tồnTB
5HĐ dịch vụ chưa có module inLuồng: KH → HĐ DV → Chi tiết → In → QL công việc chưa được xây dựngCao

3. Module HĐ Dịch Vụ

3.1 Luồng HĐ dịch vụ

👤 Khách hàng
📄 HĐ Dịch Vụ
📋 Chi tiết HĐ DV
🖨️ In HĐ DV
🔧 QL Công Việc
A

Bảng HĐ Dịch Vụ (nâng cấp "5. HĐ DV")

FieldTypeMô tả
Mã HĐ DVAuto NumberDV-0001
Khách hàngLink→ 1. QL khách hàng
Xe dịch vụLink→ QL kho xe / Xe dịch vụ
Loại dịch vụSelectSửa chữa, Tân trang, Bảo dưỡng, Phụ kiện
Trạng tháiSelectMới tạo, Đã duyệt, Đang thi công, Hoàn thành, Đã thanh toán
Ngày tạoDateTimeAuto fill
Ngày dự kiến xongDateTime
Ngày xong thực tếDateTime
Mô tả yêu cầuText (long)KH muốn làm gì
Tổng tiềnFormulaSum từ Chi tiết HĐ DV
Tạm ứngNumber
Còn lạiFormulaTổng - Tạm ứng
Thời gian BHNumberĐơn vị: ngày
Ngày hết BHFormulaNgày xong + Thời gian BH
Nhân viên phụ tráchUser
Thợ chínhUser
Chi tiết HĐ DVLink→ 5.1 Chi tiết HĐ DV (1-nhiều)
B

Bảng Chi Tiết HĐ DV (nâng cấp "5.1. Chi tiết")

FieldTypeMô tả
Mã chi tiếtAuto Number
Hóa đơn DVLink→ HĐ dịch vụ
LoạiSelectCông sức, Phụ tùng
Tên DV / Phụ tùngText
Mã phụ tùngLink→ QL kho phụ tùng
ĐVTTextCái, bộ, giờ công
Số lượngNumber
Đơn giáNumber
Thành tiềnFormulaSL × Đơn giá
Thợ thực hiệnUser
Đã in HĐCheckbox
Đã tạo CVCheckbox

4. Schema Đề Xuất

🔗 Luồng dữ liệu tổng thể

[1. QL khách hàng] → chọn KH → [5. HĐ DV]
[5. HĐ DV] → thêm line items → [5.1. Chi tiết HĐ DV]
  ├─ 🖨️ [Module In HĐ DV] → Template, PDF, gửi KH
  └─ 🔧 [5.1. QL công việc] → Auto tạo tasks từ line items
      → [5.1.1. Checklist công việc]
      → [6. QL công nợ] → Thu tiền theo tiến độ → [Bảo hành]

[Mã xe duy nhất] ← Biển số + Số khung (kiểm tra trùng khi nhập xe mới)
[Công nợ theo KH/NCC] ← Tách khỏi xe, theo dõi theo đối tượng
[TPBank sync] ← Giao dịch → Auto phiếu thu/chi → Số dư hiện tại
[Báo cáo CRM] ← 6 báo cáo: doanh thu, lợi nhuận, theo mảng, top thợ, tồn kho

5. Mã Xe Duy Nhất

🏍️

Vấn đề: 1 xe nhiều mã

Hiện tại mỗi lần mua xe tạo ra 1 mã mới. Ví dụ: Xe 66AA-679.23 mua của anh A → bán anh B (mã 1), mua lại anh B → bán anh C (mã 2), mua lại anh C (mã 3). Cùng 1 chiếc xe nhưng 3 mã → kho xe phình to, khó tracking lịch sử.

Giải pháp: Mã xe duy nhất

FieldTypeMô tả
Mã xe duy nhấtFormulaBiển số + Số khung → Hash → Mã duy nhất
Biển sốTextVD: 66AA-679.23
Số khungTextVD: RLHJF4605DY095700
Kiểm tra trùngFormulaIF(COUNTIF(...)>1, "⚠️ Trùng", "✅ Mới")
Lần giao dịchNumber1, 2, 3... (mỗi lần mua/bán = 1 lần)
Chủ xe hiện tạiLink→ Khách hàng (cập nhật mỗi lần bán)
Lịch sử giao dịchLink→ Bảng Lịch sử giao dịch xe (1-nhiều)
Công thức mã xe:
Mã xe duy nhất = SUBSTITUTE(Biển số, "-", "") + "_" + RIGHT(Số khung, 8)
VD: "66AA67923_DY095700"
✅ Quy trình nhập xe mới:
  1. Nhập biển số + số khung → System tự kiểm tra trùng
  2. Nếu trùng → Gán vào record cũ, tăng "Lần giao dịch" + 1, cập nhật chủ xe mới
  3. Nếu mới → Tạo record mới, Lần giao dịch = 1
  4. Lưu lịch sử: Ngày mua, giá mua, người bán, ngày bán, giá bán, người mua
📊

Bảng Lịch Sử Giao Dịch Xe (MỚI)

FieldTypeMô tả
Mã giao dịchAuto Number
XeLink→ Mã xe duy nhất
Loại giao dịchSelectMua vào, Bán ra, Thu mua, Ký gửi
Ngày giao dịchDateTime
Người bánLink→ Khách hàng / Đối tác
Người muaLink→ Khách hàng / Đối tác
Giá giao dịchNumber
Người phụ tráchUserSale phụ trách
Ghi chúText

6. Công Nợ Theo KH / NCC

💰

Chuyển từ công nợ theo xe → theo khách hàng & nhà cung cấp

❌ Hiện tại (theo xe)

  • Mỗi xe có 1 record công nợ
  • 1 xe bán nhiều lần → nhiều record công nợ
  • Khó tổng hợp công nợ theo khách hàng
  • Không theo dõi được công nợ nhà cung cấp

✅ Đề xuất (theo KH/NCC)

  • 1 khách hàng = 1 record công nợ
  • 1 nhà cung cấp = 1 record công nợ
  • Tổng hợp dễ dàng, báo cáo rõ ràng
  • Theo dõi được cả 2 chiều: phải thu & phải trả
A

Bảng Công Nợ Khách Hàng

FieldTypeMô tả
Khách hàngLink→ 1. QL khách hàng (duy nhất)
Tổng phải thuFormulaSum từ các HĐ chưa thanh toán
Đã thuFormulaSum từ phiếu thu
Còn nợFormulaTổng phải thu - Đã thu
Số HĐ chưa thuFormulaCount HĐ còn nợ
Công nợ dịch vụFormulaSum từ HĐ DV chưa thu
Công nợ mua xeFormulaSum từ HĐ mua bán chưa thu
Ngày nợ cũ nhấtFormulaMIN ngày tạo HĐ còn nợ
Trạng tháiSelectTốt, Cảnh báo, Nợ xấu
B

Bảng Công Nợ Nhà Cung Cấp

FieldTypeMô tả
Nhà cung cấpLink→ QL thông tin đối tác (duy nhất)
Tổng phải trảFormulaSum từ đơn mua chưa thanh toán
Đã trảFormulaSum từ phiếu chi
Còn nợFormulaTổng phải trả - Đã trả
Số đơn chưa trảFormulaCount đơn còn nợ
Công nợ phụ tùngFormulaSum từ đơn mua phụ tùng
Công nợ xe thu muaFormulaSum từ xe mua chưa trả tiền
Ngày nợ cũ nhấtFormulaMIN ngày tạo đơn còn nợ
Trạng tháiSelectTốt, Cảnh báo, Quá hạn
C

Phiếu Thu / Phiếu Chi (MỚI - Auto từ giao dịch ngân hàng)

FieldTypeMô tả
Mã phiếuAuto NumberPT-0001 / PC-0001
LoạiSelectThu / Chi
NgàyDateTimeAuto từ giao dịch ngân hàng
Số tiềnNumberAuto từ sao kê
Đối tượngLink→ KH hoặc NCC
HĐ liên quanLink→ HĐ mua bán hoặc HĐ DV
Nội dungTextAuto từ mô tả giao dịch
Ngân hàngSelectTPBank
Mã giao dịch NHTextRef ID từ sao kê

7. Đồng Bộ Giao Dịch Ngân Hàng

🏦

Chuyển MB → TPBank + Auto Phiếu thu/chi + Số dư

❌ Trước
MB Bank, không auto phiếu, không có số dư
✅ Sau
TPBank, auto phiếu thu/chi, có số dư hiện tại
FieldTypeMô tả
Ngân hàngSelectTPBank (mặc định)
Số tài khoảnTextTK TPBank của shop
Số dư hiện tạiNumberNEW - Auto sync từ TPBank API
Ngày sync cuốiDateTimeThời điểm sync sao kê gần nhất
🔄 Quy trình auto đồng bộ:
  1. TPBank API → Lấy sao kê mới (hàng ngày hoặc real-time)
  2. Parse giao dịch → Xác định loại (Thu/Chi) từ nội dung
  3. Auto tạo Phiếu Thu nếu giao dịch có tiền vào
  4. Auto tạo Phiếu Chi nếu giao dịch có tiền ra
  5. Match với HĐ liên quan (dựa trên số tiền, nội dung, KH)
  6. Cập nhật số dư hiện tại
  7. Cập nhật công nợ KH/NCC tự động

8. Báo Cáo CRM

1. Doanh thu theo ngày / tháng
Tổng doanh thu từ tất cả nguồn: bán xe, dịch vụ, phụ tùng
= SUM(HĐ đã thanh toán) theo ngày/tháng
2. Lợi nhuận theo ngày / tháng
Doanh thu - Giá vốn - Chi phí vận hành
= Doanh thu - (Giá mua xe + Phụ tùng + Nhân công)
3. Doanh thu theo mảng
Tách riêng: Bán xe / Sửa chữa / Sơn / Phụ tùng
= SUMIF(HĐ, Loại = "Bán xe") / "Dịch vụ" / "Phụ tùng"
4. Top thợ theo doanh thu
Xếp hạng thợ theo tổng doanh thu mang về
= SUMIF(HĐ DV, Thợ = X) ORDER BY DESC
5. Top thợ theo lợi nhuận
Xếp hạng thợ theo lợi nhuận thực tế (DT - Chi phí)
= SUMIF(Lợi nhuận, Thợ = X) ORDER BY DESC
6. Tồn kho xe + số ngày tồn
Xe chưa bán + số ngày từ khi nhập đến hiện tại
= TODAY() - Ngày nhập kho WHERE Đã bán = FALSE
📊

Chi tiết báo cáo - Bảng tính

Báo cáoSourceGroup ByFormula chính
Doanh thu ngày/thángHĐ mua bán + HĐ DV đã thanh toánNgày, ThángSUM(Thành tiền)
Lợi nhuận ngày/thángDoanh thu - Giá vốn - Chi phíNgày, ThángSUM(Doanh thu) - SUM(Giá vốn) - SUM(Chi phí)
Doanh thu theo mảngHĐ mua bán + HĐ DV + Chi tiết DVLoại DVSUMIF(Theo loại)
Top thợ doanh thuHĐ DV + Chi tiết DVThợSUM(Thành tiền) theo thợ
Top thợ lợi nhuậnDoanh thu thợ - Lương thợ - Phụ tùngThợSUM(DT) - SUM(Lương) - SUM(Phụ tùng)
Tồn kho + ngày tồnQL kho xe WHERE Đã bán = FALSEXeTODAY() - Ngày nhập
📈

Dashboard đề xuất

💵
Doanh thu tháng này
📊
Lợi nhuận tháng này
🏍️
Xe tồn kho
TB ngày tồn kho

9. Lộ Trình Triển Khai

Phase 1: Module HĐ Dịch Vụ + Mã xe duy nhất

Tuần 1-2
  • Nâng cấp "5. HĐ DV" + "5.1. Chi tiết HĐ DV" (fields mới, module in)
  • Tạo trường Mã xe duy nhất (Biển số + Số khung) cho QL kho xe
  • Thêm field kiểm tra trùng khi nhập xe mới
  • Tạo bảng Lịch sử giao dịch xe
  • Link KH → HĐ DV → Chi tiết → In → QL công việc

Phase 2: Công nợ KH/NCC + Ngân hàng TPBank

Tuần 3-4
  • Tách công nợ từ theo xe → theo khách hàng + nhà cung cấp
  • Tạo bảng Công nợ KH + Công nợ NCC
  • Thêm công nợ mảng dịch vụ vào tổng công nợ KH
  • Sync TPBank API → Auto tạo phiếu thu/chi
  • Thêm cột Số dư hiện tại
  • Auto match giao dịch NH với HĐ

Phase 3: Báo cáo CRM + Dashboard

Tuần 5-6
  • Xây dựng 6 báo cáo: doanh thu, lợi nhuận, theo mảng, top thợ, tồn kho
  • Tạo Lark Dashboard với chart, filter theo ngày/tháng
  • Thêm widget: xe tồn kho > 30 ngày, công nợ quá hạn
  • Auto tạo tasks từ Chi tiết HĐ DV → QL công việc
  • Bảo hành + reminder

10. Bảng Ưu Tiên

1
Mã xe duy nhất (Biển số + Số khung)
Giải quyết kho xe phình to, 1 xe nhiều mã
Khẩn cấp
2
Module HĐ DV + In HĐ
Luồng KH → HĐ DV → Chi tiết → In → Công việc
Khẩn cấp
3
Công nợ theo KH/NCC
Tách khỏi xe, thêm công nợ dịch vụ
Khẩn cấp
4
Sync TPBank + Auto phiếu thu/chi
Thay MB, thêm số dư, auto tạo phiếu
Khẩn cấp
5
6 Báo cáo CRM + Dashboard
Doanh thu, lợi nhuận, theo mảng, top thợ, tồn kho
Quan trọng
6
Auto tạo công việc từ HĐ DV
Giảm thao tác manual
Nên có