[CLAUDE] Docs: chốt session 4 — Budget BE module + 14 Solutions users
All checks were successful
Deploy SOLUTION_ERP / build-deploy (push) Successful in 2m53s
All checks were successful
Deploy SOLUTION_ERP / build-deploy (push) Successful in 2m53s
- STATUS.md: header Phase 7 + 3 row Recently Done (Budget BE / 14 users / Docs cleanup) + cumulative cột mới (51 tables / 14 mig / ~124 endpoints) - HANDOFF.md: TL;DR session 4 (2 milestone Budget BE + 14 users) + Cảnh báo session 5 + Priority 0 (FE Budget + PE/HD integration + PE feature gap) + Credentials 30 user - migration-todos.md: Phase 7 thêm section D Budget done + Phase 8 mới (FE Budget pages + integration) + pending migrations Budget - architecture.md: §10 Budget module mới (ERD + state machine + auto-recompute + integration roadmap) - database/schema-diagram.md: migration history rows 13+14 + §12 Budget ERD chi tiết - ef-core-migration SKILL: migration 14 entry + Phase 8 pending Budget refinement - CLAUDE.md root + docs: modules table thêm Budget row + scope Budget + count 51 bảng / 14 mig - Session log 2026-04-28-chot-session-4-budget.md (10+ section detailed) Stats: 51 tables (+4 Budget), 14 migrations (+AddBudgets), ~124 endpoints (+11 Budget), 30 demo user (16 sample + 14 Solutions thật), 38 gotchas, ~340 LOC Budget CQRS. FE Budget pages chưa làm — Priority 0 session 5. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@ -267,7 +267,49 @@ PurchaseEvaluation (Header) ─< PurchaseEvaluationSupplier (N:M × Supplier)
|
||||
|
||||
Chi tiết: [`database/schema-diagram.md §11`](database/schema-diagram.md).
|
||||
|
||||
## 10. Liên quan
|
||||
## 10. Budget (Phase 7 — Module Ngân sách)
|
||||
|
||||
Module quản lý ngân sách dự án: header + chi tiết hạng mục + workflow simple 3-step + audit log. Liên kết nullable cả Contract và PurchaseEvaluation để đối chiếu chi phí.
|
||||
|
||||
```
|
||||
Budget (Header) ─< BudgetDetail (flat row hạng mục)
|
||||
─< BudgetApproval (workflow history)
|
||||
─< BudgetChangelog (audit log)
|
||||
─> Project (FK Restrict)
|
||||
─> Department? (FK Restrict)
|
||||
─> User Drafter (FK Restrict)
|
||||
|
||||
Contract.BudgetId? ──────────► Budget (link đối chiếu chi phí HĐ)
|
||||
PurchaseEvaluation.BudgetId? ─► Budget (link đối chiếu chi phí tiền-HĐ)
|
||||
```
|
||||
|
||||
**Phase enum** (`BudgetPhase` 5-state):
|
||||
|
||||
```
|
||||
DangSoanThao(1) ──Trình──► ChoCCM(2) ──Duyệt──► ChoCEO(3) ──Duyệt──► DaDuyet(4)
|
||||
▲ │ │
|
||||
└──Reject(99)───────────┴─────────────────────┘
|
||||
```
|
||||
|
||||
**Workflow simple hardcoded** (`BudgetPolicy.Default`):
|
||||
- Drafter / DeptManager: DangSoanThao → ChoCCM (Trình) hoặc → TuChoi (Hủy)
|
||||
- CostControl (CCM): ChoCCM → ChoCEO (Duyệt) hoặc → DangSoanThao (Trả về)
|
||||
- Director / AuthorizedSigner: ChoCEO → DaDuyet (Duyệt) hoặc → DangSoanThao (Trả về)
|
||||
|
||||
**Mã ngân sách** `NS-{YYYYMM}-{Random:4d}` — hiện Random.Shared, sẽ chuyển atomic SERIALIZABLE khi format chốt chính thức (mirror Contract/PE pattern).
|
||||
|
||||
**Auto-recompute** `TongNganSach`:
|
||||
- Sau Add/Update/Delete BudgetDetail → handler tự sum `Sum(d.ThanhTien)` lại Header.
|
||||
- Tránh state drift, đơn giản hơn trigger DB.
|
||||
|
||||
**Integration roadmap**:
|
||||
- PE form select Budget (filter `Phase=DaDuyet && NamNganSach=current && ProjectId match`)
|
||||
- Contract form tương tự
|
||||
- Tab Hạng mục PE/HD compute "So với ngân sách" (match GroupCode + ItemCode)
|
||||
|
||||
Chi tiết: [`database/schema-diagram.md §12`](database/schema-diagram.md).
|
||||
|
||||
## 11. Liên quan
|
||||
|
||||
- [`rules.md`](rules.md) — coding conventions
|
||||
- [`database/database-guide.md`](database/database-guide.md) — DB schema chi tiết
|
||||
|
||||
Reference in New Issue
Block a user