# StockFlow Roadmap

Ngày bắt đầu: 23-09-2026

## P0 — Nền tảng an toàn

- [x] Đồng bộ schema mới 21 bảng và 2 view.
- [x] Tạo migration giữ dữ liệu database cũ.
- [x] Thêm API chuyển kho, điều chỉnh tồn, VAT và thẻ kho.
- [x] Hoàn thiện chứng từ nhiều dòng trên UI cho chuyển kho và điều chỉnh tồn.
- [x] Thêm xác nhận, hủy và khóa chỉnh sửa chứng từ trên UI theo trạng thái.
- [x] Chạy kiểm tra/alignment trên database có dữ liệu thật sau khi tạo backup.
- [x] Smoke test login, endpoint mới, tạo phiếu nhiều dòng và hủy nháp.
- [x] Kiểm thử transaction trên database clone: xuất vượt tồn, chuyển kho, điều chỉnh và rollback.

## P1 — Nghiệp vụ hoàn chỉnh

- [x] CRUD khách hàng và nhà cung cấp đầy đủ.
- [x] CRUD VAT: tạo, sửa nháp, phát hành, hủy, liên kết phiếu gốc.
- [x] Màn hình chi tiết chuyển kho, điều chỉnh và VAT; thẻ kho hiển thị trực tiếp theo dòng lịch sử.
- [x] Phân quyền lập phiếu, duyệt phiếu và quản trị ở API; UI chi tiết vẫn đang hoàn thiện.
- [x] Dashboard lọc theo kho và thời gian.
- [x] Pagination cho danh sách sản phẩm và tồn kho; tìm kiếm/lọc trạng thái được giữ đồng bộ theo trang.

## P1 — UI/UX và accessibility

- [x] Loading, empty, error state và phản hồi thao tác cho Dashboard/nghiệp vụ mới.
- [x] Hoàn thiện chuẩn hóa badge trạng thái tiếng Việt trên danh mục, kiểm kê, tồn kho, báo cáo và chi tiết chứng từ.
- [x] Thay icon ký tự bằng icon SVG inline, decorative icons có `aria-hidden` và link vẫn có nhãn accessible.
- [x] Bổ sung focus keyboard và reduced-motion; responsive baseline đã có cho 375px, 768px, 1024px và 1440px.
- [x] Tối ưu bundle frontend và tách code theo route bằng `React.lazy`/`Suspense`.

## P2 — Vận hành và chất lượng

- [x] Audit log thao tác người dùng: migration bảng `audit_logs`, tự ghi nhận thao tác thay đổi dữ liệu thành công, ẩn trường nhạy cảm và API admin có phân trang/bộ lọc cơ bản.
- [x] Backup/restore và hướng dẫn triển khai production: script backup nén có timestamp, restore có xác nhận chống ghi đè nhầm và hướng dẫn health/integrity check sau restore.
- [x] Đồng bộ ERD, báo cáo DOCX và changelog sau các thay đổi schema; thêm `docs/stockflow_erd.md` và bản DOCX cập nhật.
- [x] API smoke test và frontend smoke test: script API không tạo dữ liệu mới và frontend build smoke test.
- [x] Monitoring health check và cảnh báo lỗi transaction: health check kiểm tra MySQL, request ID xuyên suốt request và structured error log sẵn sàng nối vào alerting production.

## Tiến độ hiện tại

Đã hoàn thành toàn bộ hạng mục P0, P1 và P2 trong roadmap ngày 23-09-2026. Ver2 đã hoàn thiện các báo cáo kho/công nợ, workflow nhập số dư và phát sinh công nợ, kiểm tra số liệu, build, migration tạm và smoke test. Việc diễn tập rollback cấp production vẫn là bước vận hành riêng trước khi triển khai thật.

## Ver2 — Hoàn thiện báo cáo và nghiệp vụ đối soát

Mục tiêu ver2 là đưa StockFlow từ nền tảng quản lý kho vận hành được thành sản phẩm có bộ báo cáo kho và công nợ đủ để kiểm tra, đối chiếu và in báo cáo theo kỳ. Các báo cáo chỉ được đánh dấu hoàn thành sau khi công thức, dữ liệu đầu vào, quyền truy cập, trạng thái rỗng/lỗi và kiểm thử số liệu đều được xác minh.

### Ver2.1 — Báo cáo kho

