# SOLUTION_ERP S37-S40 catch-up (RAG content-gap fill, 2026-05-29)

> **Promote-to-disk note (S41, 2026-05-29):** This file is the on-disk twin of RAG store_memory chunk `0307141b` (orig source_path `docs/STATUS.md#s37-s40-catchup`). Promoted to a real corpus file per AI_INFRA's unified at-risk rule — the consolidated summary's information is scattered across `2026-05-29-S36-S39-*.md` + `2026-05-29-S40-*.md` + STATUS.md, but was NOT a clean single twin, so it is preserved verbatim here to survive replace-mode re-bootstrap. Content below = chunk content verbatim.

---

Fills gap: collection proj_solution_erp last full-indexed 2026-05-28 (S37-era), missing S38-S40 content. Full source/doc re-index pending `python bootstrap.py --project solution_erp`.

## Phase 10 COMPLETE 11/11 Plan G-* (Văn phòng số + HRM)
S33 G-H1 Hồ sơ NS (Mig 34 EmployeeProfiles + 5 satellite) · S34 G-O1 Danh bạ · S34+S35 G-H2 Cấu hình HRM (Mig 35 LeaveType/Holiday/ShiftPattern/OtPolicy) · S36 G-O2 Phòng họp (Mig 36 MeetingRoom/MeetingBooking/Attendees) · S37 G-O3 Đề xuất (Mig 38 Proposal) · S38 G-O4 Đơn từ + G-O5 Đặt xe + G-O6 Ticket CNTT + G-P1 Chấm công + G-H3 Dashboard NS (SKELETON combo).

## S37 Proposal module (Mig 37+38)
Mig 37 ExtendApplicableTypeForWorkflowApps: ApprovalWorkflowApplicableType enum +5 (ProposalGeneral=4, LeaveRequest=5, OtRequest=6, VehicleBooking=7, ItTicket=8). Mig 38 AddProposals: Proposal (Code DX/YYYY/NNNN, ProposalStatus 5-state mirror PE) + ProposalAttachment + ProposalLevelOpinion UNIQUE (ProposalId, LevelId) + ProposalCodeSequence Prefix PK. ApproveV2Async inline ProposalFeatures.cs. Sample workflow QT-DX-V2-001 ApplicableType=4.

## S38 WorkflowApps skeleton (Mig 39+40) — Phase 11 wire pending
Mig 39 AddWorkflowApps: LeaveRequest + OtRequest + TravelRequest + VehicleBooking + ItTicket (kanban). Flat WorkflowAppStatus 5-state. ApproveV2 advance level + LevelOpinions per-module + LeaveBalance + CodeGen atomic + Vehicle/Driver catalog + auto-assign/SLA all DEFER Phase 11. Mig 40 AddAttendances: UNIQUE (UserId,Date) + GPS lat/long/accuracy + Source enum + WorkHours. BE WorkflowAppsFeatures.cs ~1100 LOC + 7 Controller. FE declarative KIND_CONFIG WorkflowAppsListPage + ItTicketsPage kanban + MyAttendancePage GPS + HrmDashboardPage 4 KPI.

## S39 INFRA: 7-agent split + Opus 4.8 1M
Multi-agent 4→7: investigator-codebase (internal SQL/EF) + investigator-api (external docs/CVE) + implementer-backend (.NET) + implementer-frontend (FE 2 app) + test-specialist (tests/) + reviewer + cicd-monitor. 5 RAG MCP/agent. gotcha #54 (529 Overload spawn fail → em main solo fallback) + #55 (truncation mid-exploration → brief ≤8K).

## S40 verified state (re-grounded from code)
40 mig (last AddAttendances 20260528090839) · 84 SQL tables (77 app DbSet + 7 ASP.NET Identity) · ~211 endpoints · 65 FE pages (36 fe-admin + 29 fe-user) · ~53 menu keys · 130 test (58 Domain + 72 Infra) · 55 gotchas · 27 user-memory · 6 skills · 7 sub-agents. Doc consolidation STATUS/HANDOFF 393KB→9KB (full archive docs/_archive/). 4 agent MEMORY curated <25KB.
