Update Adjust
แก้ไขเอกสารขอเพิ่มเวลาทำงานที่มีอยู่
ใช้ API นี้เพื่อแก้ไขรายละเอียดเอกสารขอเพิ่มเวลา เช่น ประเภทเอกสาร รายการเวลา คำอธิบาย หรือไฟล์แนบ เมื่อแก้ไขสำเร็จ สถานะเอกสารจะถูกตั้งเป็นรออนุมัติ (01)
Endpoint
POST /api/v1/open-apis/time-adjust/updateสิทธิ์ที่ต้องการ: API Key ต้องมีสิทธิ์ ข้อมูลการยื่นเอกสาร (document:manage)
Request Parameters
Required Parameters
| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
time_adjust_id | string | Yes | รหัสเอกสารที่ต้องการแก้ไข (Base64) | MjAyNTExMjdENDU3M0M0MjE2Mzk= |
employee_code | string | Yes | รหัสพนักงานเจ้าของเอกสาร | EMP001 |
time_adjust_dt | string | Yes | วันที่เอกสาร (YYYY-MM-DD) | 2026-02-18 |
time_adjust_flag_lv | string | Yes | ประเภทเอกสาร ต้องเป็นประเภทที่เปิดใช้งาน (ดูรายการจาก Get Adjust Types) | 01 |
time_adjust_list_dt | array | Yes | รายการเวลา 1-4 รายการ | ดูตัวอย่างด้านล่าง |
Optional Parameters
| Parameter | Type | Default | Description | Example |
|---|---|---|---|---|
time_adjust_desc | string | "" | คำอธิบายเพิ่มเติม | แก้ไขเวลาตามที่หัวหน้าแนะนำ |
extra_round | string | "N" | งวดพิเศษ (Y/N) — Y จะข้ามการตรวจสอบงวดเงินเดือนที่ปิดแล้ว ค่าอื่นนอกจาก Y/N จะถือเป็น N | N |
base64 | string | "" | ไฟล์แนบ เช่น รูปภาพ (Base64 encoded) — จะแทนที่ไฟล์เดิม หากไม่ส่งจะคงไฟล์เดิมไว้ | data:image/png;base64,... |
authorize_id | string | null | ID ผู้ทำรายการ (Base64) | MjAyNjA0MzBVU0VSMDAwMDAx |
language_code | string | "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
| Field | Type | Description |
|---|---|---|
time_adjust_id | string | รหัสเอกสารที่แก้ไข |
employee_code | string | รหัสพนักงาน |
time_adjust_dt | string | วันที่เอกสาร |
time_adjust_flag_lv | string | ประเภทเอกสาร |
time_adjust_desc | string | คำอธิบายเพิ่มเติม |
approve_flag | string | สถานะการอนุมัติ (เป็น 01 = รออนุมัติ เสมอหลังแก้ไข) |
updated_at | datetime | วันเวลาที่แก้ไข |
image_url | string | null | URL ของไฟล์แนบ, null หากไม่มีไฟล์แนบ (หากไม่ได้ส่ง base64 จะเป็นไฟล์แนบเดิมของเอกสาร) |
Code Examples
cURL
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
| Parameter | Validation | Error Message |
|---|---|---|
time_adjust_id | ต้องระบุและเป็น string | Missing required parameter: 'time_adjust_id', 'time_adjust_id' must be a string |
employee_code | ต้องระบุและเป็น string | Missing 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
| Error | Cause | Solution |
|---|---|---|
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
- แก้ไขรายการเวลา - เปลี่ยนเวลาเข้า-ออกงานที่ขอเพิ่ม
- เปลี่ยนประเภทเอกสาร - เปลี่ยน
time_adjust_flag_lvเป็นประเภทอื่นที่เปิดใช้งาน - เพิ่มรายละเอียด - อัพเดทคำอธิบายเพิ่มเติม
- เปลี่ยนไฟล์แนบ - แทนที่ไฟล์หลักฐานด้วยไฟล์ใหม่
ข้อควรระวัง
- ต้องส่ง
time_adjust_list_dtครบทุกรายการที่ต้องการ เพราะระบบจะแทนที่ทั้งหมด - หากต้องการคงรายการเวลาเดิม ให้ดึงข้อมูลจาก Get Adjust Detail (field
time_adjust_list) แล้วส่งกลับมาพร้อมการแก้ไข
Related APIs
- Get Adjust Detail - ดึงรายละเอียดเอกสารขอเพิ่มเวลา
- Submit Adjust - ยื่นเอกสารขอเพิ่มเวลาใหม่
- Delete Adjust - ลบเอกสารขอเพิ่มเวลา
- Get Adjust Types - ดึงรายการประเภทการขอเพิ่มเวลา