Bỏ qua

7. ĐẶC TẢ PHÂN HỆ - QUẢN LÝ PHÉP

Đánh giá & Xử lý Thay đổi

Quản lý ngày nghỉ, định mức phép (balances) và quy trình xét duyệt xin nghỉ (Leave Approval Workflow).

Function ID Chức năng Trạng thái hiện trạng Phân loại thay đổi Mức độ ảnh hưởng Phương án xử lý Tóm tắt nội dung thay đổi
FN-LV-01 Xem quỹ phép (Leave Balances) Quy trình hiện hành (Đã có) Cải tiến giao diện thao tác Thấp Đặc tả bổ sung (Delta Spec) Trình bày lại Dashboard quỹ phép
FN-LV-02 Nộp đơn xin nghỉ (Submit Request) Quy trình hiện hành (Đã có) Thay đổi luồng nghiệp vụ chính Lớn Đặc tả lại toàn bộ luồng Đổi luồng nộp đơn nhiều ngày
FN-LV-03 Danh sách đơn xin nghỉ Quy trình hiện hành (Đã có) Giữ nguyên nghiệp vụ gốc Thấp Tham chiếu quy trình gốc Không thay đổi danh sách
FN-LV-04 Duyệt / Từ chối đơn xin nghỉ (Decide) Quy trình hiện hành (Đã có) Thay đổi luồng nghiệp vụ chính Lớn Đặc tả lại toàn bộ luồng Luồng duyệt 2 cấp mới
FN-LV-05 Hủy đơn xin nghỉ (Cancel) Quy trình hiện hành (Đã có) Cập nhật điều kiện nghiệp vụ phụ Thấp Đặc tả bổ sung (Delta Spec) Chặn hủy nếu đã duyệt
FN-LV-06 Xem lịch nghỉ phép (Leave Calendar) Tính năng bổ sung mới Xây dựng tính năng mới Trung bình Đặc tả tính năng mới Thêm View Lịch chung toàn công ty

Quy tắc chọn Phương án xử lý

Việc chọn Phương án xử lý cho từng chức năng ở trên tuân theo Decision Matrix chung của toàn hệ thống — xem 4.1.3 Requirement Phương án xử lý4.1.4 Decision Matrix.

Mẫu mô tả theo từng case

Mỗi UC bên dưới được trình bày theo đúng bố cục Case (A–F) tương ứng với Phân loại thay đổi của nó — xem định nghĩa chi tiết từng case tại 4.1.6 Mẫu mô tả theo từng case.

Phạm vi chức năng

Module này quản lý Quỹ phép (Leave Balances), Loại phép (Leave Types), và toàn bộ vòng đời của Đơn xin nghỉ phép (Leave Requests) từ lúc tạo, duyệt, đến khi trừ quỹ.

Business Rules dùng chung

Quy tắc duyệt phép (Leave Rules)

  • Trừ quỹ phép: Chỉ trừ vào quỹ phép (Balance) khi đơn ở trạng thái "Đã phê duyệt" (Approved).
  • Hủy đơn: Nhân viên chỉ có thể tự hủy đơn khi trạng thái là PENDING. Nếu đã duyệt, cần HR can thiệp.

Use Case Catalog

UC ID Use Case Vai trò thực hiện FR Dịch vụ tích hợp Giao diện thao tác
UC-LV-01 Xem quỹ phép Employee SCR-LV-01
UC-LV-02 Nộp đơn xin nghỉ Employee, HR, Admin FR-LV-02 POST /leave/requests SCR-LV-02
UC-LV-03 Danh sách đơn xin nghỉ Employee, HR/Admin SCR-LV-03
UC-LV-04 Duyệt / Từ chối đơn xin nghỉ Manager, HR PATCH /leave/requests/:id/decide SCR-LV-04
UC-LV-05 Hủy đơn xin nghỉ Employee SCR-LV-05
UC-LV-06 Xem lịch nghỉ phép Manager, HR, Employee GET /leave/calendar SCR-LV-06

7.1 UC-LV-01 - Xem quỹ phép

