Skip to Content
🚀 Welcome to Humansoft Open API Documentation

Get Manpower Grid

ดึงข้อมูลสาขาที่พนักงานไปปฏิบัติหน้าที่จริงรายวันแบบ Grid รายเดือน/สัปดาห์ พร้อมสถานะว่าแต่ละวันยังแก้ไขได้หรือไม่

ใช้ API นี้เพื่อค้นหาสาขา/กำลังพลที่พนักงานหลายคนหรือรายบุคคลไปปฏิบัติงานจริงในแต่ละวันของรอบเดือน/สัปดาห์ที่ต้องการ เพื่อแสดงเป็นตาราง Grid ก่อนแก้ไขผ่าน Save Manpower Gridbranch_id / branch_code ในแต่ละวันคือสาขาที่พนักงานไปปฏิบัติงานจริงในวันนั้น

Endpoint

POST /api/v1/open-apis/time-manage/get-personnel-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_id": "202412254358646B34E4" }, "daily": [ { "work_date": "2026-07-01", "time_attendance_group_transac_id": "20260701ACD8956C44C3", "branch_id": "202412254358646B34E4", "branch_code": "HQ", "branch_color_code": null } ] } ] }, "_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_idstringNoรหัสอ้างอิงสาขาสังกัดของพนักงาน

payload.child[].daily[]

FieldTypeNullableDescription
work_datestringNoวันที่ (YYYY-MM-DD) ของรายการนี้
time_attendance_group_transac_idstringNoรหัสอ้างอิงรายการเวลาประจำวัน (ใช้ส่งกลับตอนแก้ไข)
branch_idstringYesรหัสอ้างอิงสาขาที่พนักงานไปปฏิบัติหน้าที่จริงในวันนั้น
branch_codestringYesรหัสสาขาที่พนักงานไปปฏิบัติหน้าที่จริงในวันนั้น
branch_color_codestringYesรหัสสีประจำสาขาสำหรับแสดงผลบนตาราง (พบเป็น null เมื่อยังไม่ได้กำหนดสี)

_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-personnel-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" เท่านั้น
hashtag / employee_codeต้องเป็นข้อมูลประเภท string
_PAGEจำนวนเต็มบวก ≥ 1
_NUMBER_PER_PAGEจำนวนเต็มบวก 1–100

Business Rules

  • หากส่ง employee_code ระบบจะค้นหาเฉพาะพนักงานคนนั้น มิเช่นนั้นจะค้นตาม filter องค์กร (สาขา/แผนก/ตำแหน่ง ฯลฯ)
  • branch_id / branch_code ในแต่ละวันคือสาขาที่พนักงานไปปฏิบัติหน้าที่จริงในวันนั้น อาจต่างจากสาขาสังกัดใน profile.branch_id และอาจเป็น null หากยังไม่ได้กำหนด
  • การบันทึกผ่าน Save Manpower Grid ไม่มีการตรวจปิดงวด/พ้นกำหนดเวลาเหมือน Save endpoint อื่นในโมดูลนี้ แต่ระบบจะข้ามวันที่มี OT อนุมัติแล้ว (คืน status: "unchanged") — จึงไม่มีฟิลด์ is_change_* ใน response ของ endpoint นี้
  • time_attendance_group_transac_id ที่ได้จาก response นี้ ให้นำไปใช้ต่อในการแก้ไขโดยตรง — ห้ามสร้างค่าขึ้นเอง
  • Get Manpower Summary by Branch - สรุปจำนวนกำลังพลรายสาขา (ใช้พารามิเตอร์นำเข้าเดียวกัน)
  • Save Manpower Grid - บันทึกสาขาปฏิบัติงานที่แก้ไขบนตาราง Grid
  • Get Work Cycle Grid - ดึงตารางกะการทำงานของพนักงาน
Last updated on