Skip to Content
🚀 Welcome to Humansoft Open API Documentation

Get Adjust List

ดึงรายการเอกสารขอเพิ่มเวลาทำงานตามเงื่อนไขที่กำหนด รองรับ 3 โหมดการทำงาน พร้อม filter และ pagination

ใช้ API นี้เพื่อดึงรายการเอกสารขอเพิ่มเวลา ติดตามสถานะการอนุมัติ หรือสร้างรายงานสรุป รองรับ 3 โหมด: self (เอกสารตนเอง), hr (มุมมอง Manager/HR/Admin), lasted (เอกสารล่าสุด)

Endpoint

GET /api/v1/open-apis/time-adjust/get-list

รองรับทั้ง GET และ POST method แนะนำให้ใช้ GET สำหรับการดึงข้อมูลทั่วไป

Request Parameters

Required Parameters

ParameterTypeRequiredDescriptionExample
modestringYesโหมดการทำงาน: self, hr, lastedself
yearstringYesกรองตามปี (YYYY)2026
approve_flagstringYesสถานะการอนุมัติ (01-08)01

Optional Parameters (General)

ParameterTypeDefaultDescriptionExample
start_datestring-วันที่เริ่มต้น (YYYY-MM-DD) ต้องใช้คู่กับ end_date2026-01-01
end_datestring-วันที่สิ้นสุด (YYYY-MM-DD) ต้องใช้คู่กับ start_date2026-01-31
monthstring-กรองตามเดือน (01-12) ต้องใช้คู่กับ year02
time_adjust_flag_lvstring-ประเภทการปรับเวลา (01-06)01
_PAGEinteger1หน้าปัจจุบัน1
_NUMBER_PER_PAGEinteger20จำนวนรายการต่อหน้า (สูงสุด 1000)20

Optional Parameters (HR Mode Only)

ParameterTypeDefaultDescriptionExample
employee_codestring-กรองตามรหัสพนักงานEMP001
keywordstring-ค้นหาจากชื่อ/รหัสพนักงานสมชาย
company_idstring (base64)-กรองตามบริษัทQ09NMQ==
branch_idstring (base64)-กรองตามสาขาQlIwMDE=
department_idstring (base64)-กรองตามแผนกREVQMDE=
company_listsarray-กรองตามบริษัท (array of base64)["Q09NMQ=="]
branch_listsarray-กรองตามสาขา (array of base64)["QlIwMDE="]
department_listsarray-กรองตามแผนก (array of base64)["REVQMDE="]
division_listsarray-กรองตามส่วนงาน (array of base64)["RElWMDE="]
section_listsarray-กรองตามฝ่าย (array of base64)["U0VDMDE="]
position_listsarray-กรองตามตำแหน่ง (array of base64)["UE9TMDE="]
authorize_linestringfalseเปิดใช้สายการอนุมัติ (true/false)true
authorize_idstring (base64)-รหัสสายการอนุมัติQVVUMDE=
sort_bystringtime_adjust_dtฟิลด์ที่ใช้เรียงลำดับtime_adjust_dt
sort_orderstringDESCทิศทางการเรียง (ASC, DESC)DESC

Approve Flag Values

ValueStatusDescription
01Pendingรออนุมัติ (รวมสถานะ 04-08)
02Approvedอนุมัติแล้ว
03Not Approvedไม่อนุมัติ
04Manager Approved Step 1หัวหน้าอนุมัติขั้นที่ 1
05Recheckตรวจสอบอีกครั้ง
06Manager Approved Step 2หัวหน้าอนุมัติขั้นที่ 2
07Manager Approved Step 3หัวหน้าอนุมัติขั้นที่ 3
08Manager Approved Step 4หัวหน้าอนุมัติขั้นที่ 4

เมื่อกรองด้วย approve_flag=01 จะรวมสถานะ 04-08 ด้วย (รออนุมัติทุกระดับ)

Time Adjust Flag Values

ValueTHEN
01ลืมลงเวลาForget to enter time
02ระบบมีปัญหาSystem has a problem
03เครื่องลงเวลาใช้งานไม่ได้Device malfunction
04ไฟฟ้าดับPower outage
05ทำงานนอกสถานที่Work off-site
06ทำงานเกินเวลาOverwork

Request Body Example

Mode: self - ดูเอกสารตนเอง

{ "mode": "self", "year": "2026", "approve_flag": "01" }

Mode: hr - มุมมอง HR/Manager

{ "mode": "hr", "year": "2026", "month": "02", "approve_flag": "01", "department_id": "REVQMDE=", "sort_by": "time_adjust_dt", "sort_order": "DESC", "_PAGE": 1, "_NUMBER_PER_PAGE": 20 }

Mode: lasted - เอกสารล่าสุด

{ "mode": "lasted", "year": "2026", "approve_flag": "01" }

Response Format

Success Response - Mode: self / lasted (HTTP 200)