Mô tả: Nhân viên xem số ngày phép còn lại của mình trong năm hiện tại hoặc năm bất kỳ.

7.1

UC-LV-01 — Xem quỹ phép

Trường hợp B · Cải tiến giao diện thao tác CẢI TIẾN GIAO DIỆN Đặc tả bổ sung
Trạng thái
Quy trình hiện hành
Vai trò thực hiện
Employee
Điều kiện
Có quyền truy cập hệ thống
Quy tắc nghiệp vụ
RULE-LV-01
Màn hình UI
SCR-LV-01
Giao diện thao tác hiện tại (As-Is)

Giao diện cũ hiển thị quỹ phép dạng văn bản thô, không phân loại theo loại phép.

Giao diện thao tác mục tiêu (To-Be)

Dashboard quỹ phép trực quan với thẻ Progress Bar hiển thị số ngày Đã nghỉ / Còn lại / Tổng định mức.

UI Delta & Logic Mức độ ảnh hưởng

Trình bày lại Dashboard quỹ phép theo thiết kế mới. Logic tính toán quỹ phép giữ nguyên không đổi.


7.2 UC-LV-02 - Nộp đơn xin nghỉ

Mô tả: Nhân viên tạo một đơn xin nghỉ phép (theo giờ, theo buổi, hoặc nhiều ngày).

7.2

UC-LV-02 — Nộp đơn xin nghỉ phép

Trường hợp D · Thay đổi luồng nghiệp vụ chính THAY ĐỔI LUỒNG CHÍNH Đặc tả lại toàn bộ
Trạng thái
Quy trình hiện hành
Vai trò thực hiện
Employee, HR, Admin
Điều kiện
Tài khoản kích hoạt, quỹ phép khả dụng
Business Rules
RULE-LV-02
Màn hình UI
SCR-LV-02
API Endpoint
POST /leave/requests
Luồng xử lý chính (Main Flow)
  1. User chọn loại phép (leaveTypeId), khoảng thời gian (startDate, endDate) và hình thức (leaveMode).
  2. Hệ thống tự động gọi API GET /leave/shift-info để đối chiếu lịch ca làm việc và tính toán chính xác số ngày công/giờ phép sẽ bị trừ.
  3. User nhập lý do xin nghỉ, đính kèm tệp minh chứng (nếu có) và nhấn Nộp đơn (POST /leave/requests).
  4. Hệ thống kiểm tra các ràng buộc validation: Số dư quỹ phép > 0, không trùng lặp khoảng thời gian với các đơn xin nghỉ khác.
  5. Khởi tạo bản ghi ở trạng thái PENDING, đồng thời gửi thông báo (Notification/Email) đến Quản lý trực tiếp để chờ duyệt.
Luồng rẽ nhánh (Alternative Flow)
  • A1 - HR/Admin nộp thay: Người dùng thuộc vai trò HR/Admin được phép bổ sung tham số targetEmployeeId để nộp đơn thay cho nhân viên khác. Hệ thống sẽ ghi nhận lịch sử created_by = HR_USER.
Luồng ngoại lệ (Exception Flow)
  • E1 - Quỹ phép không đủ: Hệ thống hiển thị cảnh báo 400 Bad Request: LEAVE_BALANCE_INSUFFICIENT và từ chối khởi tạo đơn.
  • E2 - Trùng lịch nghỉ: Báo lỗi 409 Conflict nếu khoảng thời gian đã tồn tại đơn ở trạng thái PENDING/APPROVED.

7.3 UC-LV-03 - Danh sách đơn xin nghỉ

Mô tả: Xem danh sách và trạng thái các đơn xin nghỉ đã nộp.

7.3

UC-LV-03 — Danh sách đơn xin nghỉ

Trường hợp A · Giữ nguyên nghiệp vụ gốc GIỮ NGUYÊN NGHIỆP VỤ Tham chiếu gốc
Trạng thái
Quy trình hiện hành
Mục tiêu (BN)
BN-01
Vai trò thực hiện
Employee (Cá nhân), HR/Admin (Toàn bộ)
Điều kiện
Đã đăng nhập hệ thống.
Quy tắc nghiệp vụ
RULE-LV-03
Màn hình UI
SCR-LV-03
Đặc tả Quy trình hiện hành (Tham chiếu gốc)

