Bỏ qua nội dung

Audit log

Audit log = lịch sử mọi thay đổi data trong dự án DVDPM. Mỗi action (tạo, sửa, xoá) được lưu với:

  • Thời gian
  • User Windows (= account đăng nhập máy)
  • Loại entity (Contract, BoQ item, Payment, VO…)
  • Action (Create / Update / Delete)
  • Snapshot data trước + sau

Phù hợp cho:

  • Compliance: track ai sửa BoQ trị giá lớn lúc nào
  • Debugging: data bất thường — track xem ai gây ra
  • Audit độc lập: kiểm toán nội bộ / kiểm toán CĐT

Mở Audit log viewer

Tab DVDPMAudit log (icon scroll/history).

Dialog hiển thị bảng với filter:

FilterMô tả
Date rangeFrom - To (default: 30 ngày qua)
Entity typeAll / Contract / BoQ / Payment / VO / …
ActionAll / Create / Update / Delete
UserFilter theo Windows username
SearchFree-text search trong description

Mỗi row: timestamp + user + action + entity ID + summary.

Drill-down 1 entry

Click row → expand panel với:

  • Before: JSON snapshot data trước khi sửa
  • After: JSON snapshot data sau khi sửa
  • Diff: highlight các field thay đổi (vd Contract.Value: 1,000,000,0001,200,000,000)

→ Track precise điều gì thay đổi.

Render Audit log

Click Render to Excel → sheet AuditLog với:

  • Filter applied (date range, entity…)
  • Mỗi action 1 row
  • Cột Diff hiển thị compact

→ Forward kế toán / kiểm toán làm evidence.

Audit log limits

DVDPM lưu audit log trong sidecar .dvdpm.db cùng với data. Vì vậy:

  • Mỗi dự án 1 audit log riêng (không cross-project)
  • Audit log persist khi backup file .dvdpm.db
  • Không có expire — entries giữ vĩnh viễn (cho đến khi xoá DB)

Performance: 1 dự án dùng 1 năm tích lũy ~5,000-20,000 entries → vẫn fast.

Export full audit log

Cho compliance / kiểm toán cuối năm:

  1. Tab Audit log → Filter “All time” + “All actions”.
  2. Click Render to Excel → sheet đầy đủ.
  3. Save as PDF với watermark “AUDIT — DỰ ÁN XYZ — 2026” để có version locked.

PDF này có thể đóng dấu công ty + lưu archive.

Audit log KHÔNG track

⚠ Vì lý do hiệu năng + relevance, audit log KHÔNG track:

  • View data (chỉ track Create/Update/Delete)
  • Click ribbon button (chỉ user tương tác data)
  • Render Excel sheet (output, không phải data change)
  • Settings UI (theme, lang)
  • License operations

→ Chỉ track data change trong DB sidecar.

Use case examples

Trường hợp 1: BoQ tăng giá trị

CĐT phát hiện tổng BoQ HĐ-001 ngày 10/05 = 5 tỉ, ngày 15/05 = 5.5 tỉ → ai sửa?

  1. Audit log → Filter Entity = BoQ + From 10/05 + To 15/05.
  2. Tìm action Update với entity ID HĐ-001.
  3. Click drill-down → thấy:
    • Before: Quantity = 100 m³, UnitPrice = 50,000,000
    • After: Quantity = 110 m³ (sửa)
    • User: PM_Hoang
    • Time: 12/05/2026 14:30
  4. Confirm với PM Hoàng vì sao tăng → có VO duyệt không?

Trường hợp 2: Đợt thanh toán biến mất

Đợt 3 status Approved đã có hôm qua, hôm nay không thấy?

  1. Audit log → Filter Entity = Payment + Action = Delete.
  2. Tìm entry tương ứng → thấy:
    • User: Admin
    • Time: 09:00 today
    • Reason: (ghi chú nếu có)
  3. Có thể restore từ backup .dvdpm.db của hôm qua.

Trường hợp 3: Kiểm toán cuối năm

Auditor yêu cầu evidence ai approve VO trị giá >100tr trong Q4 2025:

  1. Filter Entity = VO + Action = Update + Date range = 01/10 - 31/12.
  2. Filter results với Status = Approved.
  3. Render PDF → chữ ký số.

Audit log + Backup

Khi .dvdpm.db lớn (>50 MB), audit log chiếm phần đáng kể. Nếu:

  • Cần lưu vĩnh viễn → backup file .dvdpm.db trước khi cleanup.
  • Cleanup audit log cũ → dùng SQL CLI tools (advanced, có thể destructive).
  • Roadmap v1.x: built-in feature archive audit cũ tự động.

Tip thực tế

  • Review weekly: cuối tuần PM check audit để biết team làm gì tuần qua.
  • Filter by user: tìm activity của 1 thành viên cụ thể (vd “QS_Linh đã sửa BoQ items nào tuần này”).
  • Export trước khi share file Excel: nếu share workbook với CĐT, export audit PDF kèm để có evidence.
  • KHÔNG xoá audit entries: dù có nút “Delete” trong DB level, đừng làm — mất chain of custody.

Sự cố thường gặp

Audit log trống

→ Có thể:

  • Dự án mới (chưa có activity)
  • Filter quá hẹp → expand date range / clear filter
  • Sidecar .dvdpm.db bị reset (qua Promote scratch?) → audit cũ mất

Audit log show “user” = SYSTEM

→ Action do hệ thống tự thực hiện (vd seed sample data, migration). Không phải bug.


Tiếp theo: FAQ + Lỗi thường gặp → | Liên quan: Backup / Restore