Skip to Content
🚀 Welcome to Humansoft Open API Documentation

Update Adjust

แก้ไขเอกสารขอเพิ่มเวลาทำงานที่มีอยู่

ใช้ API นี้เพื่อแก้ไขรายละเอียดเอกสารขอเพิ่มเวลา เช่น ประเภทเอกสาร รายการเวลา คำอธิบาย หรือไฟล์แนบ เมื่อแก้ไขสำเร็จ สถานะเอกสารจะถูกตั้งเป็นรออนุมัติ (01)

Endpoint

POST /api/v1/open-apis/time-adjust/update

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

Request Parameters

Required Parameters

ParameterTypeRequiredDescriptionExample
time_adjust_idstringYesรหัสเอกสารที่ต้องการแก้ไข (Base64)MjAyNTExMjdENDU3M0M0MjE2Mzk=
employee_codestringYesรหัสพนักงานเจ้าของเอกสารEMP001
time_adjust_dtstringYesวันที่เอกสาร (YYYY-MM-DD)2026-02-18
time_adjust_flag_lvstringYesประเภทเอกสาร ต้องเป็นประเภทที่เปิดใช้งาน (ดูรายการจาก Get Adjust Types)01
time_adjust_list_dtarrayYesรายการเวลา 1-4 รายการดูตัวอย่างด้านล่าง

Optional Parameters

ParameterTypeDefaultDescriptionExample
time_adjust_descstring""คำอธิบายเพิ่มเติมแก้ไขเวลาตามที่หัวหน้าแนะนำ
extra_roundstring"N"งวดพิเศษ (Y/N) — Y จะข้ามการตรวจสอบงวดเงินเดือนที่ปิดแล้ว ค่าอื่นนอกจาก Y/N จะถือเป็น NN
base64string""ไฟล์แนบ เช่น รูปภาพ (Base64 encoded) — จะแทนที่ไฟล์เดิม หากไม่ส่งจะคงไฟล์เดิมไว้data:image/png;base64,...
authorize_idstringnullID ผู้ทำรายการ (Base64)MjAyNjA0MzBVU0VSMDAwMDAx
language_codestring"TH"ภาษาของข้อความใน message (TH หรือ EN)TH

หา authorize_id ได้อย่างไร: รับค่าจาก Get Employee Data Filter โดยใช้ path_action=get-user พร้อม employee_code ของผู้ทำรายการ — ใช้ค่า user_id ที่ได้กลับมาเป็น authorize_id

time_adjust_list_dt Structure

แต่ละรายการใน array ต้องเป็น object ที่มี field time_adjust_list_dt ในรูปแบบ YYYY-MM-DD HH:MM:SS (สูงสุด 4 รายการ)

[ { "time_adjust_list_dt": "2026-02-18 09:00:00" }, { "time_adjust_list_dt": "2026-02-18 18:00:00" } ]

Request Body Example

{ "time_adjust_id": "MjAyNTExMjdENDU3M0M0MjE2Mzk=", "employee_code": "EMP001", "time_adjust_dt": "2026-02-18", "time_adjust_flag_lv": "01", "time_adjust_desc": "แก้ไขเวลาตามที่หัวหน้าแนะนำ", "extra_round": "N", "time_adjust_list_dt": [ { "time_adjust_list_dt": "2026-02-18 08:30:00" }, { "time_adjust_list_dt": "2026-02-18 17:30:00" } ] }

Response Format

Success Response (HTTP 200)

{ "code": 200, "message": "สำเร็จ", "payload": { "time_adjust_id": "20251127D4573C421639", "employee_code": "EMP001", "time_adjust_dt": "2026-02-18", "time_adjust_flag_lv": "01", "time_adjust_desc": "แก้ไขเวลาตามที่หัวหน้าแนะนำ", "approve_flag": "01", "updated_at": "2026-02-18 16:45:00", "image_url": "https://cdn.humansoft.co.th/.../image/a1B2c3D4e5F6.png" } }

Error Response - Validation Failed (HTTP 422)

{ "code": 422, "message": "Validation failed", "errors": [ "Missing required parameter: 'time_adjust_id'" ] }

ระบบตรวจสอบ parameter ตามลำดับและคืนเฉพาะข้อผิดพลาดแรกที่พบใน errors

Error Response - Document Not Found (HTTP 404)

{ "code": 404, "message": "ไม่พบเอกสาร" }

