Update Holiday Change
แก้ไขคำขอเปลี่ยนวันหยุดที่ยังไม่ได้รับการอนุมัติ
ใช้ API นี้เพื่อแก้ไขคำขอเปลี่ยนวันหยุดที่อยู่ในสถานะ Pending หรือ Recheck เท่านั้น ไม่สามารถแก้ไขคำขอที่อนุมัติแล้วได้
Endpoint
POST /api/v1/open-apis/holiday-change/updateRequest Parameters
Required Parameters
| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
holiday_change_id | string | Yes | ID ของคำขอที่ต้องการแก้ไข | SENIMDAxMjM= |
employee_code | string | Yes | รหัสพนักงาน | EMP001 |
holiday_change_dt | string | Yes | วันที่ต้องการเปลี่ยน (Y-m-d) | 2026-01-15 |
holiday_flag_lv | string | Yes | ประเภทวันหยุดที่ต้องการเปลี่ยนเป็น | 00 |
Optional Parameters
| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
holiday_change_desc | string | No | เหตุผลการเปลี่ยน | แก้ไข: ต้องประชุมลูกค้า |
image_content | string | No | รูปภาพ (Base64 encoded) | data:image/png;base64,... |
Holiday Flag Values
| Code | ประเภท | Description |
|---|---|---|
00 | วันทำงาน | Workday |
01 | วันหยุดนักขัตฤกษ์ | Public Holiday |
03 | วันหยุดพนักงาน | Employee Holiday |
04 | วันหยุดพิเศษ | Special Holiday (ใช้โควตาลาพักร้อน) |
Request Body Example
{
"holiday_change_id": "SENIMDAxMjM=",
"employee_code": "EMP001",
"holiday_change_dt": "2026-01-15",
"holiday_flag_lv": "00",
"holiday_change_desc": "แก้ไข: ต้องประชุมลูกค้า"
}Response Format
Success Response (HTTP 200)
{
"code": 200,
"message": "สำเร็จ",
"payload": {
"holiday_change_id": "SENIMDAxMjM=",
"employee_id": "RU1QMDE=",
"employee_code": "EMP001",
"holiday_change_dt": "2026-01-15",
"holiday_flag_lv": "00",
"holiday_change_desc": "แก้ไข: ต้องประชุมลูกค้า",
"approve_flag": "01",
"updated_at": "2026-01-13 11:00:00"
}
}Error Response - Document Not Found (HTTP 400)
{
"code": 400,
"message": "ไม่สำเร็จ",
"error": "Holiday change document not found: SENIMDAxMjM="
}Error Response - Cannot Edit Approved (HTTP 400)
{
"code": 400,
"message": "ไม่สำเร็จ",
"error": "ไม่สามารถแก้ไขเอกสารที่อนุมัติแล้ว"
}Error Response - Wrong Owner (HTTP 400)
{
"code": 400,
"message": "ไม่สำเร็จ",
"error": "Holiday change document does not belong to this employee"
}Response Fields
| Field | Type | Description |
|---|---|---|
holiday_change_id | string | ID ของคำขอ |
employee_id | string | ID ของพนักงาน |
employee_code | string | รหัสพนักงาน |
holiday_change_dt | string | วันที่เปลี่ยน |
holiday_flag_lv | string | ประเภทวันหยุด |
holiday_change_desc | string | เหตุผลการเปลี่ยน |
approve_flag | string | สถานะการอนุมัติ (รีเซ็ตเป็น 01 = Pending) |
updated_at | datetime | วันเวลาที่แก้ไขล่าสุด |
Code Examples
cURL
curl -X POST "https://openapi.humansoft.co.th/api/v1/open-apis/holiday-change/update" \
-H "Ocp-Apim-Subscription-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"holiday_change_id": "SENIMDAxMjM=",
"employee_code": "EMP001",
"holiday_change_dt": "2026-01-15",
"holiday_flag_lv": "00",
"holiday_change_desc": "แก้ไข: ต้องประชุมลูกค้า"
}'Step-by-step Workflow
Step 1: Get Current Data
// ดึงข้อมูลคำขอปัจจุบัน
const params = new URLSearchParams({
start_date: '2026-01-01',
end_date: '2026-01-31',
employee_code: 'EMP001'
})
const listResponse = await fetch(
`https://openapi.humansoft.co.th/api/v1/open-apis/holiday-change/get-list?${params}`,
{
headers: { 'Ocp-Apim-Subscription-Key': 'YOUR_API_KEY' }
}
)
const listData = await listResponse.json()
const pendingRequest = listData.payload.find(item => item.approve_flag === '01')
console.log('Found pending request:', pendingRequest.holiday_change_id)Step 2: Update Request
// แก้ไขคำขอ
const updateResponse = await fetch(
'https://openapi.humansoft.co.th/api/v1/open-apis/holiday-change/update',
{
method: 'POST',
headers: {
'Ocp-Apim-Subscription-Key': 'YOUR_API_KEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({
holiday_change_id: pendingRequest.holiday_change_id,
employee_code: 'EMP001',
holiday_change_dt: pendingRequest.holiday_change_dt,
holiday_flag_lv: '01', // เปลี่ยนเป็นวันหยุดนักขัตฤกษ์
holiday_change_desc: 'เปลี่ยนเหตุผล: ลูกค้าเลื่อนประชุม'
})
}
)
const updateData = await updateResponse.json()
console.log('Updated:', updateData)Validation Rules
| Parameter | Validation | Error Message |
|---|---|---|
holiday_change_id | ต้องระบุ | Missing required parameter: 'holiday_change_id' |
employee_code | ต้องระบุ | Missing required parameter: 'employee_code' |
holiday_change_dt | ต้องระบุและรูปแบบ Y-m-d | 'holiday_change_dt' must be in Y-m-d format |
holiday_flag_lv | ต้องระบุ | Missing required parameter: 'holiday_flag_lv' |
Business Rules
ข้อจำกัดการแก้ไข:
- ไม่สามารถแก้ไขคำขอที่ อนุมัติแล้ว (
approve_flag = '02') - ไม่สามารถแก้ไขคำขอของพนักงานคนอื่น
- ไม่สามารถแก้ไขในงวดเงินเดือนที่ปิดแล้ว
- อาจมี cut-off date จำกัดวันที่สามารถแก้ไขได้
- เมื่อแก้ไข สถานะจะถูกรีเซ็ตเป็น Pending (
01) เพื่อให้อนุมัติใหม่
Error Handling
| Error | Cause | Solution |
|---|---|---|
Missing required parameter: 'holiday_change_id' | ไม่ได้ส่ง holiday_change_id | ตรวจสอบ request body |
Holiday change document not found | ไม่พบคำขอ | ตรวจสอบ holiday_change_id |
Holiday change document does not belong to this employee | คำขอไม่ใช่ของพนักงานนี้ | ตรวจสอบ employee_code |
ไม่สามารถแก้ไขเอกสารที่อนุมัติแล้ว | คำขออนุมัติแล้ว | ต้องสร้างคำขอใหม่ |
ไม่สามารถแก้ไขเอกสารได้เนื่องจากเกินกำหนดเวลาที่ร้องขอแล้ว | เกิน cut-off date | ติดต่อ HR |
Related APIs
- Get Holiday Change List - ดึงรายการคำขอเปลี่ยนวันหยุด
- Submit Holiday Change - ยื่นคำขอเปลี่ยนวันหยุดใหม่
- Delete Holiday Change - ลบคำขอเปลี่ยนวันหยุด
Last updated on