Response จะเป็น flat array ของเอกสาร:

{ "code": 200, "message": "สำเร็จ", "payload": [ { "doc_type": "Time_Adjust", "doc_id": "202505191E74773840AB", "employee_id": "20250322133F4624C0AD", "work_date": "2026-02-12", "time_adjust_dt": "2026-02-12", "header": "สมชาย มากมี (ชาย) ยื่นขอ \"ลืมลงเวลา\"", "detail": "ขอวันที่ 12/02/2026 เวลา \nหมายเหตุ : \n", "status": "รออนุมัติ", "approve_flag": "01", "approve_by": "สมหญิง มากมาย", "approve_remark": "", "last_upd": "2026-02-12 17:26:49", "last_upd_format": "12/02/2026 17:26", "created": "2026-02-12 17:26:49", "created_format": "12/02/2026 17:26", "authorize_flag": true } ], "_PAGINATION": { "current_page": 1, "per_page": 20, "total": 2, "total_pages": 1 } }

Success Response - Mode: hr (HTTP 200)

Response จะจัดกลุ่มตามพนักงาน พร้อมข้อมูลโปรไฟล์:

{ "code": 200, "message": "สำเร็จ", "payload": [ { "profile": { "employee_id": "20260121FC89F3BB9120", "employee_code": "EMP001", "photograph": "images/userPlaceHolder.png", "employee_name": "สมชาย", "employee_last_name": "ใจดี", "employee_nickname": "ชาย", "position_name": "พนักงาน", "department_name": "แผนกขาย", "branch_name": "สำนักงานใหญ่", "count_docs": 1 }, "docs": { "time_adjust": [ { "doc_type": "Time_Adjust", "doc_id": "20260225BF89285583CF", "employee_id": "20260121FC89F3BB9120", "work_date": "2026-02-25", "time_adjust_dt": "2026-02-25", "header": "สมชาย ใจดี (ชาย) ยื่นขอ \"ลืมลงเวลา\"", "detail": "ขอวันที่ 25/02/2026 เวลา \nหมายเหตุ : ลืมรูดบัตรเข้างาน\n", "status": "รออนุมัติ", "approve_flag": "01", "approve_by": "สมหญิง มากมาย", "approve_remark": "", "last_upd": "2026-02-25 11:50:51", "last_upd_format": "25/02/2026 11:50", "created": "2026-02-25 11:36:06", "created_format": "25/02/2026 11:36", "authorize_flag": true } ] } } ], "_PAGINATION": { "current_page": 1, "per_page": 20, "total": 1, "total_pages": 1 } }

Success Response - No Data (HTTP 200)

{ "code": 200, "message": "สำเร็จ", "payload": [], "_PAGINATION": { "current_page": 1, "per_page": 20, "total": 0, "total_pages": 0 } }

Error Response (HTTP 422)

{ "code": 422, "message": "Validation failed", "errors": [ "Missing required parameter: 'mode'", "'year' must be in format YYYY" ] }

Error Response (HTTP 400)

{ "code": 400, "message": "ไม่สำเร็จ", "error": "Employee not found" }

Response Fields

Mode: self / lasted

FieldTypeDescription
doc_typestringประเภทเอกสาร (Time_Adjust)
doc_idstring (base64)รหัสเอกสาร
employee_idstring (base64)รหัสพนักงาน
work_datestringวันที่ทำงานที่ขอปรับ (YYYY-MM-DD)
time_adjust_dtstringวันที่เอกสารขอปรับเวลา (YYYY-MM-DD)
headerstringหัวข้อเอกสาร
detailstringรายละเอียดเอกสาร
statusstringชื่อสถานะการอนุมัติ
approve_flagstringรหัสสถานะการอนุมัติ (01-08)
approve_bystringชื่อผู้อนุมัติ
approve_remarkstringหมายเหตุการอนุมัติ
last_updstringวันเวลาอัปเดตล่าสุด (YYYY-MM-DD HH:mm:ss)
last_upd_formatstringวันเวลาอัปเดตล่าสุด (DD/MM/YYYY HH:mm)
createdstringวันเวลาที่สร้าง (YYYY-MM-DD HH:mm:ss)
created_formatstringวันเวลาที่สร้าง (DD/MM/YYYY HH:mm)
authorize_flagbooleanสถานะสิทธิ์การอนุมัติ

Mode: hr - Profile Fields

FieldTypeDescription
employee_idstring (base64)รหัสพนักงาน
employee_codestringรหัสพนักงาน
photographstringรูปภาพโปรไฟล์
employee_namestringชื่อพนักงาน
employee_last_namestringนามสกุล
employee_nicknamestringชื่อเล่น
position_namestringตำแหน่ง
department_namestringแผนก
branch_namestringสาขา
count_docsintegerจำนวนเอกสาร

Mode hr จะจัดกลุ่มเอกสารตามพนักงาน โดยแต่ละรายการจะมี profile (ข้อมูลพนักงาน) และ docs.time_adjust (รายการเอกสาร)

