Update Change Request
แก้ไขคำขอเปลี่ยนกะที่มีอยู่
ใช้ API นี้เพื่อแก้ไขรายละเอียดคำขอเปลี่ยนกะ เช่น เปลี่ยนกะใหม่ หรือเพิ่มเหตุผล
Endpoint
POST /api/v1/open-apis/work-cycle-change/updateสิทธิ์ที่ต้องการ: API Key ต้องมีสิทธิ์ ข้อมูลการยื่นเอกสาร (document:manage)
Request Parameters
Required Parameters
| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
work_cycle_change_id | string | Yes | ID ของคำขอที่ต้องการแก้ไข (Base64) | MjAyNTExMjdENDU3M0M0MjE2Mzk= |
Optional Parameters
| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
work_cycle_change_dt | string | No | วันที่เปลี่ยนกะใหม่ (YYYY-MM-DD) | 2026-01-21 |
work_cycle_mode_lv | string | No | โหมดใหม่ (change, switch) | change |
work_cycle_id | string | No | ID กะใหม่ (Base64) | MjAyNTExMjdENDU3M0M0MjE2Mzk= |
work_cycle_switch_dt | string | No | วันที่สลับกะ (YYYY-MM-DD) สำหรับโหมด switch | 2026-01-21 |
switch_work_cycle_id_from | string | No | ID กะเดิม สำหรับโหมด switch — ส่งเป็นค่า raw (ไม่ต้องเข้ารหัส Base64) | 20251127D4573C421639 |
switch_work_cycle_id_to | string | No | ID กะที่สลับไป สำหรับโหมด switch — ส่งเป็นค่า raw (ไม่ต้องเข้ารหัส Base64) | 20251127D4573C421639 |
work_cycle_change_desc | string | No | เหตุผล/รายละเอียดใหม่ | แก้ไขเหตุผล |
image_content | string | No | ไฟล์แนบใหม่ (Base64) แทนที่ไฟล์แนบเดิม | data:image/png;base64,... |
authorize_id | string | No | ID ผู้ทำรายการ (Base64) | MjAyNjA0MzBVU0VSMDAwMDAx |
หา authorize_id ได้อย่างไร: รับค่าจาก Get Employee Data Filter โดยใช้ path_action=get-user พร้อม employee_code ของผู้ทำรายการ — ใช้ค่า user_id ที่ได้กลับมาเป็น authorize_id
Request Body Example
{
"work_cycle_change_id": "MjAyNTExMjdENDU3M0M0MjE2Mzk=",
"work_cycle_id": "MjAyNTExMjdENDU3M0M0MjE2Mzk=",
"work_cycle_change_desc": "เปลี่ยนเป็นกะ C แทน"
}Response Format
Success Response (HTTP 200)
{
"code": 200,
"message": "Success",
"payload": {
"work_cycle_change_id": "20251127D4573C421639",
"employee_id": "20251127D4573C421639",
"employee_code": "EMP001",
"work_cycle_change_dt": "2026-01-20",
"work_cycle_mode_lv": "change",
"work_cycle_id": "20251127D4573C421639",
"work_cycle_code": "C",
"work_cycle_switch_dt": null,
"switch_work_cycle_id_from": null,
"switch_work_cycle_id_to": null,
"work_cycle_change_desc": "เปลี่ยนเป็นกะ C แทน",
"approve_flag": "01",
"approve_id": "20251127D4573C421639",
"approve_upd": "2026-01-15 09:00:00",
"approve_remark": "",
"created": "2026-01-14 10:30:00",
"last_upd": "2026-01-15 09:00:00",
"image_url": "https://cdn.humansoft.co.th/.../image/a1B2c3D4e5F6.png"
}
}Error Response - Validation Failed (HTTP 400)
{
"code": 400,
"message": "Validation failed",
"errors": [
"Missing required parameter: 'work_cycle_change_id'"
]
}Error Response - Not Found (HTTP 400)
{
"code": 400,
"message": "Document associated with 'work_cycle_change_id' not found"
}Error Response - Already Approved (HTTP 400)
{
"code": 400,
"message": "ไม่สามารถแก้ไขเอกสารที่อนุมัติแล้ว"
}Error Response - Salary Period Closed (HTTP 400)
{
"code": 400,
"message": "ไม่สามารถเพิ่มข้อมูลได้เนื่องจากปิดงวดเงินเดือนแล้ว"
}ข้อความ error ที่เป็นภาษาไทยจะแสดงเป็นภาษาอังกฤษเมื่อส่ง language_code = EN เช่น ไม่สามารถแก้ไขเอกสารที่อนุมัติแล้ว → Cannot edit approved documents
Response Fields
| Field | Type | Description |
|---|---|---|
work_cycle_change_id | string | ID ของคำขอเปลี่ยนกะ |
employee_id | string | ID ของพนักงาน |
employee_code | string | รหัสพนักงาน |
work_cycle_change_dt | string | วันที่เปลี่ยนกะ (YYYY-MM-DD) |
work_cycle_mode_lv | string | โหมด (change, switch) |
work_cycle_id | string | ID ของกะที่เปลี่ยนไป |
work_cycle_code | string | รหัสกะ |
work_cycle_switch_dt | string | null | วันที่สลับกะ (ใช้กับโหมด switch) |
switch_work_cycle_id_from | string | null | ID กะเดิม (ใช้กับโหมด switch) |
switch_work_cycle_id_to | string | null | ID กะที่สลับไป (ใช้กับโหมด switch) |
work_cycle_change_desc | string | เหตุผล/รายละเอียด |
approve_flag | string | รหัสสถานะอนุมัติ — หลังแก้ไขจะเป็น 01 (รออนุมัติ) |
approve_id | string | user_id ของผู้ทำรายการล่าสุด (ผู้ยื่น/แก้ไขคำขอ หรือผู้อนุมัติ) |
approve_upd | datetime | วันเวลาที่ปรับสถานะล่าสุด (ยื่น/แก้ไข/อนุมัติ) |
approve_remark | string | หมายเหตุการอนุมัติ |
created | datetime | วันเวลาที่สร้าง |
last_upd | datetime | วันเวลาที่แก้ไขล่าสุด |
image_url | string | null | URL ของไฟล์แนบ, null หากไม่มีไฟล์แนบ — หากไม่ได้ส่ง image_content จะเป็นไฟล์แนบเดิมของคำขอ |
Code Examples
cURL
curl -X POST "https://openapi.humansoft.co.th/api/v1/open-apis/work-cycle-change/update" \
-H "Ocp-Apim-Subscription-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"work_cycle_change_id": "MjAyNTExMjdENDU3M0M0MjE2Mzk=",
"work_cycle_id": "MjAyNTExMjdENDU3M0M0MjE2Mzk=",
"work_cycle_change_desc": "เปลี่ยนเป็นกะ C แทน"
}'Validation Rules
| Parameter | Validation | Error Message |
|---|---|---|
work_cycle_change_id | ต้องระบุ | Missing required parameter: 'work_cycle_change_id' |
work_cycle_change_id | ต้องมีอยู่ในระบบ | Document associated with 'work_cycle_change_id' not found |
work_cycle_change_dt | รูปแบบ YYYY-MM-DD (ถ้าระบุ) | 'work_cycle_change_dt' must be in Y-m-d format (e.g., 2024-01-15) |
work_cycle_mode_lv | ต้องเป็น change หรือ switch (ถ้าระบุ) | 'work_cycle_mode_lv' must be 'change' or 'switch' |
work_cycle_change_desc | ต้องเป็น string (ถ้าระบุ) | 'work_cycle_change_desc' must be a string |
image_content | ต้องเป็น string (ถ้าระบุ) | 'image_content' must be a string |
Business Rules
ข้อจำกัดการแก้ไข:
- ไม่สามารถแก้ไขคำขอที่อนุมัติแล้ว (
approve_flag=02) - หลังแก้ไข สถานะคำขอจะกลับเป็น
01(รออนุมัติ) ทุกครั้ง รวมถึงคำขอที่อยู่ระหว่างอนุมัติ (04-08) ส่งกลับตรวจสอบ (05) หรือไม่อนุมัติ (03) - ไม่สามารถแก้ไขได้หากงวดเงินเดือนของวันที่ในคำขอปิดแล้ว
- ตรวจ cut-off date ตามการตั้งค่า cut-off ของเอกสารเปลี่ยนกะขององค์กร
- ไม่สามารถบันทึกได้หากพนักงานมีคำขอเปลี่ยนกะอื่นในวันเดียวกัน (ไม่นับคำขอที่ไม่อนุมัติ
03)
Error Handling
| Error | Cause | Solution |
|---|---|---|
Missing required parameter: 'work_cycle_change_id' | ไม่ได้ส่ง work_cycle_change_id | ตรวจสอบ request body |
Document associated with 'work_cycle_change_id' not found | ไม่พบคำขอ | ตรวจสอบ work_cycle_change_id (ต้องเข้ารหัส Base64) |
ไม่สามารถแก้ไขเอกสารที่อนุมัติแล้ว | คำขออนุมัติแล้ว | ไม่สามารถแก้ไขได้ |
ไม่สามารถเพิ่มข้อมูลได้เนื่องจากปิดงวดเงินเดือนแล้ว | งวดเงินเดือนปิดแล้ว | ติดต่อ HR |
ไม่สามารถแก้ไขเอกสารได้เนื่องจากเกินกำหนดเวลาที่ร้องขอแล้ว | เกิน Cut-off date | ติดต่อ HR |
ไม่สามารถบันทึกได้ เพราะได้มีการขอเอกสารทับซ้อนกับที่ขอมาก่อนหน้าแล้ว!! | มีคำขอเปลี่ยนกะอื่นของพนักงานในวันเดียวกัน | ตรวจสอบวันที่ |
Notes
Use Cases
- แก้ไขกะที่ต้องการ - เปลี่ยนจากกะ B เป็นกะ C
- เพิ่มเหตุผล - อัพเดทรายละเอียด
- เปลี่ยนวันที่ - แก้ไขวันที่เปลี่ยนกะ
Partial Update
- สามารถส่งเฉพาะ field ที่ต้องการแก้ไข
- field ที่ไม่ได้ส่งจะคงค่าเดิม ยกเว้นสถานะอนุมัติที่จะกลับเป็น
01ทุกครั้ง - ไม่สามารถเปลี่ยนพนักงานเจ้าของคำขอได้
- หากไม่ส่ง
image_contentไฟล์แนบเดิมจะยังคงอยู่ และimage_urlใน response จะเป็น URL ของไฟล์แนบเดิม - เมื่อเปลี่ยน
work_cycle_mode_lvเป็นswitchควรส่งwork_cycle_switch_dt,switch_work_cycle_id_fromและswitch_work_cycle_id_toมาด้วย เนื่องจาก API นี้ไม่ได้บังคับ field เหล่านี้
หา work_cycle_change_id
- ใช้ Get Change List เพื่อดู
work_cycle_change_idแล้วเข้ารหัส Base64 ก่อนส่ง
Related APIs
- Get Change List - ดูรายการคำขอ
- Submit Change Request - ยื่นคำขอใหม่
- Delete Change Request - ลบคำขอ
Last updated on