Tích hợp Timesheet

Hướng dẫn chi tiết

odoo timesheet
sales timesheet
hóa đơn theo giờ
time tracking
billable hours
dịch vụ theo giờ

Thuật ngữ

Table

Thuật ngữĐịnh nghĩa
TimesheetBảng chấm công ghi nhận giờ làm việc của nhân viên
Billable HoursSố giờ có thể tính phí cho khách hàng
Non-billable HoursSố giờ không tính phí (nội bộ, training)
Service ProductSản phẩm dịch vụ tính theo giờ
Time & MaterialsPhương thức tính phí theo thời gian thực tế
Invoicing PolicyChính sách xuất hóa đơn (theo giờ, theo milestone)
Analytic AccountTà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

PolicyMô tảKhi nào dùng
Based on TimesheetsHóa đơn theo số giờ thực tế ghi trong timesheetDự án Time & Materials, tính phí theo giờ thực tế
Based on Ordered QuantitiesHóa đơn theo số giờ đã bán (fixed price)Dự án fixed-price, không phụ thuộc giờ thực tế
Based on MilestonesHóa đơn theo milestone hoàn thànhDự á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ânGiải pháp
Timesheet không liên kết với sales orderTask không được tạo từ sales order hoặc sản phẩm không đúng loạiKiểm tra product type = Service và Track Service = Timesheets
Không thể tạo invoice từ timesheetTimesheet chưa được validate hoặc invoicing policy saiValidate timesheet và kiểm tra Invoicing Policy = Based on Timesheets
Delivered quantity không cập nhậtTimesheet không liên kết đúng task/projectKiểm tra task được tạo từ sales order, ghi timesheet vào đúng task
Margin tính saiHourly cost của nhân viên chưa thiết lậpVà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.