[go: up one dir, main page]

50% found this document useful (2 votes)
476 views21 pages

Odoo Operating Units Guide

This document outlines how to implement operating units in Odoo to allow companies to manage their business by independent organizational units. Key points include: 1. Defining operating units as organizational entities that operate independently within a company for accounting and access control purposes. 2. Extending various business modules like purchases, inventory, and accounting to associate transactions with operating units and ensure data and access is partitioned correctly. 3. Enabling self-balancing financial reports by automatically creating journal entries between operating units to balance transactions assigned to different units.

Uploaded by

suresh
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
50% found this document useful (2 votes)
476 views21 pages

Odoo Operating Units Guide

This document outlines how to implement operating units in Odoo to allow companies to manage their business by independent organizational units. Key points include: 1. Defining operating units as organizational entities that operate independently within a company for accounting and access control purposes. 2. Extending various business modules like purchases, inventory, and accounting to associate transactions with operating units and ensure data and access is partitioned correctly. 3. Enabling self-balancing financial reports by automatically creating journal entries between operating units to balance transactions assigned to different units.

Uploaded by

suresh
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 21

OPERATING UNITS IN ODOO

Author:
Jordi Ballester Alomar
jordi.ballester@eficent.com
@jbeficent_erp
www.Product Description Quantity Unit Price Taxes Amount
[CONS_DEL02] Little server [CONS_DEL02] Little server
raid 1, 512ECC ram 1.000 40,000.00 $ 40,000.00

eficent.com
Index

Index
Introduction
Intended audience
Design Approach
Operating Unit (OU)
2. Operating Unit in Purchase Orders
3. Operating Unit in Purchase Requisitions (DONE)
4. Operating Unit in Stock Management (DONE)
5. Operating Unit in Accounting
6. Operating Unit in Stock Management with Real-Time Valuation
7. Operating Unit in Invoicing
8. Operating Unit in Receipts and Payments
9. Operating Unit in Sales Orders (DONE)
10. Operating Unit in Sales Order and Warehouse Integration (DONE)
11. Operating Unit in HR Employee expenses (DONE)
12. Operating Unit in Procurement Orders (DONE)
13. Operating Unit in Purchase Requests (DONE)
14. Operating Unit in HR Expenses (DONE)
15. Operating Unit in HR Contract (DONE)
16. Operating Unit in HR Payroll Accounting (DONE)

Introduction
This document presents a blueprint for the implementation of extensions to Odoo relating to the
management by Operating Units.

The design approach presented in this document is complemented with code hosted here:
v7: https://github.com/Eficent/odoo-operating-unit.
v8 and v9: https://github.com/Eficent/operating-unit. Please note that each module is kept in a
separate branch, to better organize the move to OCA.

Intended audience
Everyone in the Odoo Community is welcome to participate in this project.

Roadmap
The code will be maintained in versions 7.0, 8.0 and 9.0
Design Approach

1. Operating Unit (OU)


(module name: ‘operating_unit’)
An Operating Unit (OU) is an organizational entity part of a company, but that operates as an
independent unit. Organizationally, an Operating Unit divides a company from a
Business/Divisional axis, while Departments divide a company from a functional axis
perspective.

See below the 2 axis by which a company can be divided the ‘X’ axis represents the Operating
Units, while the “Y” axis represents the Departments.

B2B B2C
---------------------------------------> X axis
|
| Sales
|
| Marketing
|
| Purchasing
|
V
Y axis

Why use Operating Units if the entity Company exists? Why not create one Company for each
Business Unit?
A company is a non-divisible unit from a legal perspective, but from a business management
perspective the company wants to drive the operations differentiating by the Operating Units /
Divisions. The manager of an Operating Unit becomes accountable for the Profit & Loss and
Balance Sheet on that Operating Unit.

Management by OU introduces the following features:

● Partitions transactional data (e.g. Sales orders, purchase orders, account journal
items) from other OU's. From an accounting perspective a Self Balanced Profit&Loss
and Balance Sheet can be obtained from a particular Business Unit.
● Administers user access to the data for processing and reporting. Users can
access and process transaction information only for the particular operating unit or
set of operating units to which they have been granted access
● It's not product, customer or project (analytic account) specific
(1.1) Create a new Operating Unit from Settings | Configuration | Operating Units

(1.2) Define the access by users to Operating Units in Settings | Users | Users

