63234b2cce2466463c64aa2d87170bb9e0dbe48c
ApprovalWorkflowsV2Page.tsx refactor Designer modal theo Mig 29 per-NV: Types update: - `LevelDto` +5 Allow* (mirror BE AwLevelDto) - `DefinitionDto` REMOVE 6 workflow-level Allow* (no longer used) - `EditLevelEntry` +5 Allow* (form state per slot entry) - `makeDefaultLevelEntry(order, userId)` helper — 4 false + AllowReturnToDrafter true (S17 backward compat) - `copyFromDefinition` propagate 5 Allow* từ existing Levels Form state: - REMOVE 6 useState workflow-level (allowReturnOneLevel...allowApproverEditDetails) - POST body remove 6 workflow-level field - POST body levels[].* propagate 5 Allow* per slot UI refactor: - REMOVE entire section "Cấu hình nâng cao" workflow-level (amber bg 6 checkbox) - REPLACE với info banner violet ngắn "ⓘ Cấu hình quyền duyệt riêng cho từng NV ở mỗi Cấp dưới đây. F2 cấu hình ở User Management." - Mỗi Level entry (NV row) ADD inline panel amber-50/30 5 checkbox grid-cols-2: - Trả về 1 Cấp trước - Trả về 1 Bước trước - Trả về Người chỉ định - Trả về Drafter (mặc định checked) - Cho phép chỉnh sửa Section 2 (col-span-2, full row) - Header "Quyền duyệt NV #N" [10px] uppercase amber-700 - `updateField()` helper inline update per entry index F2 (AllowDrafterSkipToFinal) cần UX riêng ở User Management page (per-Drafter user global). Defer Chunk B Plus hoặc commit sau khi user UAT request. Verify: - npm run build fe-admin pass 498ms cached - 0 TS6 err, warning chunk size pre-existing Pending Chunk C: FE eOffice (PeWorkflowPanel + PeDetailTabs) read `evaluation.currentLevelOptions` + `evaluation.drafterAllowSkipToFinal` thay vì `workflowOptions`. Mirror 2 app. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
SOLUTION_ERP
Hệ thống quản lý Hợp đồng Nhà cung cấp / Thầu phụ / Tổ đội cho Công ty TNHH Xây dựng Solutions.
📘 AI context:
CLAUDE.md(pointer) →docs/CLAUDE.md(full)
Quick start (dev)
Yêu cầu: .NET 10 SDK, Node 20+, SQL Server (local hoặc qua Docker).
# 1. DB — chạy SQL Server qua Docker (nếu chưa có local)
docker compose up -d
# 2. Backend — migration + run Api (port 5443)
dotnet ef database update --project src/Backend/SolutionErp.Infrastructure --startup-project src/Backend/SolutionErp.Api
dotnet run --project src/Backend/SolutionErp.Api
# 3. Frontend admin (port 8082) — terminal mới
cd fe-admin
npm install
npm run dev
# 4. Frontend user (port 8080) — terminal mới
cd fe-user
npm install
npm run dev
Admin mặc định (sẽ seed sau Phase 1): admin@solutionerp.local / Admin@123456
Architecture
fe-admin (:8082) fe-user (:8080)
│ │
└────── /api proxy ──────┘
▼
SolutionErp.Api (:5443)
│
┌──────────────┼──────────────┐
▼ ▼ ▼
Application Domain Infrastructure ── SQL Server
Tech stack
- Backend: .NET 10 + Clean Architecture + CQRS (MediatR) + FluentValidation + AutoMapper + EF Core + ASP.NET Identity + JWT
- Frontend: React 18 + Vite + TypeScript + Tailwind + shadcn/ui + TanStack Query
- DB: SQL Server 2022
- Deploy: Windows Server + IIS
Roadmap
| Phase | Tuần | Focus |
|---|---|---|
| 0 Draft | T1 | Scaffold, parse FORM + QUY_TRINH |
| 1 Alpha Core | T2-4 | Auth, Permission, CRUD master |
| 2 Form Engine | T5-6 | Render template docx/xlsx |
| 3 Workflow | T7-9 | State machine 9 phase |
| 4 Report + Polish | T10-11 | Dashboard + Excel export |
| 5 Production | T12-13 | CI/CD IIS, UAT, go-live |
Chi tiết ở docs/changelog/migration-todos.md.
License
Proprietary — Công ty TNHH Xây dựng Solutions.
Description
Languages
C#
55%
TypeScript
42.7%
PowerShell
1.3%
JavaScript
0.3%
CSS
0.3%
Other
0.3%