Skip to Content
🚀 Welcome to Humansoft Open API Documentation

Update Holiday Change

แก้ไขคำขอเปลี่ยนวันหยุดที่ยังไม่ได้รับการอนุมัติ

ใช้ API นี้เพื่อแก้ไขคำขอเปลี่ยนวันหยุดที่อยู่ในสถานะ Pending หรือ Recheck เท่านั้น ไม่สามารถแก้ไขคำขอที่อนุมัติแล้วได้

Endpoint

POST /api/v1/open-apis/holiday-change/update

Request Parameters

Required Parameters

ParameterTypeRequiredDescriptionExample
holiday_change_idstringYesID ของคำขอที่ต้องการแก้ไขSENIMDAxMjM=
employee_codestringYesรหัสพนักงานEMP001
holiday_change_dtstringYesวันที่ต้องการเปลี่ยน (Y-m-d)2026-01-15
holiday_flag_lvstringYesประเภทวันหยุดที่ต้องการเปลี่ยนเป็น00

Optional Parameters

ParameterTypeRequiredDescriptionExample
holiday_change_descstringNoเหตุผลการเปลี่ยนแก้ไข: ต้องประชุมลูกค้า
image_contentstringNoรูปภาพ (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

FieldTypeDescription
holiday_change_idstringID ของคำขอ
employee_idstringID ของพนักงาน
employee_codestringรหัสพนักงาน
holiday_change_dtstringวันที่เปลี่ยน
holiday_flag_lvstringประเภทวันหยุด
holiday_change_descstringเหตุผลการเปลี่ยน
approve_flagstringสถานะการอนุมัติ (รีเซ็ตเป็น 01 = Pending)
updated_atdatetimeวันเวลาที่แก้ไขล่าสุด

Code Examples

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

ParameterValidationError 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

ErrorCauseSolution
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
Last updated on