OdooWiki OCA HUB

Operating Unit in Purchase Orders

purchase_operating_unit folder_open OCA/operating-unit open_in_new
Purchase Management License: LGPL-3

This module introduces the following features:

  • It introduces the operating unit to the purchase order.
  • The operating unit is copied to the invoice.
  • It implements user's security rules.

auto_awesome What this module does

AI-generated from the code · Odoo 18.0

Adds an Operating Unit to purchase orders and their lines, carries it through to vendor bills, and restricts which purchase orders each user can see based on their allowed operating units.

This module brings the Operating Unit concept into purchasing. On a purchase order you get two new fields, operating_unit_id (Operating Unit) and requesting_operating_unit_id (Requesting Operating Unit), both defaulting to the operating unit of the logged-in user. They are shown on the purchase order form and list, and become read-only once the order is cancelled, done or confirmed. Purchase order lines inherit the operating unit from their order, and it is visible on the line list, line form and line search views.

Business rules are enforced automatically: - The company of the purchase order and of its operating unit must match, otherwise a configuration error is raised. - When a vendor bill is created from a purchase order, the operating unit is copied onto the invoice. - On invoice lines linked to a purchase order line, the operating unit must be the same as on the purchase line, otherwise validation fails. - On a vendor bill, the purchase order selector only offers orders with the same operating unit (or none).

Users only see purchase orders and purchase order lines belonging to their allowed operating units (or with no operating unit), through record rules. The purchase analysis report can be filtered and grouped by Operating Unit, and the purchase order and line searches offer an Operating Unit grouping filter. All these fields and filters are only shown to users in the multi operating unit group.

Depends on

Models and fields (5)
  • account.move · extends an existing model
  • purchase.order · extends an existing modeloperating_unit_id (Operating Unit), requesting_operating_unit_id (Requesting Operating Unit)
  • purchase.report · extends an existing modeloperating_unit_id (Operating Unit)
  • account.move.line · extends an existing model
  • purchase.order.line · extends an existing modeloperating_unit_id (Operating Unit)

Text generated by AI (DeepSeek) from reading the Odoo 18.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: 6 confirmed, 3 with no information of 9 versions.

Sources · Odoo 12.0

Confirmed on 2026-11-03 in branch 12.0 of OCA/operating-unit.

terminal Installation and usage

OCA documentation · Odoo 18.0
  • Create a PO: the Default Operating Unit is assigned to the PO. If you want, you can change to another Operating Unit.
  • Validate the PO: the Operating Unit is propagated to the Invoices.
  • From the invoice, it is not possible to change the Operating Unit, it has to be the same as the one of the PO.

No verified information in OCA: Installation, Configuration.

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.