Time Leave Events
Events ที่เกี่ยวข้องกับเอกสารคำร้องขอลางาน
ข้อมูลใน body ของแต่ละ Event ประกอบด้วยฟิลด์พื้นฐานของเอกสาร, ข้อมูลพนักงาน, สถานะการอนุมัติ และข้อมูลเฉพาะของประเภทการลา (ชื่อประเภทลา, สิทธิ์การรับค่าจ้าง, ยอดโควต้าคงเหลือ)
time_leave.created
เกิดขึ้นเมื่อสร้างคำร้องขอลางานใหม่
ตัวอย่าง Payload:
{
"request_id": "req_tl12345678",
"event": "time_leave.created",
"event_occurred_at": "2025-01-24 10:30:00",
"body": {
"time_leave_id": "L2501001",
"employee_id": "20250101ABCD1234",
"effective_dt": "2025-01-24",
"expire_dt": "2025-01-24",
"effective_hour": "2025-01-24 08:00:00",
"expire_hour": "2025-01-24 17:00:00",
"absence_flag_lv": "01",
"time_leave_desc": "เป็นไข้หวัด",
"absence_day": "1.0000",
"absence_sum_time": "08:00:00",
"absence_total": "1.00",
"time_leave_day": "1",
"time_leave_hour": "8",
"time_leave_path": null,
"approve_flag": "01",
"approve_id": "",
"approve_upd": null,
"approve_remark": null,
"approve_method": "01",
"document_approve_flag": "01",
"document_created_by": "EMP001",
"document_last_upd_by": "EMP001",
"employee_code": "EMP001",
"employee_title_lv": "01",
"company_id": "C001",
"branch_id": "B001",
"department_id": "D001",
"position_id": "P001",
"full_name": "สมชาย ใจดี",
"approval_status": "Pending",
"source": "hms_admin",
"resource_type": "time_leave",
"actor_id": "EMP001",
"time_leave_flag_name": "ลาป่วย",
"time_leave_flag_name_en": "Sick Leave",
"time_leave_flag_unit": "Daily",
"time_leave_flag_paid_01": 100,
"time_leave_flag_paid_02": 100,
"time_leave_flag_paid_04": 100,
"flag_paid_type_name": "ได้รับค่าจ้างทุกประเภท",
"flag_paid_type_name_en": "Paid leave (all employee types)",
"total_quota": 30,
"used_quota": 0,
"remaining_quota": 30,
"employee_title_name": "นาย",
"leave_period_type": "full_day"
}
}time_leave.updated
เกิดขึ้นเมื่อแก้ไขข้อมูลใบลา
ตัวอย่าง Payload:
{
"request_id": "req_tl12345679",
"event": "time_leave.updated",
"event_occurred_at": "2025-01-24 10:35:00",
"body": {
"time_leave_id": "L2501001",
"employee_id": "20250101ABCD1234",
"effective_dt": "2025-01-24",
"expire_dt": "2025-01-24",
"effective_hour": "2025-01-24 08:00:00",
"expire_hour": "2025-01-24 17:00:00",
"absence_flag_lv": "01",
"time_leave_desc": "เป็นไข้หวัดใหญ่ (อัปเดตอาการ)",
"absence_day": "1.0000",
"absence_sum_time": "08:00:00",
"absence_total": "1.00",
"time_leave_day": "1",
"time_leave_hour": "8",
"time_leave_path": null,
"approve_flag": "01",
"approve_id": "",
"approve_upd": null,
"approve_remark": null,
"approve_method": "01",
"document_approve_flag": "01",
"document_created_by": "EMP001",
"document_last_upd_by": "EMP001",
"employee_code": "EMP001",
"employee_title_lv": "01",
"company_id": "C001",
"branch_id": "B001",
"department_id": "D001",
"position_id": "P001",
"full_name": "สมชาย ใจดี",
"approval_status": "Pending",
"source": "hms_admin",
"resource_type": "time_leave",
"actor_id": "EMP001",
"time_leave_flag_name": "ลาป่วย",
"time_leave_flag_name_en": "Sick Leave",
"time_leave_flag_unit": "Daily",
"time_leave_flag_paid_01": 100,
"time_leave_flag_paid_02": 100,
"time_leave_flag_paid_04": 100,
"flag_paid_type_name": "ได้รับค่าจ้างทุกประเภท",
"flag_paid_type_name_en": "Paid leave (all employee types)",
"total_quota": 30,
"used_quota": 0,
"remaining_quota": 30,
"employee_title_name": "นาย",
"leave_period_type": "full_day"
}
}time_leave.deleted
เกิดขึ้นเมื่อลบหรือยกเลิกใบลา
ตัวอย่าง Payload:
{
"request_id": "req_tl12345680",
"event": "time_leave.deleted",
"event_occurred_at": "2025-01-24 10:40:00",
"body": {
"time_leave_id": "L2501001",
"employee_id": "20250101ABCD1234",
"absence_flag_lv": "01",
"effective_dt": "2025-01-24",
"effective_hour": "2025-01-24 08:30:00",
"expire_dt": "2025-01-24",
"expire_hour": "2025-01-24 17:30:00",
"absence_day": "1.0000",
"absence_sum_time": "08:00:00",
"absence_total": "1.00",
"time_leave_day": "1",
"time_leave_hour": "8",
"time_leave_desc": "เป็นไข้หวัดใหญ่ (อัปเดตอาการ)",
"time_leave_path": null,
"approve_flag": "01",
"approve_id": "",
"approve_upd": null,
"approve_remark": null,
"approve_method": "01",
"document_approve_flag": "01",
"document_created_by": "EMP001",
"document_last_upd_by": "EMP001",
"employee_code": "EMP001",
"employee_title_lv": "01",
"company_id": "C001",
"branch_id": "B001",
"department_id": "D001",
"position_id": "P001",
"full_name": "สมชาย ใจดี",
"approval_status": "Pending",
"source": "hms_admin",
"resource_type": "time_leave",
"actor_id": "EMP001",
"time_leave_flag_name": "ลาป่วย",
"time_leave_flag_name_en": "Sick Leave",
"time_leave_flag_unit": "Daily",
"time_leave_flag_paid_01": 100,
"time_leave_flag_paid_02": 100,
"time_leave_flag_paid_04": 100,
"flag_paid_type_name": "ได้รับค่าจ้างทุกประเภท",
"flag_paid_type_name_en": "Paid leave (all employee types)",
"total_quota": 30,
"used_quota": 0,
"remaining_quota": 30,
"employee_title_name": "นาย",
"leave_period_type": "full_day"
}
}เมื่อได้รับ event นี้ เอกสารใบลาถูกลบออกจากระบบแล้ว ไม่สามารถกู้คืนได้
time_leave.approval_progressed
เกิดขึ้นเมื่อมีการดำเนินการอนุมัติตามสายงาน (ผ่านบางขั้นแต่ยังไม่เสร็จสิ้น)
ตัวอย่าง Payload:
{
"request_id": "req_tl12345681",
"event": "time_leave.approval_progressed",
"event_occurred_at": "2025-01-24 11:00:00",
"body": {
"time_leave_id": "L2501001",
"employee_id": "20250101ABCD1234",
"absence_flag_lv": "01",
"effective_dt": "2025-01-24",
"effective_hour": "2025-01-24 08:30:00",
"expire_dt": "2025-01-24",
"expire_hour": "2025-01-24 17:30:00",
"absence_day": "1.0000",
"absence_sum_time": "08:00:00",
"absence_total": "1.00",
"time_leave_day": "1",
"time_leave_hour": "8",
"time_leave_desc": "เป็นไข้หวัด",
"time_leave_path": null,
"approve_flag": "04",
"approve_id": "MGR001",
"approve_upd": "2025-01-24 11:00:00",
"approve_remark": "รับทราบอาการ",
"approve_method": "01",
"document_approve_flag": "01",
"document_created_by": "EMP001",
"document_last_upd_by": "MGR001",
"employee_code": "EMP001",
"employee_title_lv": "01",
"company_id": "C001",
"branch_id": "B001",
"department_id": "D001",
"position_id": "P001",
"full_name": "สมชาย ใจดี",
"approval_status": "Approval Progressed Step 1",
"source": "hms_admin",
"resource_type": "time_leave",
"actor_id": "MGR001",
"time_leave_flag_name": "ลาป่วย",
"time_leave_flag_name_en": "Sick Leave",
"time_leave_flag_unit": "Daily",
"time_leave_flag_paid_01": 100,
"time_leave_flag_paid_02": 100,
"time_leave_flag_paid_04": 100,
"flag_paid_type_name": "ได้รับค่าจ้างทุกประเภท",
"flag_paid_type_name_en": "Paid leave (all employee types)",
"total_quota": 30,
"used_quota": 0,
"remaining_quota": 30,
"employee_title_name": "นาย",
"leave_period_type": "full_day"
}
}actor_id คือผู้อนุมัติที่ดำเนินการในขั้นตอนนี้ ส่วน document_created_by คือผู้ขอลา
time_leave.approved
เกิดขึ้นเมื่อใบลาได้รับการอนุมัติเสร็จสมบูรณ์ (ผ่านทุกขั้นตอนของสายอนุมัติ)
ตัวอย่าง Payload:
{
"request_id": "req_tl12345682",
"event": "time_leave.approved",
"event_occurred_at": "2025-01-24 11:30:00",
"body": {
"time_leave_id": "L2501001",
"employee_id": "20250101ABCD1234",
"absence_flag_lv": "01",
"effective_dt": "2025-01-24",
"effective_hour": "2025-01-24 08:30:00",
"expire_dt": "2025-01-24",
"expire_hour": "2025-01-24 17:30:00",
"absence_day": "1.0000",
"absence_sum_time": "08:00:00",
"absence_total": "1.00",
"time_leave_day": "1",
"time_leave_hour": "8",
"time_leave_desc": "เป็นไข้หวัด",
"time_leave_path": null,
"approve_flag": "02",
"approve_id": "MGR002",
"approve_upd": "2025-01-24 11:30:00",
"approve_remark": "อนุมัติให้พักผ่อน",
"approve_method": "01",
"document_approve_flag": "02",
"document_created_by": "EMP001",
"document_last_upd_by": "MGR002",
"employee_code": "EMP001",
"employee_title_lv": "01",
"company_id": "C001",
"branch_id": "B001",
"department_id": "D001",
"position_id": "P001",
"full_name": "สมชาย ใจดี",
"approval_status": "Approved",
"source": "hms_admin",
"resource_type": "time_leave",
"actor_id": "MGR002",
"time_leave_flag_name": "ลาป่วย",
"time_leave_flag_name_en": "Sick Leave",
"time_leave_flag_unit": "Daily",
"time_leave_flag_paid_01": 100,
"time_leave_flag_paid_02": 100,
"time_leave_flag_paid_04": 100,
"flag_paid_type_name": "ได้รับค่าจ้างทุกประเภท",
"flag_paid_type_name_en": "Paid leave (all employee types)",
"total_quota": 30,
"used_quota": 1,
"remaining_quota": 29,
"employee_title_name": "นาย",
"leave_period_type": "full_day"
}
}หลังอนุมัติแล้ว used_quota และ remaining_quota จะอัปเดตตามวันลาที่ใช้ไป
time_leave.rejected
เกิดขึ้นเมื่อใบลาถูกปฏิเสธ
ตัวอย่าง Payload:
{
"request_id": "req_tl12345683",
"event": "time_leave.rejected",
"event_occurred_at": "2025-01-24 11:35:00",
"body": {
"time_leave_id": "L2501001",
"employee_id": "20250101ABCD1234",
"absence_flag_lv": "01",
"effective_dt": "2025-01-24",
"effective_hour": "2025-01-24 08:30:00",
"expire_dt": "2025-01-24",
"expire_hour": "2025-01-24 17:30:00",
"absence_day": "1.0000",
"absence_sum_time": "08:00:00",
"absence_total": "1.00",
"time_leave_day": "1",
"time_leave_hour": "8",
"time_leave_desc": "เป็นไข้หวัด",
"time_leave_path": null,
"approve_flag": "03",
"approve_id": "MGR002",
"approve_upd": "2025-01-24 11:35:00",
"approve_remark": "ข้อมูลไม่ครบถ้วน",
"approve_method": "01",
"document_approve_flag": "03",
"document_created_by": "EMP001",
"document_last_upd_by": "MGR002",
"employee_code": "EMP001",
"employee_title_lv": "01",
"company_id": "C001",
"branch_id": "B001",
"department_id": "D001",
"position_id": "P001",
"full_name": "สมชาย ใจดี",
"approval_status": "Rejected",
"source": "hms_admin",
"resource_type": "time_leave",
"actor_id": "MGR002",
"time_leave_flag_name": "ลาป่วย",
"time_leave_flag_name_en": "Sick Leave",
"time_leave_flag_unit": "Daily",
"time_leave_flag_paid_01": 100,
"time_leave_flag_paid_02": 100,
"time_leave_flag_paid_04": 100,
"flag_paid_type_name": "ได้รับค่าจ้างทุกประเภท",
"flag_paid_type_name_en": "Paid leave (all employee types)",
"total_quota": 30,
"used_quota": 0,
"remaining_quota": 30,
"employee_title_name": "นาย",
"leave_period_type": "full_day"
}
}Body Fields Reference
Base Document Fields (มีในทุก event)
| Field | Type | Description |
|---|---|---|
employee_id | string | รหัสพนักงานในระบบ (Internal ID) |
employee_code | string | รหัสพนักงาน |
employee_title_lv | string | รหัสคำนำหน้าชื่อ |
employee_title_name | string | ชื่อคำนำหน้า เช่น นาย, นาง, นางสาว (เพิ่มให้อัตโนมัติ) |
full_name | string | ชื่อ-นามสกุลพนักงาน |
company_id | string | รหัสบริษัท |
branch_id | string | รหัสสาขา |
department_id | string | รหัสแผนก |
position_id | string | รหัสตำแหน่ง |
approve_flag / document_approve_flag | string | รหัสสถานะการอนุมัติ (01=Pending, 02=Approved, 03=Rejected, 04+=Step X) |
approve_id | string | รหัสพนักงานผู้อนุมัติ (ถ้ามี) |
approve_upd | string | วันที่และเวลาที่อนุมัติ (YYYY-MM-DD HH:mm:ss) |
approve_remark | string | หมายเหตุการอนุมัติ |
approve_method | string | รหัสวิธีการอนุมัติ (เช่น 01, 02) |
approval_status | string | สถานะการอนุมัติ (เช่น Pending, Approved, Rejected) |
document_created_by | string | รหัสพนักงานผู้สร้างคำร้อง/เอกสาร |
document_last_upd_by | string | รหัสพนักงานผู้อัปเดต/อนุมัติเอกสารล่าสุด |
source | string | แหล่งที่มาของการทำรายการ (เช่น hms_admin, openapi) |
resource_type | string | ประเภทของเอกสาร (เช่น time_leave, overtime) |
actor_id | string | รหัสผู้ใช้งานที่ทำให้เกิด Event นี้ (เช่น ผู้ขอ, ผู้อนุมัติตามสายงาน) |
Time Leave Fields
| Field | Type | Description |
|---|---|---|
time_leave_id | string | รหัสเอกสารลางาน |
absence_flag_lv | string | รหัสประเภทการลาในระบบ |
effective_dt | string | วันที่เริ่มต้นการลา (YYYY-MM-DD) |
effective_hour | string | วันที่และเวลาเริ่มต้นการลา (YYYY-MM-DD HH:mm:ss) |
expire_dt | string | วันที่สิ้นสุดการลา (YYYY-MM-DD) |
expire_hour | string | วันที่และเวลาสิ้นสุดการลา (YYYY-MM-DD HH:mm:ss) |
absence_day | string | จำนวนวันที่ลา |
absence_sum_time | string | จำนวนเวลาที่ลา (HH:mm:ss) |
absence_total | string | ยอดรวมการลา (ตามหน่วยของประเภทการลา) |
time_leave_day | string | จำนวนวันที่ลา |
time_leave_hour | string | จำนวนชั่วโมงที่ลา |
time_leave_desc | string | เหตุผลหรือหมายเหตุการลา |
time_leave_path | string | พาธไฟล์แนบ (ถ้ามี) |
time_leave_flag_name | string | ชื่อประเภทการลา (ภาษาไทย) |
time_leave_flag_name_en | string | ชื่อประเภทการลา (ภาษาอังกฤษ) |
time_leave_flag_unit | string | หน่วยของการลา (Daily = รายวัน, Hourly = รายชั่วโมง) |
leave_period_type | string | รูปแบบช่วงเวลาลา (full_day, morning, afternoon, specific_time) (Optional) |
flag_paid_type_name | string | สิทธิ์การรับค่าจ้าง (เช่น ได้รับค่าจ้างทุกประเภท, ไม่ได้รับค่าจ้าง) |
flag_paid_type_name_en | string | สิทธิ์การรับค่าจ้าง (ภาษาอังกฤษ) |
total_quota | number | โควต้าวันลาทั้งหมดของประเภทนี้ในปีปัจจุบัน |
used_quota | number | จำนวนโควต้าที่ถูกใช้ไปแล้ว |
remaining_quota | number | จำนวนโควต้าที่คงเหลือใช้งานได้ |
สรุป Time Leave Events
| Event Code | คำอธิบาย |
|---|---|
time_leave.created | สร้างคำร้องขอลางานใหม่ |
time_leave.updated | แก้ไขข้อมูลใบลา |
time_leave.deleted | ลบหรือยกเลิกใบลา |
time_leave.approval_progressed | ดำเนินการอนุมัติตามสายงาน (ยังไม่เสร็จสิ้น) |
time_leave.approved | ใบลาได้รับการอนุมัติเสร็จสมบูรณ์ |
time_leave.rejected | ใบลาถูกปฏิเสธ |