Skip to Content
🚀 Welcome to Humansoft Open API Documentation

Update Change Request

แก้ไขคำขอเปลี่ยนกะที่มีอยู่

ใช้ API นี้เพื่อแก้ไขรายละเอียดคำขอเปลี่ยนกะ เช่น เปลี่ยนกะใหม่ หรือเพิ่มเหตุผล

Endpoint

POST /api/v1/open-apis/work-cycle-change/update

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

Request Parameters

Required Parameters

ParameterTypeRequiredDescriptionExample
work_cycle_change_idstringYesID ของคำขอที่ต้องการแก้ไข (Base64)MjAyNTExMjdENDU3M0M0MjE2Mzk=

Optional Parameters

ParameterTypeRequiredDescriptionExample
work_cycle_change_dtstringNoวันที่เปลี่ยนกะใหม่ (YYYY-MM-DD)2026-01-21
work_cycle_mode_lvstringNoโหมดใหม่ (change, switch)change
work_cycle_idstringNoID กะใหม่ (Base64)MjAyNTExMjdENDU3M0M0MjE2Mzk=
work_cycle_switch_dtstringNoวันที่สลับกะ (YYYY-MM-DD) สำหรับโหมด switch2026-01-21
switch_work_cycle_id_fromstringNoID กะเดิม สำหรับโหมด switch — ส่งเป็นค่า raw (ไม่ต้องเข้ารหัส Base64)20251127D4573C421639
switch_work_cycle_id_tostringNoID กะที่สลับไป สำหรับโหมด switch — ส่งเป็นค่า raw (ไม่ต้องเข้ารหัส Base64)20251127D4573C421639
work_cycle_change_descstringNoเหตุผล/รายละเอียดใหม่แก้ไขเหตุผล
image_contentstringNoไฟล์แนบใหม่ (Base64) แทนที่ไฟล์แนบเดิมdata:image/png;base64,...
authorize_idstringNoID ผู้ทำรายการ (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

FieldTypeDescription
work_cycle_change_idstringID ของคำขอเปลี่ยนกะ
employee_idstringID ของพนักงาน
employee_codestringรหัสพนักงาน
work_cycle_change_dtstringวันที่เปลี่ยนกะ (YYYY-MM-DD)
work_cycle_mode_lvstringโหมด (change, switch)
work_cycle_idstringID ของกะที่เปลี่ยนไป
work_cycle_codestringรหัสกะ
work_cycle_switch_dtstring | nullวันที่สลับกะ (ใช้กับโหมด switch)
switch_work_cycle_id_fromstring | nullID กะเดิม (ใช้กับโหมด switch)
switch_work_cycle_id_tostring | nullID กะที่สลับไป (ใช้กับโหมด switch)
work_cycle_change_descstringเหตุผล/รายละเอียด
approve_flagstringรหัสสถานะอนุมัติ — หลังแก้ไขจะเป็น 01 (รออนุมัติ)
approve_idstringuser_id ของผู้ทำรายการล่าสุด (ผู้ยื่น/แก้ไขคำขอ หรือผู้อนุมัติ)
approve_upddatetimeวันเวลาที่ปรับสถานะล่าสุด (ยื่น/แก้ไข/อนุมัติ)
approve_remarkstringหมายเหตุการอนุมัติ
createddatetimeวันเวลาที่สร้าง
last_upddatetimeวันเวลาที่แก้ไขล่าสุด
image_urlstring | nullURL ของไฟล์แนบ, null หากไม่มีไฟล์แนบ — หากไม่ได้ส่ง image_content จะเป็นไฟล์แนบเดิมของคำขอ

Code Examples

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

ParameterValidationError 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

ErrorCauseSolution
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

  1. แก้ไขกะที่ต้องการ - เปลี่ยนจากกะ B เป็นกะ C
  2. เพิ่มเหตุผล - อัพเดทรายละเอียด
  3. เปลี่ยนวันที่ - แก้ไขวันที่เปลี่ยนกะ

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 ก่อนส่ง
Last updated on