91 lines
5.7 KiB
Markdown
91 lines
5.7 KiB
Markdown
# Task: เอาข้อมูลชั่วโมงรวม, ชั่วโมง K, ชั่วโมง S, ชั่วโมง A ออกจาก Import พนักงาน
|
|
|
|
ก่อนเริ่มแก้ไข กรุณาอ่านและปฏิบัติตาม `AGENTS.md` อย่างเคร่งครัด และตรวจสอบโครงสร้างเดิมก่อนแก้ไข
|
|
|
|
## เป้าหมาย
|
|
|
|
ปรับฟีเจอร์ Import พนักงาน ไม่ให้รับข้อมูลชั่วโมงสรุปจากไฟล์ Excel โดยตรง ได้แก่
|
|
|
|
- ชั่วโมงรวม
|
|
- ชั่วโมง K
|
|
- ชั่วโมง S
|
|
- ชั่วโมง A
|
|
|
|
เนื่องจากชั่วโมงเหล่านี้ต้องถูกคำนวณจาก Training Record จริงของพนักงาน ไม่ควรกรอกจากไฟล์ Import
|
|
|
|
## สิ่งที่ต้องแก้ไข
|
|
|
|
1. ตรวจสอบไฟล์ที่ประกาศหัวตาราง Import เช่น `thaiImportTemplateHeaders`
|
|
2. ลบหัวตารางต่อไปนี้ออกจาก Template Import:
|
|
- ชั่วโมงรวม
|
|
- ชั่วโมง K
|
|
- ชั่วโมง S
|
|
- ชั่วโมง A
|
|
|
|
3. ตรวจสอบ API ดาวน์โหลด Template:
|
|
- `/api/import-employees/template`
|
|
- ให้ไฟล์ Excel Template ที่ดาวน์โหลด ไม่มีคอลัมน์ชั่วโมงรวม/K/S/A แล้ว
|
|
|
|
4. ตรวจสอบ Logic Parse Excel:
|
|
- ห้ามอ่านค่า `total_hours`
|
|
- ห้ามอ่านค่า `k_hours`
|
|
- ห้ามอ่านค่า `s_hours`
|
|
- ห้ามอ่านค่า `a_hours`
|
|
|
|
5. ตรวจสอบ Validation:
|
|
- ลบ validation ที่บังคับหรือ validate ช่องชั่วโมงรวม/K/S/A
|
|
- ห้ามแจ้ง error หากไฟล์ไม่มีคอลัมน์เหล่านี้
|
|
|
|
6. ตรวจสอบ Import Logic:
|
|
- ห้ามนำค่าชั่วโมงรวม/K/S/A จาก Excel ไป update Employee หรือ Summary โดยตรง
|
|
- Summary ชั่วโมงต้องคำนวณใหม่จาก Training Record จริงเท่านั้น
|
|
|
|
7. ตรวจสอบ UI หน้า `/dashboard/import-employees`:
|
|
- ไม่ต้องแสดงข้อความว่า Import เป้าหมาย K/S/A
|
|
- ปรับข้อความให้เหลือเฉพาะ Import ข้อมูลพนักงานและประวัติการอบรม
|
|
- ไม่ต้องแสดงหัวตารางชั่วโมงรวม/K/S/A ในรายการหัวตาราง Template
|
|
|
|
## ข้อความ UI ที่ต้องการ
|
|
|
|
แก้ข้อความคำอธิบายเป็นประมาณนี้:
|
|
|
|
- อัปโหลดไฟล์ Excel `.xlsx` เพื่อเพิ่มหรืออัปเดตข้อมูลพนักงานและประวัติการอบรม
|
|
- ระบบจะนับรหัสพนักงาน 1 รหัสเป็นพนักงาน 1 คน หากพนักงานมีหลายหลักสูตร ระบบจะสร้างข้อมูลพนักงานเพียง 1 รายการ และบันทึกประวัติการอบรมทุกหลักสูตรเป็น Training Record
|
|
- ระบบจะคำนวณชั่วโมงสรุปจาก Training Record ให้อัตโนมัติ
|
|
|
|
## สิ่งที่ห้ามทำ
|
|
|
|
- ห้ามลบการบันทึก Training Record
|
|
- ห้ามลบ logic การคำนวณ Summary จาก Training Record
|
|
- ห้ามแก้ส่วนอื่นที่ไม่เกี่ยวข้อง
|
|
- ห้ามสร้าง schema/service/component ใหม่ถ้ามีของเดิมอยู่แล้ว
|
|
- ห้ามใช้ค่าชั่วโมงรวม/K/S/A จาก Excel เป็น source of truth
|
|
|
|
## Acceptance Criteria
|
|
|
|
หลังแก้ไขต้องได้ผลลัพธ์ดังนี้:
|
|
|
|
1. Template Import ไม่มีคอลัมน์:
|
|
- ชั่วโมงรวม
|
|
- ชั่วโมง K
|
|
- ชั่วโมง S
|
|
- ชั่วโมง A
|
|
|
|
2. Import ไฟล์ที่ไม่มีคอลัมน์เหล่านี้ได้สำเร็จ
|
|
|
|
3. ระบบยังสร้าง Employee ได้ถูกต้อง:
|
|
- รหัสพนักงานเดียวกัน = Employee 1 รายการ
|
|
|
|
4. ระบบยังสร้าง Training Record ครบทุกแถว
|
|
|
|
5. Summary ชั่วโมงของพนักงานยังถูกคำนวณจาก Training Record จริง
|
|
|
|
6. หน้า `/dashboard/import-employees` แสดงข้อความถูกต้อง และไม่มีข้อความเกี่ยวกับการ Import เป้าหมาย K/S/A
|
|
|
|
7. หลังแก้ไขเสร็จ ให้สรุปใน `report.md` ว่า:
|
|
- แก้ไฟล์ใดบ้าง
|
|
- ลบคอลัมน์ใดออก
|
|
- ปรับ logic ส่วนใด
|
|
- วิธีทดสอบ
|
|
- ผลการทดสอบ
|