Skip to Content
Menú
This question has been flagged
1 Respondre
663 Vistes

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

Avatar
Descartar
Best Answer

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.

Avatar
Descartar