跳至内容
菜单
此问题已终结
1 回复
526 查看

Hello everyone,

We’re new to Odoo and are evaluating how to handle service jobs in Odoo best and would appreciate your input on the following use case.


Order: Welding a Stair


Planned:

  • Material: 1 kg welding wire at $15/kg
  • Labor: Estimated 14 hours at $76/hour

Actual to be invoiced:

Material:

  • 2 kg welding wire at $15/kg → $30

Labor:

  • Employee A – $76/h
    • 05/19/2025: 3h – job preparation
    • 05/21/2025: 2h – weld seam reinforced
    • 05/24/2025: 6h – weld seam reinforced
  • Employee B (apprentice) – $54/h
    • 05/25/2025: 2h – stair cleaned

The invoice should clearly display the used material and all hours worked per employee, including a description of each task.

What is the best way to handle this use case, especially in regards of:

  1. Recording and invoicing work by multiple employees with different hourly rates within a single sales order
  2. A transparent invoice layout, showing material and labor details including task descriptions
  3. Time tracking directly via the order/task
  4. Employee time reporting, for tracking over- and undertime

形象
丢弃
最佳答案

Recommended Modules


Sales


Project


Timesheets


Field Service (optional, but useful for on-site jobs)


Invoicing


Inventory


Employees




---


🔧 Setup & Workflow


1. Create a Sales Order with Planned Services and Materials


Create a Sales Order for the customer.


Add lines:


Product: Welding Wire – 1 kg @ $15/kg → set as storable product


Product: Welding Labor – 14 hours @ $76/hour → set as service (tracked by timesheets)



Add a section or note to describe the job ("Welding a Stair").



2. Link a Project/Task to the Order


In the sales order, link it to a Project (auto-created if the product is configured for "Timesheet on project").


A Task is created for the job (e.g., “Welding a Stair”).



3. Track Time via Timesheets


Enable the Timesheets app.


Employees A and B log their time:


On the task (via desktop or mobile).


With descriptions:


“Job preparation” – 3h on 05/19


“Weld seam reinforced” – 2h and 6h on 05/21 and 05/24


“Stair cleaned” – 2h on 05/25




Each employee’s rate is respected based on their contract (see below).



4. Configure Hourly Rates per Employee


Go to Employees > Contracts.


Set Timesheet Cost (internal cost) and Billing Rate (for invoicing).


Employee A → $76/h


Employee B → $54/h




Alternatively, use Timesheet-Based Invoicing with custom rates per employee (requires a bit of customization or third-party module if advanced rate rules are needed).


5. Consume Actual Materials


Go to the linked Delivery Order or use Inventory Adjustment to record that 2 kg of welding wire were consumed instead of 1 kg.


You can manually update the Sales Order line to match the actual material usage (2 kg × $15).



6. Create the Invoice


From the Sales Order, click Create Invoice.


Choose Timesheet and Delivered Quantities.


Odoo will generate an invoice that includes:


2 kg of welding wire @ $15 = $30


Labor lines per employee, broken down by hours and tasks.




> 💡 To make the invoice layout more descriptive (e.g., show task descriptions per employee), you may need to:


Use Analytic Lines with Descriptions


Enable the option in Invoicing Settings > Timesheet Description on Invoice


Customize the invoice template if you want extra clarity (e.g., grouped by employee).






---


🔍 Tracking Over/Under Time (Compared to Estimate)


In the Task View, you can compare:


Planned Hours (14h)


Actual Timesheet Hours (13h)



Use Reporting > Timesheet or the Project app to analyze employee contributions and discrepancies.

形象
丢弃