App 2 – Nghỉ phép & ngày lễ
Hướng: Bổ sung vào hrm · Đợt: Song song (backlog hrm) · Phụ thuộc: App 1
Quy ước chung, nguồn dữ liệu nhân viên và cách chạy builder: 00-tong-quan.md
Mục đích: nhân viên xin nghỉ theo chính sách, quản lý duyệt, hệ thống tự tính số ngày phép còn lại và trừ ngày lễ. Nguồn: Time Off, Holidays, Approval Workflows.
Hướng: bổ sung vào hrm. hrm đã có chính sách nghỉ (tích lũy, chuyển năm, duyệt quản lý/HR), số dư, đơn nghỉ, ngày lễ. Cần đối chiếu và thêm: loại ngày lễ, nửa ngày, lặp hằng năm; chặn đơn trùng ngày; lịch nghỉ của team.
Vai trò & quyền
| Vai trò | Được làm |
|---|---|
| Quản trị (HR) | Quản lý chính sách nghỉ, ngày lễ, điều chỉnh số dư phép; xem mọi đơn |
| Quản lý | Xem đơn của nhân viên trong phòng ban; duyệt hoặc từ chối kèm lý do |
| Nhân viên | Tạo, xem, hủy đơn của mình; xem số dư phép của mình; xem lịch nghỉ của team |
Dữ liệu
| Thực thể | Trường | Ghi chú |
|---|---|---|
| Chính sách nghỉ | tên, có lương (đúng/sai), cần duyệt (đúng/sai), số ngày/năm (để trống = không giới hạn), cách tích lũy (Hàng tháng, Hàng năm, Không), số ngày tối đa được chuyển sang năm sau | Mẫu: Phép năm 20 ngày, tích lũy hàng tháng; Ốm 10; Việc riêng 5; Không lương không giới hạn; Thai sản 90; Nghỉ chung khi vợ sinh 14 |
| Đơn nghỉ | nhân viên, chính sách, từ ngày, đến ngày, nửa ngày (Sáng/Chiều/không), số ngày (tự tính), lý do, trạng thái, người duyệt, thời điểm duyệt, lý do từ chối | |
| Số dư phép | nhân viên, chính sách, năm, được cấp, chuyển từ năm trước, đã dùng, đang chờ duyệt, còn lại (tự tính) | Còn lại = được cấp + chuyển sang − đã dùng − đang chờ |
| Ngày lễ | tên, ngày, loại (Lễ quốc gia, Lễ công ty, Nghỉ linh hoạt, Nửa ngày), lặp hằng năm |
Trạng thái đơn nghỉ
| Trạng thái | Ai chuyển sang |
|---|---|
| Chờ duyệt | Nhân viên gửi đơn (chính sách cần duyệt) |
| Đã duyệt | Quản lý; hoặc tự động nếu chính sách không cần duyệt |
| Từ chối | Quản lý, bắt buộc ghi lý do |
| Đã hủy | Nhân viên, khi đơn còn Chờ duyệt hoặc Đã duyệt nhưng chưa tới ngày nghỉ |
Quy tắc nghiệp vụ
- Số ngày nghỉ = số ngày làm việc trong khoảng, không tính thứ Bảy, Chủ nhật và ngày lễ; nửa ngày tính 0,5.
- Đến ngày phải sau hoặc bằng từ ngày.
- Không cho gửi đơn vượt số ngày còn lại (trừ chính sách không giới hạn).
- Một nhân viên không được có hai đơn trùng ngày đang Chờ duyệt hoặc Đã duyệt.
- Gửi đơn → cộng vào "đang chờ"; duyệt → chuyển sang "đã dùng"; từ chối hoặc hủy → trả lại số dư.
- Quản lý không duyệt đơn của chính mình; chỉ duyệt đơn của nhân viên trong phòng ban mình.
- Chính sách tích lũy hàng tháng: mỗi tháng cộng số ngày/năm ÷ 12 vào "được cấp".
- Đầu năm: số dư còn lại được chuyển sang năm mới, không quá mức tối đa của chính sách.
Màn hình
| Màn hình | Nội dung |
|---|---|
| Đơn của tôi | Danh sách đơn, nút Tạo đơn, thẻ số dư theo từng chính sách |
| Duyệt đơn | Đơn chờ duyệt của phòng ban; Duyệt / Từ chối (hàng loạt được) |
| Lịch nghỉ | Lịch tháng hiển thị ai nghỉ ngày nào, kèm ngày lễ |
| Chính sách & ngày lễ | Quản trị chính sách, danh sách ngày lễ theo năm |
| Số dư phép | Bảng số dư mọi nhân viên, HR điều chỉnh tay kèm ghi chú |
Prompt tham khảo
Khuyến nghị đội dev làm trực tiếp trong repo hrm: builder mở được repo có sẵn nhưng việc chạy migration cho app có database được nhập vào chưa được thiết kế xong. Prompt dưới đây mô tả đầy đủ nghiệp vụ, dùng để đối chiếu với hrm và lập backlog; chỉ làm phần còn thiếu nêu ở dòng Hướng.
Tôi cần app quản lý nghỉ phép có phân quyền, lưu trong database.
Dữ liệu: chính sách nghỉ (tên, có lương, cần duyệt, số ngày/năm, tích lũy
hàng tháng hoặc hàng năm, số ngày được chuyển sang năm sau), ngày lễ (tên,
ngày, lặp hằng năm), đơn nghỉ (nhân viên, chính sách, từ ngày, đến ngày, nửa
ngày, lý do, trạng thái Chờ duyệt/Đã duyệt/Từ chối/Đã hủy) và số dư phép theo
nhân viên, chính sách, năm.
Phân quyền: nhân viên chỉ xem và tạo đơn của mình; quản lý xem đơn của cả
phòng và duyệt hoặc từ chối (phải ghi lý do), không tự duyệt đơn của mình;
HR quản lý chính sách, ngày lễ và số dư.
Quy tắc: số ngày nghỉ không tính cuối tuần và ngày lễ, nửa ngày tính 0,5;
không được nghỉ quá số ngày còn lại; không có hai đơn trùng ngày; chính sách
không cần duyệt thì tự duyệt; từ chối hoặc hủy thì trả lại số ngày.
Màn hình: đơn của tôi kèm số dư, duyệt đơn, lịch nghỉ theo tháng, quản lý
chính sách và ngày lễ.