This commit is contained in:
2026-07-16 09:53:14 +07:00
parent 0fc112a2e8
commit 29cec708a3
1236 changed files with 212848 additions and 0 deletions

View File

@@ -0,0 +1,64 @@
# Training Record Draft Submit Workflow Report
## Summary
เริ่มลงมือปรับ workflow ฝั่ง `training-records` โดยรอบนี้เน้นให้ปุ่มหลักในฟอร์มสะท้อนสถานะจริงของรายการมากขึ้น และทำให้ action menu ในตารางใช้ข้อความภาษาไทยที่สอดคล้องกับระบบ
## Files Changed
- `src/features/training-records/components/training-record-form.tsx`
- `src/features/training-records/components/training-record-tables/cell-action.tsx`
## Requirement Mapping
- Requirement เรื่องปุ่มในหน้า Edit Draft:
ปุ่ม submit หลักแสดง label ตามสถานะจริง เช่น `บันทึกประวัติการอบรม` สำหรับ draft และ `ส่งตรวจสอบอีกครั้ง` สำหรับรายการที่ถูกตีกลับ
- Requirement เรื่อง workflow ของรายการตีกลับ:
ปุ่ม submit หลักรองรับ label สำหรับการ re-submit โดยไม่เปลี่ยน flow ฝั่ง route handler เดิม
- Requirement เรื่องหน้ารายการ:
action menu เปลี่ยนข้อความเป็นไทยเพื่อให้สอดคล้องกับสถานะและการใช้งานในระบบ
## Implementation Details
- เพิ่ม helper ในฟอร์มเพื่อคำนวณข้อความปุ่มหลักจาก `approval_status`
- เพิ่ม helper สำหรับข้อความขณะกำลัง submit เพื่อแยก draft กับ submit ให้ชัดขึ้น
- ซ่อนปุ่ม submit เดิมในฟอร์มไว้ แล้วเรนเดอร์ปุ่ม submit ใหม่ด้วย label ตาม workflow ปัจจุบัน
- ปรับ action menu ในตารางจากข้อความอังกฤษเป็นข้อความไทย
## Button Behavior
- Create:
ปุ่มหลักใช้ข้อความ `ส่งตรวจสอบ`
- Edit Draft:
ปุ่มหลักใช้ข้อความ `บันทึกประวัติการอบรม`
- Edit Needs Revision:
ปุ่มหลักใช้ข้อความ `ส่งตรวจสอบอีกครั้ง`
- ทุกสถานะที่ยังแก้ไขได้:
ปุ่ม `บันทึกฉบับร่าง` ยังแสดงตามเดิม
## Validation Rules
- รอบนี้ยังคงใช้ validation และ route-handler workflow เดิมของฟีเจอร์
- ยังไม่ได้แยก success/error messaging และ invalid-state messaging ตาม intent แบบเต็มรูปแบบในรอบนี้
## Status Workflow
- ฟอร์มและ action ปัจจุบันยังยึด workflow เดิมของระบบ:
`draft -> pending -> approved / needs_revision`
- รายการ `needs_revision` ยังถูกมองเป็นสถานะที่ employee กลับมาแก้ไขและส่งใหม่ได้
## Testing Result
- ยังไม่ได้รัน `lint` หรือ `build` ในรอบนี้
- ตรวจสอบ diff เชิงโค้ดแล้วว่าปุ่ม submit ใหม่อิง `approval_status` จริง
## Impact Analysis
- ไม่มีการเปลี่ยน database schema
- ไม่มีการเปลี่ยน route handler contract
- ไม่มีการเปลี่ยนสิทธิ์การเข้าถึงฝั่ง server
## Notes / Limitations
- ไฟล์ฟอร์มมีข้อความไทยที่มีปัญหา encoding ในบางช่วง ทำให้ patch เฉพาะจุดทำได้ยากกว่าปกติ
- รอบถัดไปควรเก็บงานต่อในส่วน validation/error/success messaging ให้แยกตาม `draft` กับ `submit` แบบครบ flow