Skip to Content
🚀 Welcome to Humansoft Open API Documentation

Get Calendar Month Filter

ดึงปฏิทินการทำงานตามช่วงวันที่ที่ระบุ ไม่จำกัดตามรอบเงินเดือน แสดงรายการพนักงานที่ทำงาน/ลา/หยุดในแต่ละวัน พร้อมกรองตามประเภท

Endpoint

GET /api/v1/open-apis/salary/get-data-filter?path_action=get_calendar_month_filter

สิทธิ์ที่ต้องการ: API Key ต้องมีสิทธิ์ ข้อมูลเงินเดือนของพนักงาน (payroll:read:self)

  • หากระบุ employee_code หรือ employee_id จะ return เฉพาะข้อมูลของพนักงานคนนั้น
  • หากไม่ระบุ employee filter จะดึงพนักงานทั้งหมดที่ยังทำงานอยู่

Request Parameters

Required Parameters

ParameterTypeRequiredDescriptionExample
start_datestringYesวันที่เริ่มต้น (YYYY-MM-DD)"2026-02-01"
end_datestringYesวันที่สิ้นสุด (YYYY-MM-DD)"2026-02-28"
typestringYesประเภทการกรอง: "leave", "work_cycle", "holiday""leave"

Optional Parameters

ParameterTypeDefaultDescriptionExample
time_leave_flagstringnullรหัสประเภทการลา (ใช้เมื่อ type=leave)"01"
work_cycle_idstringnullรหัสกะการทำงาน (Base64, ใช้เมื่อ type=work_cycle)"MjAyNjAxMjFGQzg5RjNCQjkxMjA="
holiday_flag_lvstringnullรหัสประเภทวันหยุด (ใช้เมื่อ type=holiday)"01"
language_codestring"TH"ภาษา: TH หรือ EN"TH"
employee_codestringnullรหัสพนักงาน (ถ้าระบุจะ return เฉพาะคนเดียว)"EMP001"
employee_idstringnullInternal ID พนักงาน (ใช้แทน employee_code ได้)"MjAyNjAxMjFGQzg5RjNCQjkxMjA"

Filter Types

TypeDescription
"leave"ลางาน — แสดงเฉพาะพนักงานที่ลางาน
"work_cycle"กะการทำงาน — แสดงพนักงานตามกะที่ระบุ
"holiday"วันหยุด — แสดงเฉพาะพนักงานที่มีวันหยุด

Leave Types (time_leave_flag)

CodeDescription
"01"ลากิจได้รับค่าจ้าง
"02"ลากิจไม่ได้รับค่าจ้าง
"03"ลาป่วยมีใบรับรองแพทย์
"04"ลาคลอดได้รับค่าจ้าง
"05"ลาคลอดไม่ได้รับค่าจ้าง
"06"ลาพักร้อน
"07"ลาฝึกอบรม
"08"ลาเพื่อทำหมัน
"09"ขาดงาน

Holiday Types (holiday_flag_lv)

CodeDescription
"00"วันทำงาน
"01"วันหยุดนักขัตฤกษ์
"03"วันหยุดพนักงาน
"04"วันหยุดพิเศษ

Validation Rules

RuleDescription
start_date / end_dateต้องเป็นรูปแบบ YYYY-MM-DD และ end_date ต้องมากกว่าหรือเท่ากับ start_date
typeต้องเป็น "leave", "work_cycle", หรือ "holiday" เท่านั้น
time_leave_flagใช้ได้เฉพาะเมื่อ type=leave
work_cycle_idใช้ได้เฉพาะเมื่อ type=work_cycle และต้อง Base64 encoded
holiday_flag_lvใช้ได้เฉพาะเมื่อ type=holiday
language_codeรองรับเฉพาะ TH หรือ EN (case-insensitive)

Response Format

Success Response (type=leave)

