Skip to Content
🚀 Welcome to Humansoft Open API Documentation

Save Work Cycle & Holiday Grid

บันทึกการแก้ไขกะการทำงานและวันหยุดของพนักงานแบบ Grid ทีละหลายคนพร้อมกันในรอบช่วงเวลาที่กำหนด

ใช้ API นี้เพื่อบันทึกกะการทำงานและ/หรือสถานะวันหยุดที่แก้ไขบนตาราง Grid โดยนำ time_attendance_group_transac_id และ work_cycle_id ที่ได้จาก Get Work Cycle & Holiday Grid มาใช้ต่อโดยตรง — แต่ละวันสามารถกำหนดกะใหม่ หรือกำหนดสถานะวันหยุด หรือทั้งสองอย่างพร้อมกันได้

Endpoint

POST /api/v1/open-apis/time-manage/edit-work-cycle-holiday-multiple

สิทธิ์ที่ต้องการ: API Key ต้องมีสิทธิ์ ข้อมูลการยื่นเอกสาร (document:manage)

Request Parameters

Required Parameters

ParameterTypeRequiredDescriptionExample
employee_listsarrayYesรายชื่อพนักงานและตารางวันที่แก้ไข (ดูโครงสร้างด้านล่าง)[...]

employee_lists[] Structure

FieldTypeRequiredDescriptionExample
employee_codestringYesรหัสพนักงานที่ต้องการบันทึกแก้ไข"EMP001"
day_listsarrayYesรายการวันและกะ/วันหยุดใหม่ที่แก้ไข (ดูโครงสร้างด้านล่าง)[...]

employee_lists[].day_lists[] Structure

FieldTypeRequiredDescriptionExample
work_datestringYesวันที่ต้องการเปลี่ยนสถานะ (YYYY-MM-DD)"2026-07-01"
time_attendance_group_transac_idstringYesรหัสอ้างอิงรายการเวลาประจำวัน (ได้จาก API ค้นหาแบบ Grid)"20260701ACD8956C44C3"
work_cycle_idstringConditionallyรหัสอ้างอิงกะใหม่ — ต้องส่งคู่กับ work_cycle_code หากเลือกตั้งค่ากะ"202401083EAE7D1F9711"
work_cycle_codestringConditionallyรหัสย่อกะใหม่ — ต้องส่งคู่กับ work_cycle_id"M1"
holiday_flag_lvstringConditionallyรหัสสถานะประเภทวัน ("00" = วันทำงาน, "01" = วันหยุดนักขัตฤกษ์, "03" = วันหยุดพนักงาน, "04" = วันหยุดพิเศษ)"00"
master_salary_report_idstringNoรหัสรอบเดือนประมวลผลเงินเดือน"202607286709D2934361"

Request Body Example

{ "employee_lists": [ { "employee_code": "EMP001", "day_lists": [ { "work_date": "2026-07-01", "time_attendance_group_transac_id": "20260701ACD8956C44C3", "work_cycle_id": "202401083EAE7D1F9711", "work_cycle_code": "M1", "holiday_flag_lv": "00", "master_salary_report_id": "202607286709D2934361" } ] } ] }

Response Format

Success Response (HTTP 200)

{ "code": 200, "message": "Edit Work Cycle Holiday Multiple Accept", "payload": { "status": "success", "employee_lists": [ { "employee_code": "EMP001", "day_lists": [ { "work_date": "2026-07-01", "time_attendance_group_transac_id": "20260701ACD8956C44C3", "status": "updated", "old_work_cycle_code": "N1", "new_work_cycle_code": "M1", "old_holiday_flag_lv": "03", "new_holiday_flag_lv": "00" } ] } ] } }

Error Response - Validation Failed (HTTP 400)

{ "code": 400, "message": "ไม่สำเร็จ", "errors": [ "employee_lists[0].day_lists[0]: Please specify either 'work_cycle_id'+'work_cycle_code' or 'holiday_flag_lv'", "employee_lists[0].day_lists[1]: Invalid 'work_cycle_id' (202504083EAE7D1F9711) - not found in the system" ] }

Error Response - Closed Payroll (HTTP 400)

{ "code": 400, "message": "ไม่สามารถแก้ไขเอกสารได้เนื่องจากเกินกำหนดเวลาที่ร้องขอแล้ว", "errors": [] }

Error Response - Unauthorized (HTTP 401)

{ "statusCode": 401, "message": "Access denied due to invalid subscription key. Make sure to provide a valid key for an active subscription." }

Response Fields

payload