- [x] Thêm báo cáo cân đối kho theo kỳ: tồn đầu kỳ, nhập, xuất, chuyển vào, chuyển ra, điều chỉnh và tồn cuối kỳ.
- [x] Thống nhất ngày nghiệp vụ của báo cáo kho theo `inventory_transactions.transaction_date`, với bộ lọc ngày bao gồm đầy đủ cả ngày bắt đầu và ngày kết thúc.
- [x] Bổ sung lọc kho, sản phẩm và danh mục; bảo đảm chuyển kho không bị cộng trùng.
- [x] Bổ sung đối chiếu tồn sổ với số thực tế kiểm kê và chênh lệch khi dữ liệu kiểm kê phù hợp kỳ báo cáo.
- [x] Sửa bộ lọc lịch sử giao dịch để mã giao diện khớp enum `ADJUSTMENT` trong database.
- [x] Kiểm tra lại các báo cáo tồn, nhập, xuất và top sản phẩm sau khi thêm báo cáo cân đối.

### Ver2.2 — Nền tảng công nợ

- [x] Bổ sung số dư công nợ đầu kỳ theo khách hàng/nhà cung cấp, năm tài chính và bên Nợ/Có.
- [x] Bổ sung sổ phát sinh công nợ có ngày, đối tác, loại khoản, diễn giải, số tiền Nợ/Có và chứng từ tham chiếu.
- [x] Bổ sung trạng thái nháp, xác nhận, hủy và audit cho số dư/phát sinh công nợ.
- [x] Bổ sung các nhóm phải thu: vốn dự trữ, phải thu khác, khoản thu còn thiếu.
- [x] Bổ sung các nhóm phải trả: trong nội bộ, ngoài đơn vị, phải trả khác.
- [x] Chốt nguồn phát sinh công nợ từ hóa đơn đã phát hành và các khoản thanh toán/điều chỉnh đã xác nhận; không dùng tổng phiếu kho thay cho công nợ kế toán.

### Ver2.3 — Báo cáo công nợ

- [x] Thêm báo cáo công nợ đầu năm.
- [x] Bổ sung các trường Chương/Loại/Khoản/Mục tùy chọn để bám sát mẫu báo cáo đầu năm được cung cấp.
- [x] Thêm báo cáo tổng hợp công nợ phải thu theo khách hàng: đầu kỳ, phát sinh, cuối kỳ Nợ/Có.
- [x] Thêm báo cáo tổng hợp công nợ phải trả theo nhà cung cấp: đầu kỳ, phát sinh, cuối kỳ Nợ/Có.
- [x] Thêm báo cáo công nợ phải thu theo nhóm theo mẫu B15-H.
- [x] Thêm báo cáo công nợ phải trả theo nhóm theo mẫu B16-H.
- [x] Có tổng cộng, bộ lọc kỳ/đối tác/nhóm, trạng thái rỗng/lỗi và chế độ in rõ ràng.
- [x] Bảo đảm số dư cuối kỳ theo công thức: đầu kỳ Nợ + phát sinh Nợ - đầu kỳ Có - phát sinh Có; số dư chỉ nằm ở bên Nợ hoặc Có sau khi bù trừ.

### Ver2.4 — Kiểm thử và phát hành

- [x] Thêm kiểm thử công thức với số dư Nợ, số dư Có, thanh toán một phần, thanh toán đủ, ứng trước và phát sinh âm/điều chỉnh.
- [x] Kiểm thử báo cáo kho với nhập, xuất, chuyển kho hai chiều, điều chỉnh và kiểm kê.
- [x] Chạy migration trên database tạm độc lập; kiểm tra khóa ngoại, index, ràng buộc và khả năng chạy lặp an toàn trước production.
- [x] Chạy backend build, frontend build, API smoke test và các kiểm tra số liệu đối chiếu.
- [x] Cập nhật ERD, README, CHANGELOG và tài liệu vận hành sau khi schema ổn định.

## Backlog nâng cao sau roadmap

- [ ] Thêm giao diện admin để tra cứu audit log thay vì chỉ dùng API.
- [ ] Bổ sung browser end-to-end test cho các luồng tạo và xác nhận chứng từ.
- [ ] Kết nối structured error log với hệ thống alerting/log collector production.
- [ ] Diễn tập restore trên database clone theo lịch và đo RPO/RTO thực tế.
- [x] Thêm kiểm tra cấu hình production, chặn secret mặc định và giới hạn CORS theo `CORS_ORIGIN`.
- [ ] Đổi `JWT_SECRET`, mật khẩu demo và thông tin database thật trên máy chủ production.
- [ ] Rà soát index/query chậm khi dữ liệu vượt quy mô seed hiện tại.
