Staff — Tổng quan
Staff là phần quản lý nhân sự và lịch làm việc: nhân viên xem lịch của mình (calendar, timetable), xin/được duyệt nghỉ phép (leave), và admin quản lý Staff Roster (lịch ca làm) theo tuần — có nhìn thấy nghỉ phép trùng ca để tránh xếp nhầm.
Bốn mảng chính
| Mảng | Là gì | Ai dùng |
|---|---|---|
Staff Home (/staff/home) | Trang "My Calendar" của nhân viên + link điều hướng | Staff |
Timetable (/staff/timetable) | Thời khóa biểu cá nhân, điều hướng theo ngày/tuần | Staff |
| Roster Weekly Planner | Admin Portal → Staff → Roster → Weekly Planner; xếp ca theo tuần | Admin |
| Leave / Availability | Xin nghỉ, duyệt nghỉ, khai báo lịch rảnh | Staff + Admin |
Vài ý quan trọng
- Leave là một ngày có giờ bắt buộc: mỗi record có
Date,TimeStart,TimeEnd; không có date range hoặcAll Day. - Shifts và Open khác nhau: Shifts bám published shift; Open không có
ShiftIdvà chịuLeave Request Restrictions. - Tracking Code theo quyền: form admin chỉ hiện code loại Leave; form staff không hiện Tracking Code hoặc Notes.
- Roster thấy được leave trùng ca: khi xếp/sửa ca, popup hiện trường
Leaveread-only nếu nhân viên có nghỉ phép giao với khoảng ca (so theo interval thời gian, không phải chỉ ngày). - Một người = một dòng trong planner, kể cả khi họ có bản ghi ở nhiều BU (dedupe theo
enterpriseUserId). - Open Shift là ca đã publish nhưng chưa gán nhân viên (
EmployeeId = null), để staff đủ điều kiện tự nhận ca.
Implementation hiện tại: NFC sign-in/out
Tuke có surface /sign-in-out cho contactless/NFC attendance. Gate tải các roll có thể sign-in/sign-out theo contact và site context; danh sách dùng cache ngắn hạn và chống request trùng. Khi submit signature, client gửi action cùng tên contact và tọa độ nếu WebView/browser cung cấp được; thiếu geolocation không chặn toàn bộ thao tác.
Ví dụ thực tế: Phụ huynh mở NFC link cho hai site. → Gate chỉ hiển thị booking đủ điều kiện của các site đó. → Sau khi sign-in, cache roll được clear để lần mở sau không dùng danh sách cũ.
Bạn nên đọc theo thứ tự
- Góc nhìn end-user — staff và admin thao tác gì.
- Khái niệm & kiến trúc — leave, roster, tracking code, dedupe.
- Dữ liệu & bảng đọc/ghi — EnterpriseUser, bảng Shift/EmployeeAbsence trong luồng.
- Case thường gặp — nghỉ trùng ca, cross-BU, sort slot.