2. Operating Unit in Purchase Orders


(module name: ‘purchase_operating_unitpurchas’)

- (2.1) The OU is an optional field during the creation of the Quotation / Purchase Order
(DONE).
- (2.2) The user’s default OU is proposed at the time of creating the Quotation / Purchase
Order (DONE)
- (2.3) The OU defines the following, with respect to a Purchase Order (POSTPONED):
- The numbering sequence
- The invoicing Journal
- (2.4) Security rules are defined to ensure that users can only display the Quotations /
Purchase Orders in which they are allowed access to (DONE)
- (2.5) The header information (logo and name) shown in the quotation and purchase
order form are specific to the OU.(DONE - customer-specific)

- (2.6) When a Purchase Order is confirmed, the Operating Unit is copied to the Incoming
Shipment and / or to the Invoice.(DONE)

3. Operating Unit in Purchase Requisitions (DONE)


(module name: ‘purchase_requisition_operating_unit’)

- (3.1)The OU is a optional field during the creation of the Purchase Requisition (DONE)
- (3.2) The user’s default OU is proposed at the time of creating the Purchase Requisition
(DONE)
- (3.3) Security rules are defined to ensure that users can only display the Purchase
Requisitions in which they are allowed access to (DONE)
- (3.4) The header information (logo and name) shown in the purchase requisition form
are specific to the OU.(POSTPONED)

4. Operating Unit in Stock Management (DONE)


(module name: ‘stock_operating_unit’)

- (4.1) Each Warehouse should be assigned to an Operating Unit (DONE)


- (4.2) A Location must define an Operating Unit only if it is of type “Internal Location”
otherwise it should not define one.(DONE)
- (4.3) If an Internal Location is child to a parent Internal Location, parent must belong to
the same Operating Unit.(DONE)

- (4.4) The OU is a optional field during the creation of a Stock Picking (Incoming
Shipment, a Delivery Order or Internal Transfer). (DONE)
(4.5) Each Stock Move is associated to a source location and to a destination location, that is in
turn associated to an OU. (DONE)
- (4.6) If a Stock Move is associated to a Stock Picking, at least the Source or the
Destination Location’s OUs must be the same as that of the Stock Picking. (DONE)
- (4.7) The OU of the Warehouse and that of the Stock Picking must be the same.
(POSTPONED - not needed)
-

- (4.5) Security rules are defined to ensure that users can only display the Stock Pickings
in which they are allowed access to (DONE)
- (4.6) The header information (logo and name) shown in the stock picking forms are
specific to the OU. (DONE)
5. Operating Unit in Accounting
(module name: ‘account_operating_unit’)

If your company is required to generate a balanced balance sheet by operating unit you can
specify at company level that operating units should be self-balanced, and then indicate a self-
balancing clearing account. Every accounting entry must balance both at the total level and at
the level of the operating units defined in the journal entry. If the accounting entry does not
balance at the level of the operating units, additional account entries are created automatically
to balance the accounting entry.

- (5.1) An Inter-Operating Unit Account is defined in Settings | Companies | Companies


(DONE)

- (5.2) The OU is an optional field in the Journal Item (account move line) (DONE)
- (5.3) When users create a Journal Entry with items that belong different OU’s, at the
time of posting the Journal Entry the application creates the corresponding lines in the
inter-OU clearing account, thus ensuring that each OU is self-balanced/zero-balanced.
(DONE)
For example, this accounting entry:

Account Operating Unit Debit Credit

Cash Operating Unit A 100

Cash Operating Unit B 100

OU balance:

Operating Unit Debit Credit Balance

Operating Unit A 100

Cash 100 100

Operating Unit B 100

Cash 100

Would produce after OU self-balancing:

Account Name Operating Debit Credit


Unit

Cash Operating Unit 100


A

Cash Operating Unit 100


B

Inter-OU Operating Unit 100


Clearing A

Inter-OU Operating Unit 100


Clearing B

OU balance:

Operating Unit Name Debit Credit Balance

Operating Unit A

Cash 100 100

Inter-OU Clearing 100 (100)

Balance Operating Unit A 0

Operating Unit B

Cash 0100 100 (100)100

Inter-OU Clearing 100 0100 100(100)

Balance Operating Unit B 0

From the Inter-OU clearing Account perspective the balance on each account move is always
zero.