Error Response - Employee Not Found (HTTP 400)

{ "code": 400, "message": "Employee not found: EMP999" }

Error Response - Salary Period Closed (HTTP 400)

{ "code": 400, "message": "ไม่สามารถเพิ่มข้อมูลได้เนื่องจากปิดงวดเงินเดือนแล้ว" }

Error Response - Cut-off Date Exceeded (HTTP 400)

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

ข้อความใน message ของกรณีไม่พบเอกสาร, งวดเงินเดือนปิด และเกิน Cut-off เป็นภาษาไทยโดยค่าเริ่มต้น ส่ง language_code=EN เพื่อรับข้อความภาษาอังกฤษ

Response Fields

FieldTypeDescription
time_adjust_idstringรหัสเอกสารที่แก้ไข
employee_codestringรหัสพนักงาน
time_adjust_dtstringวันที่เอกสาร
time_adjust_flag_lvstringประเภทเอกสาร
time_adjust_descstringคำอธิบายเพิ่มเติม
approve_flagstringสถานะการอนุมัติ (เป็น 01 = รออนุมัติ เสมอหลังแก้ไข)
updated_atdatetimeวันเวลาที่แก้ไข
image_urlstring | nullURL ของไฟล์แนบ, null หากไม่มีไฟล์แนบ (หากไม่ได้ส่ง base64 จะเป็นไฟล์แนบเดิมของเอกสาร)

Code Examples

curl -X POST "https://openapi.humansoft.co.th/api/v1/open-apis/time-adjust/update" \ -H "Ocp-Apim-Subscription-Key: YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "time_adjust_id": "MjAyNTExMjdENDU3M0M0MjE2Mzk=", "employee_code": "EMP001", "time_adjust_dt": "2026-02-18", "time_adjust_flag_lv": "01", "time_adjust_desc": "แก้ไขเวลาตามที่หัวหน้าแนะนำ", "time_adjust_list_dt": [ { "time_adjust_list_dt": "2026-02-18 08:30:00" }, { "time_adjust_list_dt": "2026-02-18 17:30:00" } ] }'

Validation Rules

ParameterValidationError Message
time_adjust_idต้องระบุและเป็น stringMissing required parameter: 'time_adjust_id', 'time_adjust_id' must be a string
employee_codeต้องระบุและเป็น stringMissing required parameter: 'employee_code', 'employee_code' must be a string
time_adjust_dtต้องระบุ รูปแบบ YYYY-MM-DD และเป็นวันที่ที่มีอยู่จริงMissing required parameter: 'time_adjust_dt', 'time_adjust_dt' must be in format YYYY-MM-DD, 'time_adjust_dt' is not a valid date
time_adjust_flag_lvต้องระบุและเป็นประเภทที่เปิดใช้งานMissing required parameter: 'time_adjust_flag_lv', 'time_adjust_flag_lv' must be one of: 01, 02, ... (แสดงรหัสที่ใช้ได้)
time_adjust_list_dtต้องเป็น array ที่ไม่ว่าง และไม่เกิน 4 รายการMissing required parameter: 'time_adjust_list_dt' (must be a non-empty array), 'time_adjust_list_dt' must not exceed 4 items
time_adjust_list_dt[n].time_adjust_list_dtต้องระบุ และอยู่ในรูปแบบ YYYY-MM-DD HH:MM:SS'time_adjust_list_dt[0].time_adjust_list_dt' is required, 'time_adjust_list_dt[0].time_adjust_list_dt' must be in format YYYY-MM-DD HH:MM:SS
time_adjust_descถ้าส่ง ต้องเป็น string'time_adjust_desc' must be a string
base64ถ้าส่ง ต้องเป็น string'base64' must be a string

Business Rules

