OdooWiki OCA HUB

Project Stock

project_stock folder_open OCA/project open_in_new
Project Management License: AGPL-3

This module allows to consume products directly from a project task.

auto_awesome What this module does

AI-generated from the code · Odoo 16.0

Consume products directly from a project task: add stock moves to a task, confirm, reserve, transfer or scrap materials, and get the cost posted to the project's analytic account.

This module links project tasks with inventory so materials can be consumed straight from a task instead of a separate picking.

On a project you can set a default Operation Type, Source Location and Destination Location, plus an Analytic date. On each task stage you can enable 'Use stock moves' and 'Done stock moves' to control when materials can be added and when they become read-only.

On a task a 'Stock Info' tab lists the stock moves (products to consume). Buttons appear depending on the state: Confirm materials, Check availability materials, Transfer Materials, Unreserve, Scrap, Cancel Materials, and Lock/Unlock for inventory managers. A 'Product Moves' button opens the related inventory moves, and a Scraps counter opens the scraps linked to the task.

When a move is completed, an analytic line is created with the product cost, using the task's or project's analytic account and date. Cancelling a task cancels its moves and removes those analytic lines. Moving a task to a stage flagged as done automatically reserves its materials. Changing the project or task locations updates pending moves, but is blocked if moves are already reserved.

Depends on

projectstock
Models and fields (7)
  • stock.move · extends an existing modeltask_id (Related Task), analytic_line_ids (Analytic Lines), raw_material_task_id (Task for material), show_cancel_button_in_task
  • stock.scrap · extends an existing modeltask_id (Task)
  • project.task · new modelgroup_id, move_ids (Stock Moves), scrap_ids (Scraps), location_id (Source Location), scrap_count (Scrap Move), stock_state, picking_type_id (Operation Type), use_stock_moves, done_stock_moves, location_dest_id (Destination Location), unreserve_visible (Allowed to Unreserve Inventory), stock_analytic_date (Analytic date), stock_moves_is_locked, stock_analytic_line_ids (Analytic Lines), allow_moves_action_assign, stock_analytic_account_id (Move Analytic Account), allow_moves_action_confirm, stock_analytic_distribution (Analytic Distribution)
  • project.project · extends an existing modellocation_id (Source Location), picking_type_id (Operation Type), location_dest_id (Destination Location), stock_analytic_date (Analytic date)
  • stock.move.line · extends an existing modeltask_id (Task)
  • project.task.type · extends an existing modeluse_stock_moves, done_stock_moves
  • account.analytic.line · extends an existing modelstock_move_id (Stock Move), stock_task_id (Project Task)

Text generated by AI (DeepSeek) from reading the Odoo 16.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-03
Confirmed (verified in repository and branch) Estimated (unverified) No information

Confirmation status: 5 confirmed, 4 with no information of 9 versions.

terminal Installation and usage

OCA documentation · Odoo 16.0

To configure this module, you need to:

  • Go to Inventory -> Configuration -> Settings and check "Storage Locations" option.
  • Go to Inventory -> Configuration -> Operation types.
  • Create a new operation type with the following options:
  • Operation type: Task material
  • Code: TM
  • Type of operation: Delivery
  • Default Source Location: WH/Stock
  • Default Destination Location: WH/Stock/Shelf 1
  • Go to Project -> Configuration -> Projects.
  • Create a new project with the following options:
  • Name: Task material
  • Operation type: Task material
  • Go to Project -> Configuration -> Task Stages and edit some records.
  • In progress: Check Use Stock Moves option and add the created project.
  • Done: Check Use Stock Moves option + Done Stock Moves and add the created project.
  • Go to Projects -> Task material (project) and create a task and edit it.
  • Stock Info is displayed in the Extra info tab with the same project information, but it can be modified.
  • Add some product to Stock Info tab and set some initial demand (1 for example).
  • Click on the button Confirm material to confirm all moves.
  • Change the stage to Done.
  • Stock Info tab is readonly and some buttons show in header:
  • Check availability materials: Product availability will be checked.
  • Transfer Materials: Stock moves are confirmed and moved from one location to another.
  • Unreserve: Remove the reservation stock of the products.
  • Cancel Materials: Set the moves of the products as cancelled.
  • Scrap: Allows the defined products to be scrapped.

No verified information in OCA: Installation.

info

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.