Bút toán công từ Kế hoạch
Tạo bút toán công tự động từ lịch kế hoạch linh hoạt
Module Work Entries - Planning tích hợp ứng dụng Planning với hệ thống Work Entry, cho phép tạo công tự động từ lịch kế hoạch (planning slots) đã xuất bản, thay thế lịch làm việc tĩnh bằng lịch kế hoạch linh hoạt.
Module này phân bổ giờ làm chính xác theo kế hoạch thực tế của nhân viên, tính lương dựa trên kế hoạch thay vì lịch làm việc cố định, và khóa planning slot khi work entry đã được validated.
Mục đích
Điểm chính
• Tạo công tự động từ lịch kế hoạch (planning slots) đã xuất bản
• Thay thế lịch làm việc tĩnh bằng lịch kế hoạch linh hoạt
• Phân bổ giờ làm chính xác theo kế hoạch thực tế của nhân viên
• Tính lương dựa trên kế hoạch thay vì lịch làm việc cố định
Đối tượng sử dụng
Vai trò và quyền truy cập
| Vai trò | Quyền truy cập | Chức năng chính |
|---|---|---|
| Quản lý kế hoạch | Planning Manager | Tạo và xuất bản planning slots |
| Nhân viên HR | HR Officer | Cấu hình nguồn tạo công, xem work entries |
| Quản lý lương | Payroll Manager | Xác nhận work entries trước khi tính lương |
Thuật ngữ quan trọng
| Fields | Trường dữ liệu | Description |
|---|---|---|
| Planning | Kế hoạch | Nguồn tạo công từ lịch kế hoạch |
| Planning Shift | Lập kế hoạch ca làm | Model planning.slot |
| Planning Slot | Khung giờ kế hoạch | Một ca làm trong kế hoạch |
| Published | Đã xuất bản | Trạng thái planning slot |
| Allocated Hours | Giờ phân bổ | Số giờ làm trong planning slot |
Khi nào sử dụng
Sử dụng Planning làm nguồn tạo công khi lịch làm việc của nhân viên không cố định, thay đổi theo tuần/tháng, công ty sử dụng ứng dụng Planning để lập lịch ca làm, và cần tính lương dựa trên kế hoạch thực tế thay vì lịch làm việc mẫu.
Cấu hình nguồn Planning
Các bước thực hiện
1. Vào Employees → Employees
2. Chọn nhân viên cần cấu hình
3. Vào tab Work Information
4. Thiết lập Work Entry Source: Planning
5. Lưu nhân viên
Quy trình tự động
Planning Manager tạo planning slots cho nhân viên, xuất bản planning slots (state = Published), hệ thống tự động tìm nhân viên có Work Entry Source = Planning, tìm hợp đồng đang hoạt động, archive các work entries cũ trong khoảng thời gian của slot, tạo work entries mới từ planning slots, và phân bổ giờ làm đều cho các ngày.
Ví dụ tạo work entry
Planning Slot: Nhân viên Nguyễn Văn A, thời gian 15/04/2026 08:00 - 17/04/2026 17:00 (3 ngày), Allocated Hours: 24 giờ, State: Published.
Work Entries được tạo: Ngày 15/04: 8 giờ (24/3), Ngày 16/04: 8 giờ (24/3), Ngày 17/04: 8 giờ (24/3).
Điểm chính
• Mỗi work entry có planning_slot_id link đến planning slot gốc
• Duration: 8 giờ
• Work_entry_type_id: Loại công (Attendance)
Phân bổ giờ làm
Hệ thống phân bổ giờ làm theo quy tắc: Planning slot 1 ngày → Giờ làm = Allocated Hours, Planning slot nhiều ngày → Giờ làm = Allocated Hours / Số ngày.
Ví dụ phân bổ
| Slot | Allocated Hours | Kết quả |
|---|---|---|
| 15/04 08:00 - 15/04 17:00 | 8 giờ | Work Entry: 15/04, Duration = 8 giờ |
| 15/04 08:00 - 17/04 17:00 | 24 giờ | Work Entries: 15/04 (8h), 16/04 (8h), 17/04 (8h) |
Quản lý Planning Slot và Work Entry
Xem work entries từ planning slot: Planning → Planning → Chọn slot → Click Smart Button Work Entries, hoặc Payroll → Work Entries → Lọc theo Planning Slot.
Sửa planning slot
Điểm chính
• Chưa có work entry validated: Có thể sửa Start Datetime, End Datetime, Allocated Hours, Resource. Hệ thống tự động archive work entries cũ và tạo mới.
• Có work entry validated: Không thể sửa. Thông báo lỗi: "Bạn không thể sửa bản ghi ca làm này, vì nó liên kết với công đã được xác nhận."
• Giải pháp: Hủy validate work entries (nếu chưa chạy lương) → Sửa planning slot → Validate lại
Xóa planning slot
Điểm chính
• Chưa có work entry validated: Có thể xóa. Hệ thống tự động archive các work entries liên kết.
• Có work entry validated: Không thể xóa. Giải pháp: Hủy validate work entries → Xóa planning slot.
Tái tạo Work Entry
Cần tái tạo work entries khi planning slots bị sửa sau khi work entries đã được tạo, có lỗi trong quá trình tạo work entries, hoặc cần đồng bộ lại work entries với planning slots.
Điểm chính
• Hệ thống xóa link planning_slot_id từ work entries cũ
• Archive work entries cũ (active=False)
• Tạo work entries mới từ planning slots đã xuất bản
• Phân bổ giờ làm theo quy tắc
Các bước thực hiện
1. Vào Payroll → Work Entries → Regenerate Work Entries
2. Chọn Employees, Date From, Date To
3. Click Regenerate
Mẹo thực tế
Điểm chính
• Xuất bản planning slots đúng lúc: Trước deadline tính lương, không quá sớm để tránh sửa nhiều lần
• Quản lý planning slots: Sử dụng view Gantt để xem tổng quan, lọc theo nhân viên
• Xử lý thay đổi: Kiểm tra work entries có validated chưa trước khi sửa planning slot
• Kiểm tra work entries: So sánh tổng giờ làm với planning slots, xử lý các work entries có conflict
• Quy trình trước khi chạy lương: Kiểm tra planning slots đã xuất bản đầy đủ → Kiểm tra work entries đã được tạo → Xử lý conflict → Validate → Chạy lương