Get Work Cycle Grid
ดึงตารางกะการทำงานของพนักงานแบบ Grid รายเดือน/สัปดาห์ พร้อมสถานะว่าแต่ละวันยังแก้ไขกะได้หรือไม่
ใช้ API นี้เพื่อดึงตารางกะการทำงานของพนักงานหลายคนหรือรายบุคคลในรอบเดือน/สัปดาห์ที่ต้องการ เพื่อแสดงเป็นตาราง Grid ก่อนแก้ไขกะผ่าน Save Work Cycle Grid — ฟิลด์ is_change_work_cycle ในแต่ละวันจะบอกว่าวันนั้นยังแก้ไขได้หรือไม่
Endpoint
POST /api/v1/open-apis/time-manage/get-work-cycle-multipleสิทธิ์ที่ต้องการ: API Key ต้องมีสิทธิ์ ข้อมูลการยื่นเอกสาร (document:manage)
Request Parameters
Required Parameters (ระบุอย่างใดอย่างหนึ่ง)
| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
month_no | string | Conditionally | รอบเงินเดือน (YYYY-MM) — ห้ามส่งคู่กับ week_no | "2026-07" |
week_no | string | Conditionally | วันที่ใดๆ ในสัปดาห์ที่ต้องการ (YYYY-MM-DD) — ห้ามส่งคู่กับ month_no | "2026-07-01" |
Optional Parameters
| Parameter | Type | Default | Description | Example |
|---|---|---|---|---|
employee_code | string | null | รหัสพนักงานกรณีเรียกรายคน (ระบบแปลงเป็น ID ให้อัตโนมัติ) | "EMP001" |
company_lists | array<{id}> | [] | รายการ ID บริษัทที่กรอง (Base64) | [{ "id": "MjAyNTExMjdENDU3M0M0MjE2Mzk=" }] |
branch_lists | array<{id}> | [] | รายการ ID สาขาที่กรอง (Base64) | [{ "id": "MjAyNTExMjdENDU3M0M0MjE2Mzk=" }] |
department_lists | array<{id}> | [] | รายการ ID แผนกที่กรอง (Base64) | [] |
division_lists | array<{id}> | [] | รายการ ID ฝ่ายที่กรอง (Base64) | [] |
section_lists | array<{id}> | [] | รายการ ID แผนกย่อยที่กรอง (Base64) | [] |
section_lists_lv01 … section_lists_lv05 | array<{id}> | [] | รายการ ID แผนกย่อยระดับ 1–5 (Base64) | [] |
position_lists | array<{id}> | [] | รายการ ID ตำแหน่งที่กรอง (Base64) | [] |
employee_lists | array<{id}> | [] | รายการ ID พนักงานโดยตรง (Base64) | [{ "id": "MjAyNTExMjdENDU3M0M0MjE2Mzk=" }] |
hashtag | string | "" | ข้อความแฮชแท็กที่ใช้กรอง (คั่นแต่ละแท็กด้วยเว้นวรรค) | "#IT #Developer" |
round_month_config | string | "" | ประเภทงวด: "" (ทั้งหมด), "Full" (เต็มเดือน), "Split" (แบ่งงวดจ่าย) | "Full" |
language_code | string | "TH" | ภาษาของข้อมูล: "TH" หรือ "EN" | "TH" |
_PAGE | integer | 1 | หน้าข้อมูลที่ต้องการดึง | 1 |
_NUMBER_PER_PAGE | integer | 15 | จำนวนพนักงานต่อหน้า (สูงสุด 100) | 15 |
Request Body Example
{
"month_no": "2026-07",
"employee_code": "EMP001",
"language_code": "TH",
"round_month_config": "Full",
"_PAGE": 1,
"_NUMBER_PER_PAGE": 15,
"branch_lists": [
{ "id": "MjAyNTExMjdENDU3M0M0MjE2Mzk=" }
]
}Response Format
Success Response (HTTP 200)
{
"code": 200,
"payload": {
"time_range": {
"start_date": "2026-06-26",
"end_date": "2026-07-25",
"day_range": 30
},
"child": [
{
"profile": {
"employee_id": "2025032815D188B7C42D",
"employee_code": "EMP001",
"employee_name": "สมชาย",
"employee_last_name": "ดีใจ",
"employee_nickname": "ชาย",
"photograph": "images/userPlaceHolder.png",
"branch_name": "สำนักงานใหญ่",
"department_name": "ไอที",
"position_name": "ผู้พัฒนาโปรแกรม"
},
"daily": [
{
"work_date": "2026-07-01",
"time_attendance_group_transac_id": "20260701ACD8956C44C3",
"work_cycle_code": "M1",
"work_cycle_id": "202401083EAE7D1F9711",
"master_salary_report_id": "202607286709D2934361",
"is_change_work_cycle": "Y"
}
]
}
]
},
"_PAGINATION": {
"_TOTAL_RECORDS": 42,
"_PAGE": 1,
"_NUMBER_PER_PAGE": 15
}
}Error Response - Validation Failed (HTTP 400)
{
"code": 400,
"message": "ไม่สำเร็จ",
"errors": [
"Please specify either 'month_no' (YYYY-MM) or 'week_no' (YYYY-MM-DD)"
]
}Error Response - Unauthorized (HTTP 401)
{
"statusCode": 401,
"message": "Access denied due to invalid subscription key. Make sure to provide a valid key for an active subscription."
}Response Fields
payload.time_range
| Field | Type | Description |
|---|---|---|
start_date | string | วันเริ่มต้นช่วงเวลาค้นหา (YYYY-MM-DD) |
end_date | string | วันสิ้นสุดช่วงเวลาค้นหา (YYYY-MM-DD) |
day_range | integer | จำนวนวันทั้งหมดในช่วงเวลานี้ |
payload.child[].profile
| Field | Type | Nullable | Description |
|---|---|---|---|
employee_id | string | No | รหัสอ้างอิงพนักงาน |
employee_code | string | No | รหัสพนักงาน |
employee_name | string | No | ชื่อพนักงาน |
employee_last_name | string | No | นามสกุลพนักงาน |
employee_nickname | string | Yes | ชื่อเล่นพนักงาน |
photograph | string | Yes | URL หรือ path รูปโปรไฟล์พนักงาน |
branch_name | string | Yes | ชื่อสาขาของพนักงาน |
department_name | string | Yes | ชื่อแผนกของพนักงาน |
position_name | string | Yes | ชื่อตำแหน่งงานของพนักงาน |
payload.child[].daily[]
| Field | Type | Nullable | Description |
|---|---|---|---|
work_date | string | No | วันที่ (YYYY-MM-DD) ของรายการนี้ |
time_attendance_group_transac_id | string | No | รหัสอ้างอิงรายการเวลาประจำวัน (ใช้ส่งกลับตอนแก้ไขกะ) |
work_cycle_code | string | Yes | รหัสย่อกะการทำงาน (เช่น "M1") |
work_cycle_id | string | Yes | รหัสอ้างอิงกะการทำงาน (ใช้ส่งกลับตอนแก้ไขกะ) |
master_salary_report_id | string | No | รหัสรอบเดือนประมวลผลเงินเดือน |
is_change_work_cycle | string | No | สถานะแก้ไขกะ: "Y" = แก้ไขได้, "N" = แก้ไขไม่ได้เนื่องจากผ่านวันปิดงวดแล้ว |
_PAGINATION
| Field | Type | Description |
|---|---|---|
_TOTAL_RECORDS | integer | จำนวนพนักงานทั้งหมดที่พบตาม filter (ก่อนแบ่งหน้า) |
_PAGE | integer | หน้าปัจจุบัน |
_NUMBER_PER_PAGE | integer | จำนวนรายการต่อหน้า |
Code Examples
cURL
curl -X POST "https://openapi.humansoft.co.th/api/v1/open-apis/time-manage/get-work-cycle-multiple" \
-H "Ocp-Apim-Subscription-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"month_no": "2026-07",
"employee_code": "EMP001",
"language_code": "TH",
"round_month_config": "Full",
"_PAGE": 1,
"_NUMBER_PER_PAGE": 15,
"branch_lists": [
{ "id": "MjAyNTExMjdENDU3M0M0MjE2Mzk=" }
]
}'Validation Rules
| Parameter | Validation |
|---|---|
month_no / week_no | ต้องส่งอย่างใดอย่างหนึ่ง และห้ามส่งพร้อมกัน |
month_no | ต้องมีรูปแบบ YYYY-MM |
week_no | ต้องมีรูปแบบ YYYY-MM-DD |
round_month_config | ต้องเป็น "", "Full" หรือ "Split" เท่านั้น |
_PAGE | จำนวนเต็มบวก ≥ 1 |
_NUMBER_PER_PAGE | จำนวนเต็มบวก 1–100 |
Business Rules
- หากส่ง
employee_codeระบบจะค้นหาเฉพาะพนักงานคนนั้น มิเช่นนั้นจะค้นตาม filter องค์กร (สาขา/แผนก/ตำแหน่ง ฯลฯ) - วันที่มี
is_change_work_cycleเป็น"N"(ผ่านวันปิดงวดแล้ว) จะไม่สามารถส่งไปแก้ไขผ่าน Save Work Cycle Grid ได้ time_attendance_group_transac_idและwork_cycle_idที่ได้จาก response นี้ ให้นำไปใช้ต่อในการแก้ไขกะโดยตรง — ห้ามสร้างค่าขึ้นเอง
Related APIs
- Save Work Cycle Grid - บันทึกกะการทำงานที่แก้ไขบนตาราง Grid
- Get Work Cycle List - ดึงรายการกะทั้งหมดสำหรับใช้เป็นตัวเลือกตอนเปลี่ยนกะ
- Get Holiday Grid - ดึงตารางวันหยุดของพนักงาน
Last updated on