# Requirement ที่เข้าใจ

## Objective

ปรับปรุงมาตรฐานการแสดงข้อมูลพนักงาน (Employee Information Standard) ให้เป็นรูปแบบเดียวกันทั้งระบบ TMS เพื่อให้ผู้ใช้งานสามารถค้นหาและอ่านข้อมูลได้อย่างสม่ำเสมอ ลดความสับสนในการใช้งาน

---

# Functional Requirements

## Employee Information Standard

ทุกหน้าที่มีการแสดงข้อมูลพนักงาน ให้ใช้มาตรฐานเดียวกัน ดังนี้

### ตารางข้อมูล

ให้เพิ่มคอลัมน์ **รหัสพนักงาน (Employee Code)** เป็นคอลัมน์แรกของตาราง

ลำดับข้อมูลมาตรฐาน

- รหัสพนักงาน
- ชื่อพนักงาน
- บริษัท
- แผนก
- ข้อมูลเฉพาะของแต่ละโมดูล
- สถานะ
- Action

หากบางโมดูลไม่มีข้อมูลบริษัทหรือแผนก สามารถซ่อนเฉพาะคอลัมน์นั้นได้ แต่ลำดับของ Employee Code และ Employee Name ต้องเหมือนกันทุกหน้า

---

## Search Standard

ทุกหน้าที่มีข้อมูลพนักงาน

ให้รองรับการค้นหาด้วยช่องค้นหาเดียว

สามารถค้นหาได้จาก

- Employee Code
- Employee Name
- Last Name
- Full Name

และข้อมูลเฉพาะของแต่ละโมดูล เช่น

- Course Name
- Provider
- Announcement Title
- Online Lesson Title

Placeholder ให้ใช้มาตรฐานเดียวกัน

```
ค้นหาด้วยรหัสพนักงาน ชื่อพนักงาน หรือข้อมูลที่เกี่ยวข้อง...
```

โดยสามารถปรับท้ายข้อความตามโมดูลได้ เช่น

```
ค้นหาด้วยรหัสพนักงาน ชื่อพนักงาน หลักสูตร หรือผู้จัดอบรม...
```

---

## Sorting Standard

ทุกหน้าที่ใช้ DataTable

รองรับการ Sort

- Employee Code
- Employee Name

หาก DataTable เดิมรองรับ Sorting อยู่แล้ว ให้เพิ่มเฉพาะคอลัมน์ใหม่

---

## Responsive Standard

Desktop

แสดง Employee Code เป็นคอลัมน์แรก

Mobile

ให้แสดง

Employee Code

Employee Name

เป็นข้อมูลบนสุดของ Card หรือ Row

---

## Scope of Standard

ให้ตรวจสอบและปรับทุกหน้าที่มีการแสดงข้อมูลพนักงาน เช่น

- Pending Review
- Training Records
- Employee Management
- Dashboard
- Reports
- Approval Lists
- Online Lesson Progress (ถ้ามี)
- Announcement Reader (ถ้ามีข้อมูลพนักงาน)
- หน้าจัดการอื่น ๆ ที่มีการแสดงรายชื่อพนักงาน

หากพบหน้าที่ใช้รูปแบบต่างกัน ให้ปรับเป็นมาตรฐานเดียวกัน

---

# UI/UX Requirements

ทุกหน้าต้องใช้มาตรฐานเดียวกัน

- Employee Code อยู่ก่อน Employee Name
- ชื่อคอลัมน์ใช้ข้อความเดียวกัน
- Placeholder ใช้มาตรฐานเดียวกัน
- Search Logic เหมือนกัน
- Sorting เหมือนกัน
- Responsive เหมือนกัน

ห้ามแต่ละหน้ามีพฤติกรรมแตกต่างกันโดยไม่มีเหตุผลทาง Business

---

# Technical Requirements

ก่อนแก้ไข

- Audit ทุกหน้าที่แสดงข้อมูลพนักงาน
- ตรวจสอบ Shared DataTable
- ตรวจสอบ Shared Search Component
- ตรวจสอบ Shared Column Definition
- ตรวจสอบ API ที่รองรับ Employee Code

หากพบ Logic ซ้ำ

ให้ Refactor เป็น Shared Component หรือ Shared Utility

ห้าม Copy Code

---

# Scope of Work

- ปรับเฉพาะส่วนการแสดงข้อมูลพนักงาน
- ไม่เปลี่ยน Business Logic ของแต่ละโมดูล
- ไม่เปลี่ยน Permission
- ไม่เปลี่ยน Workflow
- ไม่กระทบ API หากสามารถใช้ข้อมูลเดิมได้
- หาก API ยังไม่ส่ง Employee Code ให้เพิ่มเฉพาะ Field ที่จำเป็น

---

# Acceptance Criteria

✅ Employee Code เป็นคอลัมน์แรกทุกหน้า

✅ Search รองรับ Employee Code และ Employee Name

✅ Placeholder ใช้มาตรฐานเดียวกัน

✅ Sort Employee Code ได้

✅ Sort Employee Name ได้

✅ Responsive แสดงผลถูกต้อง

✅ ไม่มี Regression

---

# Deliverables

- ปรับทุกหน้าที่แสดงข้อมูลพนักงานให้ใช้มาตรฐานเดียวกัน
- ตรวจสอบ TypeScript Error
- ตรวจสอบ ESLint
- ตรวจสอบ Build
- ตรวจสอบ Search
- ตรวจสอบ Sorting
- ตรวจสอบ Responsive
- ตรวจสอบ Regression

สร้างเอกสาร

docs/employee-information-ui-standard-implementation-report.md

ประกอบด้วย

1. Executive Summary

2. Standard Definition

3. Pages Updated

4. Files Modified

5. API Changes

6. UI Changes

7. Search Changes

8. Sorting Changes

9. Responsive Changes

10. Regression Review

11. Test Checklist

12. Recommendation
