Files
alla-tms/docs/training-record-draft-submit-workflow-report.md
2026-07-16 09:53:14 +07:00

4.5 KiB

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