{ "code": 200, "message": "Get Calendar Month Accept", "payload": { "2026-02-03": [ { "employee_id": "20260121FC89F3BB9120", "employee_code": "EMP001", "employee_name": "ธารวิน", "employee_last_name": "ศศิพฤกษ์กุล", "employee_nickname": "วิน", "employee_name_en": "Tharawin", "employee_last_name_en": "Sasiprueksakul", "employee_nickname_en": "Win", "photograph": "https://example.com/photo.jpg", "position_name": "โปรแกรมเมอร์", "department_name": "ฝ่ายพัฒนาโปรแกรม", "organization": { "company": { "label": "บริษัท", "value": "บริษัท ฮิวแมนซอฟท์ จำกัด" }, "branch": { "label": "สาขา", "value": "สำนักงานใหญ่" }, "department": { "label": "แผนก", "value": "ฝ่ายพัฒนาโปรแกรม" } }, "work_date": "2026-02-03" } ] } }

Success Response (type=work_cycle หรือ holiday)

{ "code": 200, "message": "Get Calendar Month Accept", "payload": { "2026-02-01": [ { "employee_id": "20260121FC89F3BB9120", "employee_code": "EMP001", "employee_name": "ธารวิน", "employee_last_name": "ศศิพฤกษ์กุล", "employee_nickname": "วิน", "employee_name_en": "Tharawin", "employee_last_name_en": "Sasiprueksakul", "employee_nickname_en": "Win", "photograph": "https://example.com/photo.jpg", "position_name": "โปรแกรมเมอร์", "department_name": "ฝ่ายพัฒนาโปรแกรม", "organization": { "company": { "label": "บริษัท", "value": "บริษัท ฮิวแมนซอฟท์ จำกัด" }, "branch": { "label": "สาขา", "value": "สำนักงานใหญ่" }, "department": { "label": "แผนก", "value": "ฝ่ายพัฒนาโปรแกรม" } }, "work_date": "2026-02-01", "work_cycle_id": "20260121FC89F3BB9120", "work_cycle_code": "SHIFT_A", "work_cycle_start_time": "08:00:00", "work_cycle_end_time": "17:00:00", "work_cycle_hour": "08:00:00", "work_total_cyele_limit": "08:00:00", "work_total_in_cycle": "08:00:00", "absence_flag_lv": "00", "absence_flag_name": "", "day_status": "วันทำงาน" } ] } }

Response Fields (ทั่วไป)

FieldTypeNullableDescription
employee_idstringNoInternal ID พนักงาน (Base64 encoded)
employee_codestringNoรหัสพนักงาน
employee_namestringNoชื่อพนักงาน (ตามภาษาที่เลือก)
employee_last_namestringNoนามสกุลพนักงาน (ตามภาษาที่เลือก)
employee_nicknamestringYesชื่อเล่นพนักงาน (ตามภาษาที่เลือก)
employee_name_enstringYesชื่อพนักงาน (ภาษาอังกฤษ)
employee_last_name_enstringYesนามสกุลพนักงาน (ภาษาอังกฤษ)
employee_nickname_enstringYesชื่อเล่นพนักงาน (ภาษาอังกฤษ)
photographstringYesURL รูปภาพพนักงาน
position_namestringYesชื่อตำแหน่ง
department_namestringYesชื่อแผนก
organizationobjectNoข้อมูลองค์กร: company, branch, department ({label, value})
work_datestringNoวันที่ (YYYY-MM-DD)

Response Fields (เพิ่มเติมสำหรับ type=work_cycle หรือ holiday)

FieldTypeNullableDescription
work_cycle_idstringYesรหัสกะการทำงาน (Base64 encoded)
work_cycle_codestringYesรหัสกะ
work_cycle_start_timestringYesเวลาเริ่มกะ (HH:mm:ss)
work_cycle_end_timestringYesเวลาสิ้นสุดกะ (HH:mm:ss)
work_cycle_hourstringYesชั่วโมงทำงานในกะ (HH:mm:ss)
work_total_cyele_limitstringYesชั่วโมงทำงานสูงสุด (HH:mm:ss)
work_total_in_cyclestringYesชั่วโมงทำงานจริง (HH:mm:ss)
absence_flag_lvstringYesรหัสประเภทการลา
absence_flag_namestringYesชื่อประเภทการลา
day_statusstringYesสถานะวัน เช่น "วันทำงาน", "วันหยุดนักขัตฤกษ์", "ยังไม่ได้เริ่มงาน/ลาออกไปแล้ว"

Error Responses