Account OU Debit Credit Balance

Inter-OU Clearing

Operating Unit A 100 (100)

Operating Unit B 100 100

Balance Inter-OU Clearing 0


- (5.4) Distribution between OU’s is restricted only to occur within the same Account. A
user cannot enter a Journal Entry containing different OU’s, using multiple Accounts.
(CANCELLED)
- (5.5) The Account Financial Reports (Balance Sheet, Profit and Loss), include the option
to filter by OU.(DONE)

- (5.7) Defines Journals specific to an Operating Unit (POSTPONED)


- (5.8) The MIS Builder can make it possible to filter by Operating Unit indicated in the
Report (DONE)
zzz6. Operating Unit in Stock Management with Real-Time Valuation
(module name: ‘stock_account_operating_unit’)

- (6.1) Creates account move lines when stock moves are posted between internal
locations within the same company, but different OU’s. The journal entries are self-
balanced within the OU when the journal entries are posted. (DONE)

The following move:


Source Location: Location 1 (Operating Unit B)
Destination Location: Location 2 (Operating Unit A)

Generates the following accounting entries before posting:


Account Operating Unit Debit Credit

Stock Operating Unit A 100

Stock Operating Unit B 100

And the following entries after posting:

Account Name Operating Debit Credit


Unit

Stock Product A Operating Unit 100


A

Stock Product A Operating Unit 100


B

Inter-OU Product A Operating Unit 100


Clearing A

Inter-OU Product A Operating Unit 100


Clearing B

7. Operating Unit in Invoicing


(module name: ‘invoice_operating_unit’)

- (7.1) Adds the OU as a optional field in the invoice. (DONE)


- (7.2) Security rules are defined to ensure that users can only display the Invoices in
which they are allowed access to (DONE)
- (7.3) The header information (logo and name) shown in the invoice forms are specific to
the OU. (DONE)

8. Operating Unit in Receipts and Payments


(module name: ‘account_voucher_operating_unit’)

In customer or supplier Payments the Operating Unit that drives the Voucher is that assigned to
the default GL account of the Journal. The payment lines of the journal entries are assigned to
this OU, and the Accounts Receivable or Accounts Payable lines that are created will belong to
the OU of the AR / AP journal item that is being reconciled.

Operating Unit A can thus pay invoices posted by Operating Units B and C
For example, this accounting entry:

Account Operating Unit Debit Credit

Bank Operating Unit C 200

Accounts Payable Operating Unit A 100

Accounts Payable Operating Unit B 100

OU balance:

Operating Unit Debit Credit Balance

Operating Unit A

Accounts Payable 100 100

Balance Operating Unit A 100

Operating Unit B

Accounts Payable 100 100

Balance Operating Unit B 100

Operating Unit C

Bank 200 (200)

Balance Operating Unit C (200)

Would produce after OU self-balancing:

Account Name Operating Debit Credit


Unit

Bank Bank Payment 1 Operating Unit 200


C

Accounts INV/0001 Operating Unit 100


Payable A

Accounts INV/0002 Operating Unit 100


Payable B
Inter-OU INV/0001 Operating Unit 100
Clearing A

Inter-OU INV/0002 Operating Unit 100


Clearing B

Inter-OU Bank Payment 1 Operating Unit 200


Clearing C

OU balance:

Operating Unit Name Debit Credit Balance

Operating Unit A

Accounts Payable INV/0001 100 100

Inter-OU Clearing INV/0001 100 (100)

Balance Operating Unit A 0

Operating Unit B

Accounts Payable INV/0002 100 100

Inter-OU Clearing INV/0002 100 (100)

Balance Operating Unit B 0

Operating Unit C

Bank Bank Payment 1 200 (200)

Inter-OU Clearing Bank Payment 1 200 200

Balance Operating Unit C 0

From the Inter-OU clearing Account perspective the balance on each account move is always
zero.

Account OU Debit Credit Balance

Inter-OU Clearing

INV/0001 Operating Unit A 100 (100)

INV/0002 Operating Unit B 100 (100)


Bank Payment 1 Operating Unit C 200 200

Balance Inter-OU Clearing 0