FieldTypeNullableDescription
statusstringNoสถานะการดำเนินการภาพรวม (เช่น "success")
employee_listsarrayNoรายชื่อและรายละเอียดผลลัพธ์ของพนักงานแต่ละคน

payload.employee_lists[]

FieldTypeNullableDescription
employee_codestringNoรหัสพนักงานที่ดำเนินการแก้ไข
day_listsarrayNoรายการวันที่เปลี่ยนแปลงของพนักงานคนนั้น

payload.employee_lists[].day_lists[]

FieldTypeNullableDescription
work_datestringNoวันที่ทำการปรับปรุงกะ/วันหยุด (YYYY-MM-DD)
time_attendance_group_transac_idstringNoรหัสอ้างอิงรายการเวลาประจำวัน
statusstringNoสถานะของวันนั้น: "updated" (อัปเดตใหม่สำเร็จ) หรือ "unchanged" (ไม่มีการเปลี่ยนแปลง)
old_work_cycle_codestringYesรหัสย่อกะทำงานเดิมก่อนหน้า
new_work_cycle_codestringYesรหัสย่อกะทำงานใหม่หลังเปลี่ยนสำเร็จ
old_holiday_flag_lvstringYesรหัสประเภทวันหยุดเดิมก่อนหน้า
new_holiday_flag_lvstringYesรหัสประเภทวันหยุดใหม่หลังเปลี่ยนสำเร็จ

Code Examples

curl -X POST "https://openapi.humansoft.co.th/api/v1/open-apis/time-manage/edit-work-cycle-holiday-multiple" \ -H "Ocp-Apim-Subscription-Key: YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "employee_lists": [ { "employee_code": "EMP001", "day_lists": [ { "work_date": "2026-07-01", "time_attendance_group_transac_id": "20260701ACD8956C44C3", "work_cycle_id": "202401083EAE7D1F9711", "work_cycle_code": "M1", "holiday_flag_lv": "00", "master_salary_report_id": "202607286709D2934361" } ] } ] }'

Validation Rules

ParameterValidation
employee_listsต้องส่งอาร์เรย์รายการพนักงานที่ต้องการแก้ไขเข้ามา
employee_code / day_listsสมาชิกแต่ละคนใน employee_lists ต้องมีรหัสพนักงานและรายการรายวัน
work_date / time_attendance_group_transac_idทุกวันใน day_lists ต้องระบุวันที่และรหัสอ้างอิงรายการเวลาเดิม
กะและวันหยุดต้องกรอกอย่างน้อยหนึ่งอย่างระหว่าง work_cycle_id + work_cycle_code หรือ holiday_flag_lv — หากกรอกข้อมูลกะ ต้องกรอกให้ครบทั้ง ID และ Code
time_attendance_group_transac_id / work_cycle_idต้องเป็นค่าที่มีอยู่จริงในระบบ ไม่เช่นนั้นจะถูกปฏิเสธ

Business Rules

  • แต่ละวันใน day_lists ต้องระบุอย่างน้อยหนึ่งอย่าง: ข้อมูลกะ (work_cycle_id + work_cycle_code ต้องมาคู่กัน) หรือสถานะวันหยุด (holiday_flag_lv) — สามารถส่งทั้งสองอย่างพร้อมกันได้
  • time_attendance_group_transac_id และ work_cycle_id ให้นำมาจาก Get Work Cycle & Holiday Grid โดยตรง — ห้ามสร้างค่าขึ้นเอง
  • วันที่ผ่านกำหนดเวลาส่งข้อมูลหรือปิดงวดแล้วจะไม่สามารถแก้ไขได้ และระบบจะปฏิเสธคำขอเฉพาะพนักงานคนนั้นทันที
  • วันที่ไม่มีการเปลี่ยนแปลงจริงจะมี status เป็น "unchanged"
  • ระบบตรวจแยกส่วนกะและส่วนวันหยุด บางกรณีจะข้ามเฉพาะส่วนนั้นแบบเงียบ (คืน status: "unchanged" โดยไม่แจ้ง error) โดยอีกส่วนยังอัปเดตได้ตามปกติ เช่น วันนั้นมี OT ที่อนุมัติแล้ว, มีเอกสาร Workforce Activity ครอบคลุมวันนั้น (ส่วนกะ) หรือเปลี่ยนวันหยุดเป็น "04" แล้วเกินโควตา (ส่วนวันหยุด)
  • Get Work Cycle & Holiday Grid - ดึงข้อมูลกะการทำงานและวันหยุดเพื่อนำ ID มาแก้ไข
  • Get Work Cycle Grid - ดึงตารางกะการทำงานของพนักงานตามช่วงเวลา
Last updated on