{ "code": 400, "message": "ไม่สำเร็จ", "errors": { "start_date": "Invalid format. Expected YYYY-MM-DD", "end_date": "Invalid format. Expected YYYY-MM-DD" } }
HTTP Statusสาเหตุวิธีแก้
400รูปแบบวันที่ไม่ถูกต้องส่ง start_date/end_date ในรูปแบบ YYYY-MM-DD
400end_date น้อยกว่า start_dateตรวจสอบให้ end_date มากกว่าหรือเท่ากับ start_date
400ไม่ได้ส่ง parameter ที่จำเป็นส่ง start_date, end_date, และ type ให้ครบ
400type ไม่ถูกต้องส่งเป็น "leave", "work_cycle", หรือ "holiday" เท่านั้น
400work_cycle_id ไม่ใช่ Base64 ที่ถูกต้องEncode work_cycle_id เป็น Base64 ให้ถูกต้อง
401API Key ไม่ถูกต้องหรือไม่ได้ส่งตรวจสอบ API Key

Code Examples

# ดูปฏิทินการลาในเดือนกุมภาพันธ์ curl -X GET "https://openapi.humansoft.co.th/api/v1/open-apis/salary/get-data-filter?path_action=get_calendar_month_filter" \ -H "Ocp-Apim-Subscription-Key: YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "start_date": "2026-02-01", "end_date": "2026-02-28", "type": "leave", "language_code": "TH" }' # ดูปฏิทินลาป่วยในช่วง 1 สัปดาห์ curl -X GET "https://openapi.humansoft.co.th/api/v1/open-apis/salary/get-data-filter?path_action=get_calendar_month_filter" \ -H "Ocp-Apim-Subscription-Key: YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "start_date": "2026-02-01", "end_date": "2026-02-07", "type": "leave", "time_leave_flag": "01", "language_code": "TH" }' # ดูปฏิทินกะการทำงานในเดือนกุมภาพันธ์ curl -X GET "https://openapi.humansoft.co.th/api/v1/open-apis/salary/get-data-filter?path_action=get_calendar_month_filter" \ -H "Ocp-Apim-Subscription-Key: YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "start_date": "2026-02-01", "end_date": "2026-02-28", "type": "work_cycle", "work_cycle_id": "MjAyNjAxMjFGQzg5RjNCQjkxMjA=", "language_code": "TH" }' # ดูปฏิทินวันหยุดนักขัตฤกษ์ในไตรมาสแรก curl -X GET "https://openapi.humansoft.co.th/api/v1/open-apis/salary/get-data-filter?path_action=get_calendar_month_filter" \ -H "Ocp-Apim-Subscription-Key: YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "start_date": "2026-01-01", "end_date": "2026-03-31", "type": "holiday", "holiday_flag_lv": "01", "language_code": "TH" }'

Notes

  • API นี้ต้องระบุ type เสมอ (ไม่สามารถเป็น null ได้ ต่างจาก Get Calendar Month)
  • สำหรับ type=leave ระบบจะ expand เอกสารลาข้ามวันเป็นรายวัน (เช่น ลา 3 วัน จะแสดง 3 record คนละวัน)
  • ระบบจะแสดงเฉพาะเอกสารลาที่ผ่านการอนุมัติ ไม่รวมเอกสารที่ยกเลิกหรือปฏิเสธ
  • Response สำหรับ type=leave จะไม่มี work_cycle fields และ day_status
  • Response สำหรับ type=work_cycle หรือ holiday จะมี work_cycle fields และ day_status ครบถ้วน
  • สำหรับ type=holiday เมื่อ holiday_flag_lv = "01" ระบบจะแสดงชื่อวันหยุดใน day_status (เช่น "วันหยุดนักขัตฤกษ์ (วันขึ้นปีใหม่)")

เพื่อประสิทธิภาพในการดึงข้อมูล:

  • แนะนำให้จำกัดช่วงวันที่ไม่เกิน 3 เดือน
  • ใช้ flag parameter (time_leave_flag, holiday_flag_lv) เพื่อกรองข้อมูล
  • แคชข้อมูลที่ดึงได้และแสดง loading indicator ขณะรอ

  • Get Calendar Month - ดูปฏิทินตามรอบเงินเดือน (รองรับ type=null)
  • Daily In Month Calendar - ดูปฏิทินของพนักงานรายคน
  • Current Month - ดูรอบเดือนปัจจุบัน (เรียกก่อนเพื่อหาช่วงวันที่)
Last updated on