ข้อจำกัดการแก้ไข:

  • ไม่สามารถแก้ไขเอกสารที่ถูกลบไปแล้ว (HTTP 404)
  • ไม่สามารถแก้ไขในงวดเงินเดือนที่ปิดแล้ว ยกเว้นส่ง extra_round=Y หรือวันที่เอกสารอยู่ในรอบ OT หรือรอบเวลาทำงานที่ยังเปิดอยู่
  • หากองค์กรเปิดใช้การกำหนดวันส่งเอกสาร (Cut-off) จะไม่สามารถแก้ไขเอกสารของงวดที่เลยกำหนดแล้ว ผู้ที่ได้รับการยกเว้น (เช่น HR) ขึ้นอยู่กับการตั้งค่าขององค์กร
  • ระบบไม่ได้ตรวจสอบสถานะการอนุมัติก่อนแก้ไข หากแก้ไขเอกสารที่อนุมัติหรือไม่อนุมัติไปแล้ว สถานะจะถูกตั้งกลับเป็น 01 (รออนุมัติ)
  • ระบบไม่ได้ตรวจสอบว่า employee_code ตรงกับเจ้าของเอกสารเดิม และจะบันทึกเอกสารเป็นของพนักงานตาม employee_code ที่ส่งมา ต้องส่ง employee_code ของเจ้าของเอกสารทุกครั้ง

การแทนที่รายการเวลา (Full Replace)

ระบบจะ แทนที่รายการเวลาทั้งหมด ทุกครั้งที่แก้ไข โดยจะลบรายการเดิมทั้งหมดและเพิ่มรายการใหม่ตามที่ส่งมา ไม่ได้รวมกับรายการเดิม ดังนั้นต้องส่งรายการเวลาครบทั้งหมดที่ต้องการในทุกครั้ง

รายการเวลา

  • รายการเวลาต้องมี 1-4 รายการ ต่อเอกสาร
  • ถ้าส่งเกิน 4 รายการ ระบบจะปฏิเสธคำขอ (HTTP 422)

ไฟล์แนบ

  • ถ้าส่ง base64 ใหม่ ระบบจะแทนที่ไฟล์เดิม
  • ถ้าไม่ส่ง base64 ระบบจะคงไฟล์แนบเดิมไว้ (ไม่สามารถลบไฟล์แนบผ่าน API นี้)
  • ไม่สามารถกำหนด URL ของไฟล์แนบเองได้ ต้องส่งไฟล์ผ่าน base64 เท่านั้น
  • image_url ใน response คือไฟล์แนบของเอกสารหลังแก้ไข

Error Handling

ErrorCauseSolution
Missing required parameter: 'time_adjust_id'ไม่ได้ส่ง time_adjust_idตรวจสอบ request body
Missing required parameter: 'employee_code'ไม่ได้ส่ง employee_codeตรวจสอบ request body
Employee not found: XXXไม่พบพนักงานตรวจสอบ employee_code
ไม่พบเอกสาร (HTTP 404)ไม่พบเอกสาร หรือเอกสารถูกลบไปแล้วตรวจสอบ time_adjust_id (ต้องเข้ารหัส Base64)
ไม่สามารถเพิ่มข้อมูลได้เนื่องจากปิดงวดเงินเดือนแล้วงวดเงินเดือนปิดแล้วใช้ extra_round=Y หรือติดต่อ HR
ไม่สามารถแก้ไขเอกสารได้เนื่องจากเกินกำหนดเวลาที่ร้องขอแล้วเกินกำหนดวันส่งเอกสาร (Cut-off)ติดต่อ HR
'time_adjust_list_dt' must not exceed 4 itemsส่งรายการเวลาเกิน 4 รายการส่ง array 1-4 รายการ

Notes

Use Cases

  1. แก้ไขรายการเวลา - เปลี่ยนเวลาเข้า-ออกงานที่ขอเพิ่ม
  2. เปลี่ยนประเภทเอกสาร - เปลี่ยน time_adjust_flag_lv เป็นประเภทอื่นที่เปิดใช้งาน
  3. เพิ่มรายละเอียด - อัพเดทคำอธิบายเพิ่มเติม
  4. เปลี่ยนไฟล์แนบ - แทนที่ไฟล์หลักฐานด้วยไฟล์ใหม่

ข้อควรระวัง

  • ต้องส่ง time_adjust_list_dt ครบทุกรายการที่ต้องการ เพราะระบบจะแทนที่ทั้งหมด
  • หากต้องการคงรายการเวลาเดิม ให้ดึงข้อมูลจาก Get Adjust Detail (field time_adjust_list) แล้วส่งกลับมาพร้อมการแก้ไข
  • Get Adjust Detail - ดึงรายละเอียดเอกสารขอเพิ่มเวลา
  • Submit Adjust - ยื่นเอกสารขอเพิ่มเวลาใหม่
  • Delete Adjust - ลบเอกสารขอเพิ่มเวลา
  • Get Adjust Types - ดึงรายการประเภทการขอเพิ่มเวลา
Last updated on