Tích hợp Timesheet
Hướng dẫn chi tiết
Thuật ngữ
Table
| Thuật ngữ | Định nghĩa |
|---|---|
| Timesheet | Bảng chấm công ghi nhận giờ làm việc của nhân viên |
| Billable Hours | Số giờ có thể tính phí cho khách hàng |
| Non-billable Hours | Số giờ không tính phí (nội bộ, training) |
| Service Product | Sản phẩm dịch vụ tính theo giờ |
| Time & Materials | Phương thức tính phí theo thời gian thực tế |
| Invoicing Policy | Chính sách xuất hóa đơn (theo giờ, theo milestone) |
| Analytic Account | Tài khoản phân tích để theo dõi chi phí dự án |
Điều kiện tiên quyết
Điểm chính
• Cài đặt module **Timesheet** (hr_timesheet)
• Cài đặt module **Sales Timesheet** (sale_timesheet)
• Thiết lập nhân viên với hourly cost trong HR
• Cấu hình analytic accounts cho dự án
• Thiết lập quyền truy cập cho Timesheet User
Thiết lập Sản phẩm Dịch vụ
Các bước thực hiện
1. Vào **Sales → Products → Products**
2. Tạo sản phẩm mới với **Product Type = Service**
3. Trong tab **General Information**, chọn **Track Service = Timesheets on tasks**
4. Thiết lập **Invoicing Policy = Based on Timesheets**
5. Nhập **Sales Price** (giá bán theo giờ)
6. Trong tab **Sales**, thiết lập **Service Tracking = Create a task in an existing project**
7. Chọn **Project** mặc định để tạo task
8. Lưu sản phẩm
Tạo Sales Order với Timesheet
Các bước thực hiện
1. Vào **Sales → Orders → Quotations**
2. Tạo quotation mới, chọn khách hàng
3. Thêm sản phẩm dịch vụ (service product) vào order lines
4. Nhập **Quantity** (số giờ ước tính)
5. Xác nhận quotation thành sales order
6. Hệ thống tự động tạo **Task** trong project
7. Task được liên kết với sales order line
Ghi nhận Timesheet
Các bước thực hiện
1. Nhân viên vào **Timesheets → My Timesheets**
2. Click **Create** để thêm timesheet entry
3. Chọn **Project** và **Task** (từ sales order)
4. Nhập **Date** và **Hours Spent**
5. Thêm **Description** mô tả công việc
6. Lưu timesheet entry
7. Timesheet tự động liên kết với sales order line
Theo dõi Giờ làm việc
Điểm chính
• Vào **Sales → Orders → Orders**
• Mở sales order có sản phẩm dịch vụ
• Xem tab **Timesheets** để theo dõi giờ đã ghi nhận
• So sánh **Ordered Quantity** vs **Delivered Quantity**
• Delivered Quantity = tổng số giờ trong timesheet
• Theo dõi **Remaining Hours** = Ordered - Delivered
• Cảnh báo nếu vượt quá số giờ đã bán
Xuất Hóa đơn theo Timesheet
Các bước thực hiện
1. Mở sales order có timesheet entries
2. Click **Create Invoice**
3. Chọn **Invoice what is ordered** hoặc **Invoice what is delivered**
4. Nếu chọn "delivered", hóa đơn chỉ tính số giờ đã ghi trong timesheet
5. Xác nhận invoice
6. Invoice lines hiển thị số giờ thực tế và đơn giá
7. Gửi invoice cho khách hàng
Phân tích Lợi nhuận
Điểm chính
• Vào **Sales → Reporting → Sales Analysis**
• Lọc theo sản phẩm dịch vụ
• Xem **Margin** = (Sales Price - Cost) × Hours
• Cost = Hourly Cost của nhân viên × Hours
• Phân tích **Profitability** theo project, customer, salesperson
• So sánh **Estimated Hours** vs **Actual Hours**
• Xác định dự án có lợi nhuận cao/thấp
Timesheet Validation
Các bước thực hiện
1. Vào **Timesheets → Timesheets to Validate**
2. Manager xem danh sách timesheet chờ duyệt
3. Kiểm tra tính hợp lệ của timesheet entries
4. Click **Validate** để phê duyệt
5. Timesheet đã validate mới được tính vào invoice
6. Từ chối timesheet không hợp lệ với lý do
Cấu hình Invoicing Policy
Table
| Policy | Mô tả | Khi nào dùng |
|---|---|---|
| Based on Timesheets | Hóa đơn theo số giờ thực tế ghi trong timesheet | Dự án Time & Materials, tính phí theo giờ thực tế |
| Based on Ordered Quantities | Hóa đơn theo số giờ đã bán (fixed price) | Dự án fixed-price, không phụ thuộc giờ thực tế |
| Based on Milestones | Hóa đơn theo milestone hoàn thành | Dự án lớn, thanh toán theo giai đoạn |
Tích hợp với Project
Điểm chính
• Sales order tự động tạo task trong project
• Task hiển thị **Allocated Hours** từ sales order
• Nhân viên ghi timesheet trực tiếp vào task
• Project manager theo dõi **Progress** = Hours Spent / Allocated Hours
• Cảnh báo khi task vượt quá số giờ allocated
• Tự động cập nhật **Delivered Quantity** trong sales order
Best Practices
Điểm chính
• Thiết lập **hourly cost** chính xác cho từng nhân viên
• Yêu cầu nhân viên ghi timesheet **hàng ngày** để tránh quên
• Sử dụng **timesheet validation** để kiểm soát chất lượng
• Theo dõi **remaining hours** để cảnh báo sớm khi vượt budget
• Phân tích **profitability** định kỳ để tối ưu giá bán
• Sử dụng **analytic accounts** để phân bổ chi phí chính xác
• Cấu hình **email reminder** để nhắc nhân viên ghi timesheet
• Thiết lập **minimum/maximum hours** cho timesheet entry
Sự cố Thường gặp
Table
| Vấn đề | Nguyên nhân | Giải pháp |
|---|---|---|
| Timesheet không liên kết với sales order | Task không được tạo từ sales order hoặc sản phẩm không đúng loại | Kiểm tra product type = Service và Track Service = Timesheets |
| Không thể tạo invoice từ timesheet | Timesheet chưa được validate hoặc invoicing policy sai | Validate timesheet và kiểm tra Invoicing Policy = Based on Timesheets |
| Delivered quantity không cập nhật | Timesheet không liên kết đúng task/project | Kiểm tra task được tạo từ sales order, ghi timesheet vào đúng task |
| Margin tính sai | Hourly cost của nhân viên chưa thiết lập | Vào HR → Employees, thiết lập Hourly Cost cho từng nhân viên |
FAQ
Điểm chính
• **Làm thế nào để tính phí theo giờ thực tế?** Thiết lập product với Invoicing Policy = Based on Timesheets, nhân viên ghi timesheet, tạo invoice sẽ tự động tính theo số giờ thực tế.
• **Có thể giới hạn số giờ tối đa không?** Có, trong sales order line nhập Quantity = số giờ tối đa, hệ thống cảnh báo khi timesheet vượt quá.
• **Timesheet có cần phê duyệt không?** Tùy cấu hình, bạn có thể bật Timesheet Validation để manager phê duyệt trước khi tính vào invoice.
• **Làm sao để theo dõi lợi nhuận dự án?** Vào Sales Analysis hoặc Project Profitability, xem Margin = (Sales Price - Employee Cost) × Hours.
• **Có thể ghi timesheet cho nhiều task cùng lúc không?** Có, nhân viên có thể tạo nhiều timesheet entries cho các task khác nhau trong cùng một ngày.
• **Làm thế nào để phân biệt billable và non-billable hours?** Timesheet ghi vào task từ sales order là billable, timesheet ghi vào task nội bộ là non-billable.
• **Có thể chỉnh sửa timesheet sau khi validate không?** Không, sau khi validate cần un-validate trước khi chỉnh sửa (nếu có quyền).
• **Làm sao để nhắc nhân viên ghi timesheet?** Cấu hình Automated Action gửi email reminder hàng ngày cho nhân viên chưa ghi timesheet.
• **Timesheet có tích hợp với payroll không?** Có, nếu cài module Payroll, timesheet được dùng để tính lương theo giờ.
• **Có thể import timesheet từ file Excel không?** Có, sử dụng tính năng Import trong Timesheets list view, mapping đúng các trường.