Giữ nguyên màn hình hiển thị danh sách đơn xin nghỉ và bộ lọc trạng thái PENDING/APPROVED/REJECTED cũ.

Mức độ ảnh hưởng & Regression

Không phát triển mới. Chỉ thực hiện test regression tính năng lọc và hiển thị danh sách.


7.4 UC-LV-04 - Duyệt / Từ chối đơn xin nghỉ

Mô tả: Quản lý hoặc HR xem danh sách đơn chờ duyệt và ra quyết định.

7.4

UC-LV-04 — Duyệt / Từ chối đơn xin nghỉ

Trường hợp D · Thay đổi luồng nghiệp vụ chính THAY ĐỔI LUỒNG CHÍNH Đặc tả lại toàn bộ
Trạng thái
Quy trình hiện hành
Mục tiêu (BN)
BN-01
Vai trò thực hiện
Manager, HR
Điều kiện
Quyền leave.decide
Quy tắc nghiệp vụ
RULE-LV-04 (Luồng duyệt 2 cấp mới)
Màn hình UI
SCR-LV-04
API Endpoint
PATCH /leave/requests/:id/decide
Main Flow (Phê duyệt hoặc Từ chối)
  1. Quản lý/HR gọi GET /leave/requests/pending để xem danh sách đơn chờ duyệt thuộc thẩm quyền.
  2. Xem chi tiết nội dung đơn, lý do và minh chứng đính kèm.
  3. Gọi API PATCH /leave/requests/:id/decide truyền tham số approve=true hoặc approve=false kèm lý do.
  4. Nếu duyệt (APPROVED), hệ thống chính thức thực hiện trừ quỹ phép tương ứng.
  5. Hệ thống tự động gửi thông báo (Notification/Email) cập nhật kết quả cho nhân viên nộp đơn.

7.5 UC-LV-05 - Hủy đơn xin nghỉ

Mô tả: Rút lại đơn xin nghỉ đã nộp.

7.5

UC-LV-05 — Hủy đơn xin nghỉ

Trường hợp C · Cập nhật điều kiện phụ CẬP NHẬT ĐIỀU KIỆN PHỤ Đặc tả bổ sung
Trạng thái
Quy trình hiện hành
Mục tiêu (BN)
BN-01
Vai trò thực hiện
Employee
Điều kiện
Đơn ở trạng thái PENDING
Quy tắc nghiệp vụ
RULE-LV-05
Màn hình UI
SCR-LV-05
As-Is (Hiện trạng)

Nhân viên có thể bấm hủy đơn bất kỳ lúc nào, kể cả khi đơn đã ở trạng thái APPROVED.

To-Be & Delta (Mục tiêu thay đổi)

Chỉ cho phép nhân viên tự hủy khi đơn ở trạng thái PENDING. Nếu đơn đã APPROVED, chặn nút Hủy và yêu cầu HR can thiệp.


7.6 UC-LV-06 - Xem lịch nghỉ phép

Mô tả: Xem lịch tổng hợp những người đang nghỉ phép trong phòng ban hoặc toàn công ty.

7.6

UC-LV-06 — Xem lịch nghỉ phép

Trường hợp E · Tính năng xây dựng mới TÍNH NĂNG MỚI Đặc tả mới
Trạng thái
Tính năng mới bổ sung
Mục tiêu (BN)
BN-01
Vai trò thực hiện
Manager, HR, Employee
Điều kiện
Quyền leave.view_calendar
Quy tắc nghiệp vụ
RULE-LV-06
Màn hình UI
SCR-LV-06
API Endpoint
GET /leave/calendar
Main Flow (Luồng chính)
  1. User mở màn hình Lịch nghỉ phép.
  2. Hệ thống gọi API GET /leave/calendar?year=YYYY&month=MM&departmentId=xxx.
  3. Hệ thống trả về danh sách các ca nghỉ đã được duyệt hiển thị theo giao diện Lịch tháng/tuần.