Cách hoạt động — Data flow của DuToanXD
Cập nhật 27/04/2026
Mục đích trang này: giúp user hiểu hệ thống chạy thế nào, dữ liệu đi từ đâu đến đâu, sửa chỗ A thì chỗ B nào bị ảnh hưởng. Nội dung này KHÁC với "Thuyết minh dự toán" — thuyết minh in ra cho khách/kiểm toán, còn trang này dành cho user nội bộ hiểu nguyên lý.
1. Nguồn chân lý (read-only)
Đây là dữ liệu hệ thống lưu trữ + cập nhật từ Bộ XD, Sở XD các tỉnh. User KHÔNG sửa được — chỉ đọc.
- Định mức xây dựng (TT 12/2021/TT-BXD): bảng hao phí kỹ thuật cho từng mã công tác. Vd: 1 m² lát gạch → cần 1,02 m² gạch + 0,15 công thợ + 0,01 ca trộn.
- Đơn giá nhân công tỉnh (TT 13/2021 + QĐ Sở XD): mức tiền lương ngày công theo cấp bậc. Vd HCM bậc 4/7: 297.977 đ/công (QĐ 2023).
- Đơn giá vật liệu: từ
gia_vat_tutrong DB SQLite per-tỉnh, lấy từ Công bố giá Sở XD (CBG). - Đơn giá máy thi công: tương tự, theo bảng giá ca máy của tỉnh.
- Chỉ số giá xây dựng (Bộ XD công bố quý/năm): I_VL, I_NC, I_M để bù trượt giá theo thời gian.
- Hệ số % chi phí (TT 11/2021 Bảng 3.7): C, TT, LT, TL, VAT theo loại công trình.
2. Input người dùng
Lưu trong project.data (Postgres JSONB).
- Khối lượng: m, m², kg, công… đo bóc từ bản vẽ thi công.
- Mode: tư nhân (chỉ áp C) hoặc vốn nhà nước (áp đủ C + LT + TT).
- Hệ số bổ sung: kVl, kNc, kMay (mặc định 1,0).
- % chi phí override: pctC, pctTT, pctNhaTam, pctTL, pctVAT (override default chân lý).
- Năm dự toán: để xác định trượt giá vs năm data.
- Phái sinh (DinhMucPaiSinh): user tạo mã riêng từ định mức gốc, đổi vật tư/định mức.
3. Áp dụng — công thức tính
Theo TT 11/2021/TT-BXD Phụ lục III, ký hiệu chuẩn:
VL = Σ (định_mức_VL × giá_VL × kVl × kl_công_tác)
NC = Σ (định_mức_NC × giá_NC × kNc × kl_công_tác)
M = Σ (định_mức_M × giá_M × kMay × kl_công_tác)
T = VL + NC + M (Chi phí trực tiếp)
C = T × pctC % (Chi phí chung)
LT = T × pctNhaTam % (Nhà tạm)
TT = T × pctTT % (CV không xác định KL)
GT = C + LT + TT (Tổng gián tiếp)
TL = (T + GT) × pctTL % (TN chịu thuế)
G = T + GT + TL (XD trước thuế)
GTGT = G × pctVAT % (Thuế GTGT)
Gxd = G + GTGT (XD sau thuế)Áp dụng theo 1 trong 2 phương pháp:
- Bảng 3.1 (cấp công trình): % chỉ áp 1 lần ở tổng dự toán.
- Bảng 3.2 (cấp công tác): % áp ngay tại từng item rồi cộng dồn.
DuToanXD hiện dùng Bảng 3.2 — mỗi item có Gxd riêng để dễ debug.
4. Hiển thị — 5 góc nhìn dữ liệu
| Tab | Góc nhìn | Edit? |
|---|---|---|
| 📋 Bảng tiên lượng | Danh sách item theo nhóm/section, sửa KL/đơn giá/mã | ✓ |
| 📊 Tổng hợp VL/NC/M | Matrix item × loại chi phí | — |
| 🔧 Đơn giá chi tiết | Chiết tính hao phí từng item | — |
| 🧱 Vật liệu / Hao phí | Aggregate theo vật tư, top impact, drill-down | — |
| 📈 Tổng hợp dự toán | Bảng 3.1 chuẩn pháp lý (T → C → TL → Gxd) | — |
5. Ai ảnh hưởng đến ai?
Khi user sửa chỗ A, hệ thống cập nhật chỗ nào tự động:
| Sửa | Ảnh hưởng |
|---|---|
| KL của 1 item | Thành tiền item đó · Tổng nhóm · Tổng section · Grand total · % phân bố Tab 4 |
| Mã công tác | Fetch lại định mức gốc + đơn giá → tính lại Gxd item · Tổng cộng dồn |
| Định mức phái sinh (PaiSinhModal/dinh-muc-ps page) | Sync sang TẤT CẢ items trong mọi project có psId match → tính lại Gxd → grand total cập nhật |
| kNc / kVl / kMay (project) | TOÀN BỘ items được tính lại → Tab 1/2/4/5 đều thay |
| % chi phí (pctC, pctTL, pctVAT…) | Chỉ ảnh hưởng tổng tổng dự toán cấp công trình. Item-level Gxd không đổi nếu Bảng 3.1, đổi nếu Bảng 3.2. |
| Tỉnh của item | Đơn giá NC/VL/M có thể thay đổi (mỗi tỉnh có giá riêng) → fetch lại |
| Năm dự toán (data.nam) | Hiện chỉ thông báo trong thuyết minh. Khi áp trượt giá: kNc = I_NC(year_dt) / I_NC(year_data) — tự động đổi. |
6. Lưu trữ & versioning
- Project: lưu Postgres + JSONB
data. Auto-save mỗi lần thay đổi (debounce ~500ms). - ProjectVersion: snapshot toàn bộ data + total tại thời điểm user bấm "Lưu phiên bản". Có thể restore.
- DinhMucPaiSinh: bảng riêng. Sửa định mức ảnh hưởng tất cả items có psId match (multi-project).
- Cache local: sessionStorage cho chitiet/haophi (Tab 3, 4) — invalidate khi switch project hoặc bấm 🔄.
7. Nguyên tắc thiết kế
- Đơn nguồn (Single Source of Truth): components → tính toán live, KHÔNG cache stale.
- Chân lý có dẫn nguồn: mọi % và hệ số đều có tooltip ⓘ ghi rõ TT/Bảng/QĐ.
- Edit gần cấp tác động: sửa KL ở Tab 1 (chính), drill-down từ Tab 4 sang phái sinh page (1 click), không phải copy-paste mã.
- Audit-friendly: bảng tổng (Tab 5) bám sát Bảng 3.1 TT 11/2021 để kiểm toán nhà nước nhìn quen.
8. Các từ viết tắt
| Từ | Đầy đủ |
|---|---|
| VL | Vật liệu |
| NC | Nhân công |
| M / MAY | Máy thi công |
| T | Chi phí trực tiếp = VL + NC + M |
| C | Chi phí chung |
| LT | Lán trại — Chi phí nhà tạm để ở và điều hành thi công |
| TT | Trực tiếp khác — Chi phí một số việc không xác định khối lượng |
| GT | Tổng chi phí gián tiếp = C + LT + TT |
| TL | Thu nhập chịu thuế tính trước |
| G | Chi phí xây dựng trước thuế |
| GTGT | Thuế giá trị gia tăng (VAT) |
| Gxd | Chi phí xây dựng sau thuế (= G + GTGT) |
| Gdt | Giá dự thầu (Gxd × hệ số dự thầu) — KHÔNG dùng trong dự toán, chỉ ở cấp dự thầu |
| kVl/kNc/kMay | Hệ số bổ sung điều chỉnh đơn giá VL/NC/M (vùng, contractor riêng…) |
| I_VL/I_NC/I_M | Chỉ số giá VL/NC/M Bộ XD công bố (gốc 2020 = 100) |
| CBG | Công bố giá Sở Xây dựng (theo tháng/quý) |
Trang này được cập nhật khi có thay đổi kiến trúc hoặc văn bản pháp lý mới (TT 60/2025 sửa TT 11-14/2021 hiệu lực 15/02/2026, Luật XD 135/2025 hiệu lực 01/07/2026...). Xem thêm tại Nguồn dữ liệu.