Skip to Content
🚀 Welcome to Humansoft Open API Documentation

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 (ระบุอย่างใดอย่างหนึ่ง)

ParameterTypeRequiredDescriptionExample
month_nostringConditionallyรอบเงินเดือน (YYYY-MM) — ห้ามส่งคู่กับ week_no"2026-07"
week_nostringConditionallyวันที่ใดๆ ในสัปดาห์ที่ต้องการ (YYYY-MM-DD) — ห้ามส่งคู่กับ month_no"2026-07-01"

Optional Parameters

ParameterTypeDefaultDescriptionExample
employee_codestringnullรหัสพนักงานกรณีเรียกรายคน (ระบบแปลงเป็น ID ให้อัตโนมัติ)"EMP001"
company_listsarray<{id}>[]รายการ ID บริษัทที่กรอง (Base64)[{ "id": "MjAyNTExMjdENDU3M0M0MjE2Mzk=" }]
branch_listsarray<{id}>[]รายการ ID สาขาที่กรอง (Base64)[{ "id": "MjAyNTExMjdENDU3M0M0MjE2Mzk=" }]
department_listsarray<{id}>[]รายการ ID แผนกที่กรอง (Base64)[]
division_listsarray<{id}>[]รายการ ID ฝ่ายที่กรอง (Base64)[]
section_listsarray<{id}>[]รายการ ID แผนกย่อยที่กรอง (Base64)[]
section_lists_lv01section_lists_lv05array<{id}>[]รายการ ID แผนกย่อยระดับ 1–5 (Base64)[]
position_listsarray<{id}>[]รายการ ID ตำแหน่งที่กรอง (Base64)[]
employee_listsarray<{id}>[]รายการ ID พนักงานโดยตรง (Base64)[{ "id": "MjAyNTExMjdENDU3M0M0MjE2Mzk=" }]
hashtagstring""ข้อความแฮชแท็กที่ใช้กรอง (คั่นแต่ละแท็กด้วยเว้นวรรค)"#IT #Developer"
round_month_configstring""ประเภทงวด: "" (ทั้งหมด), "Full" (เต็มเดือน), "Split" (แบ่งงวดจ่าย)"Full"
language_codestring"TH"ภาษาของข้อมูล: "TH" หรือ "EN""TH"
_PAGEinteger1หน้าข้อมูลที่ต้องการดึง1
_NUMBER_PER_PAGEinteger15จำนวนพนักงานต่อหน้า (สูงสุด 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

FieldTypeDescription
start_datestringวันเริ่มต้นช่วงเวลาค้นหา (YYYY-MM-DD)
end_datestringวันสิ้นสุดช่วงเวลาค้นหา (YYYY-MM-DD)
day_rangeintegerจำนวนวันทั้งหมดในช่วงเวลานี้

payload.child[].profile

FieldTypeNullableDescription
employee_idstringNoรหัสอ้างอิงพนักงาน
employee_codestringNoรหัสพนักงาน
employee_namestringNoชื่อพนักงาน
employee_last_namestringNoนามสกุลพนักงาน
employee_nicknamestringYesชื่อเล่นพนักงาน
photographstringYesURL หรือ path รูปโปรไฟล์พนักงาน
branch_namestringYesชื่อสาขาของพนักงาน
department_namestringYesชื่อแผนกของพนักงาน
position_namestringYesชื่อตำแหน่งงานของพนักงาน

payload.child[].daily[]

FieldTypeNullableDescription
work_datestringNoวันที่ (YYYY-MM-DD) ของรายการนี้
time_attendance_group_transac_idstringNoรหัสอ้างอิงรายการเวลาประจำวัน (ใช้ส่งกลับตอนแก้ไขกะ)
work_cycle_codestringYesรหัสย่อกะการทำงาน (เช่น "M1")
work_cycle_idstringYesรหัสอ้างอิงกะการทำงาน (ใช้ส่งกลับตอนแก้ไขกะ)
master_salary_report_idstringNoรหัสรอบเดือนประมวลผลเงินเดือน
is_change_work_cyclestringNoสถานะแก้ไขกะ: "Y" = แก้ไขได้, "N" = แก้ไขไม่ได้เนื่องจากผ่านวันปิดงวดแล้ว

_PAGINATION

FieldTypeDescription
_TOTAL_RECORDSintegerจำนวนพนักงานทั้งหมดที่พบตาม filter (ก่อนแบ่งหน้า)
_PAGEintegerหน้าปัจจุบัน
_NUMBER_PER_PAGEintegerจำนวนรายการต่อหน้า

Code Examples

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

ParameterValidation
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 นี้ ให้นำไปใช้ต่อในการแก้ไขกะโดยตรง — ห้ามสร้างค่าขึ้นเอง
  • Save Work Cycle Grid - บันทึกกะการทำงานที่แก้ไขบนตาราง Grid
  • Get Work Cycle List - ดึงรายการกะทั้งหมดสำหรับใช้เป็นตัวเลือกตอนเปลี่ยนกะ
  • Get Holiday Grid - ดึงตารางวันหยุดของพนักงาน
Last updated on