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
| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
employee_lists | array | Yes | รายชื่อพนักงานและตารางวันที่แก้ไข (ดูโครงสร้างด้านล่าง) | [...] |
employee_lists[] Structure
| Field | Type | Required | Description | Example |
|---|---|---|---|---|
employee_code | string | Yes | รหัสพนักงานที่ต้องการบันทึกแก้ไข | "EMP001" |
day_lists | array | Yes | รายการวันและกะ/วันหยุดใหม่ที่แก้ไข (ดูโครงสร้างด้านล่าง) | [...] |
employee_lists[].day_lists[] Structure
| Field | Type | Required | Description | Example |
|---|---|---|---|---|
work_date | string | Yes | วันที่ต้องการเปลี่ยนสถานะ (YYYY-MM-DD) | "2026-07-01" |
time_attendance_group_transac_id | string | Yes | รหัสอ้างอิงรายการเวลาประจำวัน (ได้จาก API ค้นหาแบบ Grid) | "20260701ACD8956C44C3" |
work_cycle_id | string | Conditionally | รหัสอ้างอิงกะใหม่ — ต้องส่งคู่กับ work_cycle_code หากเลือกตั้งค่ากะ | "202401083EAE7D1F9711" |
work_cycle_code | string | Conditionally | รหัสย่อกะใหม่ — ต้องส่งคู่กับ work_cycle_id | "M1" |
holiday_flag_lv | string | Conditionally | รหัสสถานะประเภทวัน ("00" = วันทำงาน, "01" = วันหยุดนักขัตฤกษ์, "03" = วันหยุดพนักงาน, "04" = วันหยุดพิเศษ) | "00" |
master_salary_report_id | string | No | รหัสรอบเดือนประมวลผลเงินเดือน | "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
| Field | Type | Nullable | Description |
|---|---|---|---|
status | string | No | สถานะการดำเนินการภาพรวม (เช่น "success") |
employee_lists | array | No | รายชื่อและรายละเอียดผลลัพธ์ของพนักงานแต่ละคน |
payload.employee_lists[]
| Field | Type | Nullable | Description |
|---|---|---|---|
employee_code | string | No | รหัสพนักงานที่ดำเนินการแก้ไข |
day_lists | array | No | รายการวันที่เปลี่ยนแปลงของพนักงานคนนั้น |
payload.employee_lists[].day_lists[]
| Field | Type | Nullable | Description |
|---|---|---|---|
work_date | string | No | วันที่ทำการปรับปรุงกะ/วันหยุด (YYYY-MM-DD) |
time_attendance_group_transac_id | string | No | รหัสอ้างอิงรายการเวลาประจำวัน |
status | string | No | สถานะของวันนั้น: "updated" (อัปเดตใหม่สำเร็จ) หรือ "unchanged" (ไม่มีการเปลี่ยนแปลง) |
old_work_cycle_code | string | Yes | รหัสย่อกะทำงานเดิมก่อนหน้า |
new_work_cycle_code | string | Yes | รหัสย่อกะทำงานใหม่หลังเปลี่ยนสำเร็จ |
old_holiday_flag_lv | string | Yes | รหัสประเภทวันหยุดเดิมก่อนหน้า |
new_holiday_flag_lv | string | Yes | รหัสประเภทวันหยุดใหม่หลังเปลี่ยนสำเร็จ |
Code Examples
cURL
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
| Parameter | Validation |
|---|---|
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"แล้วเกินโควตา (ส่วนวันหยุด)
Related APIs
- Get Work Cycle & Holiday Grid - ดึงข้อมูลกะการทำงานและวันหยุดเพื่อนำ ID มาแก้ไข
- Get Work Cycle Grid - ดึงตารางกะการทำงานของพนักงานตามช่วงเวลา
Last updated on