Approve/reject DO need round_no-aware query filtering (the row_order+1
lookup and the reject index-walk have no is_state guard and would
collide across rounds) - the initial draft's "no changes needed" claim
was wrong. Also: migration auto-applies via Database.Migrate() on
startup, remark_historys round_no can be stamped client-side (no PUT
handler changes needed), and frontend's hasActiveStep()/approveStatus()
need round-scoping too.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MNN1mgyALe9skewgUDSMLK
Design for letting users submit a fresh approval round when a
budget-year/faculty/area's request_expense has already been fully
approved but new line items need to go through approval too.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MNN1mgyALe9skewgUDSMLK
Design for replacing the SyncFusion spreadsheet on income-budget-report-income1
and its 6 sibling menus with a native Angular tree component. Covers the 3
structurally-distinct document groups found in the real production files
(draft rounds 1-3, allocation/adjustment 4-6, material-cost matrix type 10),
the shift from source-locked-vs-editable data (ร.2/ร.4/ร.5/ร.6 as read-only
source, only committee-adjusted amounts editable), and the new
income_budget_report/income_budget_report_line data model replacing the
.xlsx-blob storage.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011R9j5gaw2qsoh9ypWQeXxi
Design for adding a "ส่งงานแผน" submit flow to the out-of-plan report
list plus a new reviewer menu "ตรวจสอบรายงานผล(นอกแผน)", mirroring the
existing check-project-report status_id flow with no backend changes.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01613NaY9LAvy2wFXEeyE5eR