Staff — Dữ liệu & bảng đọc/ghi
Góc nhìn database cho Staff + các khái niệm bên ngoài mà Staff tham chiếu. Quy ước: 📖 READ, ✏️ WRITE (insert/update).
Khái niệm liên quan bên ngoài
| Khái niệm | Là gì | Vai trò trong Staff | Domain sở hữu |
|---|---|---|---|
| EnterpriseUser | Danh tính người xuyên BU (enterpriseUserId). | Dùng để dedupe một-người-một-dòng trong Weekly Planner (gộp các Employee của cùng người). | Identity/Enterprise |
| BusinessUnit / Org (Site) | Đơn vị / cơ sở. | Scope dữ liệu; cross-BU merge giữ employeeId của BU đang chọn làm canonical. | Org |
TrackingCode (qua ShiftTrackingCode) | Mã phân loại; TypeId = Leave / Shift. | Form leave chỉ hiện code TypeId = Leave; gắn vào leave/ca. | Master Data |
Attendee (qua Attendee_Employee) | Trẻ/học viên liên kết nhân viên. | Một số tính năng staff–attendee (ngoài leave core). | Attendee |
| TermProduct / Session | Suất học/sự kiện. | Hiển thị trên Timetable (Syncfusion ScheduleComponent). | Program/Term |
| Permission / PermissionTemplate | Quyền. | Lọc staff theo role trong planner. | Identity/Access |
Bảng dữ liệu chính
| Nhóm | Bảng | Tác dụng |
|---|---|---|
| Nhân viên | Employee | Bản ghi nhân viên trong một BU (RoleId, link enterprise). |
Org_Employee | Liên kết nhân viên ↔ site/org. | |
Employee_PermissionTemplate | Gán quyền. | |
| Lịch ca (Roster) | Shift | Ca làm việc (khoảng thời gian). |
ShiftRecurrence | Lặp ca theo chu kỳ. | |
ShiftTrackingCode | Tracking code gắn ca (và là nguồn code Leave/Shift). | |
ShiftClock | Chấm công (clock in/out). | |
| Nghỉ phép (Leave) | EmployeeAbsence | Nghỉ phép/absence: khoảng ngày-giờ, status, tracking code. |
| Khả dụng | EmployeeAvailability, EmployeeAvailabilityLine | Lịch rảnh theo thứ + time slot. |
| Tuân thủ | EmployeeCompliance | Giấy tờ/chứng chỉ (nguồn cho reminder hết hạn). |
⚠️ Leave được lưu ở
EmployeeAbsence(absence). Nhiều quy tắc Staff là display-only (sort/dedupe/layout) — không đổi các bảng này.
Bảng dữ liệu trong từng luồng
Luồng 1 — Roster Weekly Planner (admin xếp ca)
| Hành động | Bảng | Tác dụng |
|---|---|---|
| Load staff rows | Employee, Org_Employee 📖 READ | Lấy nhân viên theo role + site; dedupe theo enterpriseUserId. |
| Hiện leave trùng ca | EmployeeAbsence 📖 READ | Tính giao interval với khoảng ca → trường Leave read-only. |
| Tạo/sửa ca | Shift, ShiftRecurrence, ShiftTrackingCode ✏️ WRITE | Lưu ca + tracking code. |
Luồng 2 — Leave (xin / duyệt nghỉ)
| Hành động | Bảng | Tác dụng |
|---|---|---|
| Load tracking codes | ShiftTrackingCode 📖 READ | Lọc TypeId = Leave. |
| Tạo/sửa leave | EmployeeAbsence ✏️ WRITE | Lưu nghỉ + tracking code đã chọn. |
| Approve leave | EmployeeAbsence ✏️ UPDATE | Chuyển trạng thái duyệt; gắn tracking code. |
Luồng 3 — Availability & Timetable
| Hành động | Bảng | Tác dụng |
|---|---|---|
| Xem/sửa availability | EmployeeAvailability, EmployeeAvailabilityLine 📖✏️ | Time slot theo thứ (UI sort theo start time). |
| Hiển thị timetable | Shift 📖 READ; TermProduct/session 📖 READ | Lưới sự kiện theo ngày/tuần. |
Liên quan
- Khái niệm & kiến trúc — leave, roster, tracking code.
- Case thường gặp — nghỉ trùng ca, cross-BU, sort slot.