Staff — Case thường gặp
"Một người hiện 2 dòng trong Weekly Planner"
Không được phép — planner dedupe một người = một dòng. Nếu thấy 2 dòng, kiểm tra:
- Người đó có
enterpriseUserIdkhông? Nếu có → phải dedupe theoenterpriseUserId. - Thiếu
enterpriseUserId→ dedupe theoemployeeId. - Có giữ đúng
employeeIdcủa BU đang chọn làm canonical resource id không?
Người thiếu cả hai identity thì được là dòng riêng (đúng theo
INV-ROSTER-WP-001 v3).
Ví dụ thực tế: Một nhân viên làm ở 2 BU, Weekly Planner hiện 2 dòng cho cùng người. → Mỗi người chỉ một dòng để xếp ca không nhầm. → Dedupe theo
enterpriseUserId(hoặcemployeeIdcủa BU đang chọn) → gộp về một dòng.
"Xếp ca nhằm lúc nhân viên đang nghỉ"
Popup Create/Edit Shift hiện trường Leave read-only khi có leave giao khoảng ca. Nếu không thấy cảnh báo dù biết có nghỉ:
- Kiểm tra đánh giá có theo interval thời gian không (không phải so trùng ngày). Leave
09:00–11:00và ca10:30–12:00giao nhau → phải hiện. - Trường này cũng áp dụng ở Timesheet rows và Timesheet exports.
Ví dụ thực tế: Quản lý xếp ca
10:30–12:00cho người đang nghỉ phép09:00–11:00. → Cảnh báo để không xếp nhằm lúc nghỉ. → Đánh giá theo interval (hai khoảng giao nhau) → hiện trườngLeaveread-only trong popup.
"Form leave hiện cả tracking code loại Shift"
Sai — form leave (create/edit/approve) chỉ được hiện code TypeId = Leave. Nếu thấy code Shift trong selector leave → lọc sai. Code Shift phải bị loại.
Ví dụ thực tế: Khi duyệt đơn nghỉ, selector tracking code lại hiện cả code loại Shift. → Chỉ cho chọn code hợp lệ cho nghỉ phép. → Lọc
TypeId = Leave, loại code Shift khỏi form create/edit/approve.
"Time slot hiển thị lộn xộn theo giờ"
Availability time slots phải sort theo start time tăng dần trong từng cột thứ, bất kể thứ tự API trả. Ví dụ: 5:00 AM–9:30 AM phải đứng trước 2:30 PM–6:30 PM. Sort không được dời slot sang thứ khác. Edit Time Slot popup templates cũng sort theo start time.
"Timetable có 2 bộ nút điều hướng ngày"
Trang /staff/timetable chỉ được có một bộ điều khiển ngày/view. Header của Syncfusion ScheduleComponent là source of truth cho prev/next/today + đổi view. Nếu thấy bộ thứ hai (custom date-range selector phía trên) → thừa, cần bỏ; nhãn range phải khớp lưới đang render.
"Roster hiện absence chưa duyệt"
Weekly Planner chỉ hiển thị absence đã approved (approved-only). Absence chưa duyệt không lên planner.
Ví dụ thực tế: Nhân viên vừa nộp đơn nghỉ, quản lý đã thấy "nghỉ" trên Weekly Planner. → Chỉ phản ánh nghỉ đã được duyệt để xếp ca tin cậy. → Absence còn pending không lên planner; duyệt xong mới hiển thị.
"+New Leave hay Add Leave?"
Đúng wording là +New Leave. Nếu thấy Add Leave → cũ, cần đổi. Nút mở đúng drawer tạo leave hiện có.
"Leave drawer chật/khó dùng trên màn nhỏ"
Drawer dùng layout gọn-rộng: Start/End Date một hàng, Start/End Time một hàng khi viewport đủ rộng. Viewport hẹp → các control paired thu gọn không chồng text/label/input/action.