Project Tasks allow to record time spent, but some activities, such as Field Service, often require you to keep a record of the materials spent.
This module extends project_task_material module to consume products spent in a task and create analytic lines to manage costs and create invoices.
auto_awesome What this module does
AI-generated from the code · Odoo 12.0Record materials used on a project task and let Odoo create the stock moves and analytic cost lines automatically when the task reaches a stage marked to consume materials.
This module links the materials you list on a task with real warehouse movements and cost tracking.
- On a project you can set default source and destination locations for consumed materials.
- On each task you can choose the operation type, source location and destination location, and an analytic account for the moves.
- On task stages you can tick "consume material"; when a task enters such a stage, Odoo creates a stock move and an analytic line for every material line that does not have one yet.
- The task form shows buttons "Check Availability" and "Transfer Materials" depending on the stock state, plus tabs listing the products used and the generated stock moves.
- A stock state (Pending, Confirmed, Assigned, Done) is computed from the related moves.
- When a move is completed, the analytic line amount is updated to the move value.
- If you move a task back to a stage that does not consume materials, Odoo removes the stock moves and analytic lines, but it refuses if analytic lines already exist.
- Deleting a task or a material line also deletes its stock moves and analytic lines, and you cannot delete a material that already has completed stock movements.
- A dedicated outgoing operation type "Project Task Material Operations" with sequence prefix CONSUM/ is created.
Depends on
Models and fields (6)
- stock.move · extends an existing modeltask_material_id (Project Task Material)
- project.task · extends an existing modelpicking_id, stock_state, stock_move_ids (Stock Moves), picking_type_id (Operation Type), consume_material, location_dest_id (Destination Location), analytic_line_ids (Analytic Lines), location_source_id (Source Location), analytic_account_id (Move Analytic Account)
- project.project · extends an existing modellocation_dest_id (Destination Location), location_source_id (Source Location)
- project.task.type · extends an existing modelconsume_material
- account.analytic.line · extends an existing modeltask_material_id (Project Task Material)
- project.task.material · extends an existing modelproduct_id, stock_move_id (Stock Move), product_uom_id (Unit of Measure), analytic_line_id (Analytic Line)
Text generated by AI (DeepSeek) from reading the Odoo 12.0 code on GitHub; it may contain mistakes, so check the code before deciding. View the code on GitHub
Availability by version
Reviewed: 2026-11-03Confirmation status: 1 confirmed, 8 with no information of 9 versions.
Sources · Odoo 12.0
Confirmed on 2026-11-03 in branch 12.0 of OCA/project.
terminal Installation and usage
OCA documentation · Odoo 12.0Configuration
Source · Odoo 12.0- If you are a project manager, go to Project > Configuration > Stages and check option 'Consume Material' in Task Stage to generate a stock move when the task is in that stage.
- Go to your user settings and enable option "Manage multiple Stock Locations" if you want to manage locations on consuming materials.
- Go to your user settings and enable option "Analytic Accounting" if you want to manage analytic accounts in tasks.
Usage
Source · Odoo 12.0- Go to a task, edit, and add materials to be consumed on tab "Materials".
- Move task to an stage where "Consume material" check is activated and moves and analytic lines will be created.
- You can define default locations to consume material in tasks and projects. Locations preference order to consume materials is: locations set in tasks first, locations defined in project second and finally standard locations.
- If you define an analytic account in task, move created will be assigned to this analytic account. If not account analytic is defined, then move created will be assigned to the analytic account defined in its project.
No verified information in OCA: Installation.
Installation instructions, the distribution package, dependencies and configuration steps are not shown because they have not yet been verified in the module documentation for any version.
Data imported from GitHub: this sheet reflects the latest catalog review, not a live lookup. Always check the module documentation and staging before installing in production.