Code Examples

curl -X GET "https://openapi.humansoft.co.th/api/v1/open-apis/time-adjust/get-list?mode=self&year=2026&approve_flag=01&_NUMBER_PER_PAGE=20" \ -H "Ocp-Apim-Subscription-Key: YOUR_API_KEY"

Validation Rules

ParameterValidationError Message
modeต้องระบุและเป็น self, hr, หรือ lasted'mode' must be one of: self, hr, lasted
yearต้องระบุและเป็นรูปแบบ YYYY (4 หลัก)'year' must be in format YYYY
approve_flagต้องระบุและเป็น 01-08'approve_flag' must be one of: 01-08
start_dateต้องใช้คู่กับ end_date รูปแบบ YYYY-MM-DD'start_date' and 'end_date' must be specified together
end_dateต้อง >= start_date'end_date' must be greater than or equal to 'start_date'
monthต้องเป็น 01-12 และใช้คู่กับ year'month' must be between 01 and 12
_PAGEต้อง >= 1'_PAGE' must be greater than or equal to 1
_NUMBER_PER_PAGEต้องเป็นตัวเลข 1-1000'_NUMBER_PER_PAGE' must be a number between 1 and 1000

Mode lasted ไม่ต้องระบุพารามิเตอร์วันที่ (start_date, end_date, month) ระบบจะดึงเอกสารล่าสุดอัตโนมัติ

Business Rules

  • Mode self - ดึงเฉพาะเอกสารของพนักงานเจ้าของ API Key
  • Mode hr - ดึงเอกสารของพนักงานทั้งหมดที่มีสิทธิ์เข้าถึง สามารถกรองตามหน่วยงาน สาขา แผนก และสายการอนุมัติได้
  • Mode lasted - ดึงเอกสารล่าสุดโดยไม่ต้องระบุเงื่อนไขวันที่
  • เมื่อกรองด้วย approve_flag=01 ระบบจะรวมสถานะรออนุมัติทุกระดับ (01, 04-08)
  • ข้อมูลจะถูกเรียงลำดับตาม sort_by และ sort_order ที่กำหนด (ค่าเริ่มต้น: time_adjust_dt DESC)
  • Pagination ค่าเริ่มต้นแสดง 20 รายการต่อหน้า สูงสุด 1000 รายการ

Error Handling

ErrorCauseSolution
Missing required parameter: 'mode'ไม่ได้ส่ง modeระบุ mode เป็น self, hr, หรือ lasted
'year' must be in format YYYYรูปแบบปีไม่ถูกต้องใช้รูปแบบ YYYY เช่น 2026
'approve_flag' must be one of: 01-08ค่า approve_flag ไม่ถูกต้องใช้ค่า 01-08
'start_date' and 'end_date' must be specified togetherระบุ start_date หรือ end_date เพียงตัวเดียวต้องระบุทั้ง start_date และ end_date
'end_date' must be greater than or equal to 'start_date'end_date น้อยกว่า start_dateตรวจสอบช่วงวันที่
Employee not foundไม่พบพนักงานตรวจสอบ employee_code ที่ส่ง
UnauthorizedAPI Key ไม่ถูกต้องหรือหมดอายุตรวจสอบ Ocp-Apim-Subscription-Key

Notes

  • Mode hr รองรับการกรองขั้นสูง เช่น กรองตามบริษัท สาขา แผนก ส่วนงาน ฝ่าย และตำแหน่ง โดยใช้ array ของ base64 ID
  • พารามิเตอร์ authorize_line และ authorize_id ใช้สำหรับกรองตามสายการอนุมัติในโหมด HR
  • Response ของ mode self / lasted เป็น flat array ส่วน mode hr จะจัดกลุ่มตามพนักงาน

Use Cases

  1. แสดงรายการรออนุมัติของตนเอง - ใช้ mode=self กับ approve_flag=01
  2. HR ดูรายการทั้งหมด - ใช้ mode=hr กับ filter ตามแผนกหรือสาขา
  3. ดูเอกสารล่าสุด - ใช้ mode=lasted สำหรับดูรายการล่าสุดโดยไม่ต้องระบุวันที่
  4. กรองตามประเภท - ใช้ time_adjust_flag_lv เพื่อกรองเฉพาะประเภท เช่น ลืมลงเวลา (01)
  5. รายงานประจำเดือน - ใช้ month และ year เพื่อกรองตามเดือน/ปี
  • Time Adjust Overview - ภาพรวมโมดูลขอเพิ่มเวลาทำงาน
  • Get Adjust Types - ดึงรายการประเภทการขอเพิ่มเวลา
  • Get Adjust Detail - ดึงรายละเอียดเอกสารรายการเดียว
  • Submit Adjust - ยื่นเอกสารขอเพิ่มเวลาใหม่
Last updated on