commit
This commit is contained in:
90
plans/extract-total-hours.md
Normal file
90
plans/extract-total-hours.md
Normal file
@@ -0,0 +1,90 @@
|
||||
# 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 ส่วนใด
|
||||
- วิธีทดสอบ
|
||||
- ผลการทดสอบ
|
||||
Reference in New Issue
Block a user