- (8.1) Adds the OU as a field in the payment vouchers, visible only in Purchase or Sales
Receipts (DONE)
- (8.2) The voucher can only select AR o AP items for payment that belong to the same
OU (CANCELLED)
- (8.3) Security rules are defined to ensure that users can only display the Vouchers
belonging to the Operating Unit that they have access to, or associated to Journals that
have GL accounts where the operating unit is one they are allowed to access to.
- (8.4) The header information (logo and name) shown in the voucher are specific to the
OU. (CANCELLED)
9. Operating Unit in Sales Orders (DONE)
(module name: ‘sale_operating_unit’)

- (9.1) The OU appears as field during the creation of the Quotation / Sales Order.
- (9.2) The user’s default OU is proposed at the time of creating the Quotation / Sales
Order.
- (9.3) The OU defines the following, with respect to a Sales Order (POSTPONED)
- The numbering sequence
- The invoicing Journal
- (9.4) Security rules are defined to ensure that users can only display the Quotations /
Sales Orders in which they are allowed access to.(DONE)
- (9.5) The header information (logo and name) shown in the Quotation and Sales Order
form are specific to the OU.(PENDING)

10. Operating Unit in Sales Order and Warehouse Integration (DONE)


(module name: ‘sale_stock_operating_unit’)
- (10.1) When a Sales Order is confirmed the OU is copied to the to the Delivery Order.
(DONE)
- (10.2) A Sales Order can only use a supplying Warehouse (shop in 7.0) that belongs to
the same OU. (DONE)
- (10.3) A Delivery Order must have the same OU as that of the sales order that is
associated to it. (DONE)
- (10.4) A Procurement Order must have a location in the same OU as that of the Sales
Order that is associated to it. (PENDING)

11. Operating Unit in HR Employee expenses (DONE)


(module name: ‘hr_expense_operating_unit’)

- (11.1) The OU is an optional field during the creation of the Expense Sheet. (DONE)
- (11.2) The user’s default OU is proposed at the time of creating the Expense Sheet.
(DONE)
- (11.3) Security rules are defined to ensure that users can only display the Expense
Sheets in which they are allowed access to. (DONE)

12. Operating Unit in Procurement Orders (DONE)


(module name: ‘procurement_operating_unit’)
Procurement Orders always refer to a Location, and that Location will be assigned to an
Operating Unit. As a consequence there’s no need to define an Operating Unit at Procurement
level.

- (12.1) The OU is an optional field during the creation of the Procurement Order.
(business units in OdooCANCELLED)
- (12.2) The user’s default OU is proposed at the time of creating the Procurement Order.
(CANCELLED)
- (12.3) Security rules are defined to ensure that users can only display the Procurement
Orders that refer to Locations with an Operating Unit in which they are allowed access
to. (DONE)

13. Operating Unit in Purchase Requests (DONE)


(module name: ‘purchase_request_operating_unit’, ‘purchase_request_to_rfq_operating_unit’)

- (13.1)The OU is an optional field during the creation of the Purchase Requisition.


(DONE)
- (13.2) The user’s default OU is proposed at the time of creating the Purchase
Requisition.(DONE)
- (13.3) Security rules are defined to ensure that users can only display the Purchase
Requisitions in which they are allowed access to.(DONE)
- (13.4) The header information (logo and name) shown in the purchase request form are
specific to the OU.(DONE)

14. Operating Unit in HR Expenses (DONE)


(module name: ‘hr_expense_operating_unit’)

- (14.1)The OU is a optional field during the creation of the Expense. (DONE)


- (14.2) The user’s default OU is proposed at the time of creating the Expense.(DONE)
- (14.3) Security rules are defined to ensure that users can only display the Expenses in
which they are allowed access to.(DONE)
- (14.4) When the accounting entry is generated for the expenses, the move lines have
the operating unit of the expense. (DONE)

15. Operating Unit in HR Contract (DONE)


(module name: ‘hr_contract_operating_unit’)

- (15.1)The OU is a optional field during the creation of the Contract. (DONE)


- (15.2) The user’s default OU is proposed at the time of creating the Contract.(DONE)
- (15.3) Security rules are defined to ensure that users can only display the Contracts in
which they are allowed access to.(DONE)

16. Operating Unit in HR Payroll Accounting (DONE)


(module name: ‘hr_payroll_account_operating_unit’)

- (16.1) When the accounting entry is generated for the payslip, the move lines have the
operating unit of the employee’s contract indicated in the payslip. (DONE)

You might also like