Multi Company Base

base_multi_company
REPOSITORY
REPOSITORYOCA/multi-company
GIT
GIThttps://github.com/OCA/multi-company.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/multi-company/tree/18.0/base_multi_company
VERSION
VERSION 1.1.1
CATEGORY
CATEGORYbase
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA), ACSONE SA/NV, LasLabs
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA), ACSONE SA/NV, LasLabs
COMMITTERS
COMMITTERSWeblate, OCA-git-bot, oca-ci, LauraCForgeFlow, Guillaume MASSON, Arnau
WEBSITE
WEBSITEhttps://github.com/OCA/multi-company
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:30:09
ODOO DEPENDENCIES
ODOO DEPENDENCIES
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
This module will provide a way to change the way Odoo manages a
'multi-company' implementation.

## Abstract

Odoo traditional implementation of multi-company:

- Some models contain a field named Company (company_id) that allows to
  set one company or None in order to:
  - Limit access to that company if set.
  - not limiting access to any company if not set.

This module changes that in order to introduce a finer company access.
e.g.: If you want to give record access to company A and B but not for
C.

This module is not doing anything by its own but provide a transversal
implementation for further ones. e.g.: If you want to implement OCA
multi-company behaviour for products, install also the
'product_multi_company' or 'partner_multi_company' modules.

Code Analysis

Views touched (0)

No views found for this module.

Models touched (2)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (2)
  • company_id Many2one → res.company
    comodel_name='res.company' compute='_compute_company_id' inverse='_inverse_company_id' search='_search_company_id' string='Company'
  • company_ids Many2many → res.company
    comodel_name='res.company' depends_context=('uid') string='Companies'
Public methods (2)
  • create(self, vals_list)
    @api.model_create_multi
    Discard changes in company_id field if company_ids has been given.
  • write(self, vals)
    Discard changes in company_id field if company_ids has been given.
REPOSITORY
REPOSITORYOCA/multi-company
GIT
GIThttps://github.com/OCA/multi-company.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/multi-company/tree/17.0/base_multi_company
VERSION
VERSION 2.0.1
CATEGORY
CATEGORYbase
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA), ACSONE SA/NV, LasLabs
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA), ACSONE SA/NV, LasLabs
COMMITTERS
COMMITTERSVíctor Martínez, Weblate, OCA-git-bot, Raf Ven, oca-ci, christian-ramos-tecnativa, Arnau
WEBSITE
WEBSITEhttps://github.com/OCA/multi-company
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:20:03
ODOO DEPENDENCIES
ODOO DEPENDENCIES
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
This module will provide a way to change the way Odoo manages a
'multi-company' implementation.

## Abstract

Odoo traditional implementation of multi-company:

- Some models contain a field named Company (company_id) that allows to
  set one company or None in order to:
  - Limit access to that company if set.
  - not limiting access to any company if not set.

This module changes that in order to introduce a finer company access.
e.g.: If you want to give record access to company A and B but not for
C.

This module is not doing anything by its own but provide a transversal
implementation for further ones. e.g.: If you want to implement OCA
multi-company behaviour for products, install also the
'product_multi_company' or 'partner_multi_company' modules.

Code Analysis

Views touched (0)

No views found for this module.

Models touched (2)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (2)
  • company_id Many2one → res.company
    comodel_name='res.company' compute='_compute_company_id' inverse='_inverse_company_id' search='_search_company_id' string='Company'
  • company_ids Many2many → res.company
    comodel_name='res.company' depends_context=('uid') string='Companies'
Public methods (2)
  • create(self, vals_list)
    @api.model_create_multi
    Discard changes in company_id field if company_ids has been given.
  • write(self, vals)
    Discard changes in company_id field if company_ids has been given.
REPOSITORY
REPOSITORYOCA/multi-company
GIT
GIThttps://github.com/OCA/multi-company.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/multi-company/tree/16.0/base_multi_company
VERSION
VERSION 3.0.0
CATEGORY
CATEGORYbase
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA), ACSONE SA/NV, LasLabs
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA), ACSONE SA/NV, LasLabs
COMMITTERS
COMMITTERSJairo Llopis, Víctor Martínez, Weblate, OCA-git-bot, Simone Rubino, oca-ci, Alessandro Uffreduzzi, prabakaran
WEBSITE
WEBSITEhttps://github.com/OCA/multi-company
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:53:41
ODOO DEPENDENCIES
ODOO DEPENDENCIES
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (0)

No views found for this module.

Models touched (2)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (2)
  • company_id Many2one → res.company
    comodel_name='res.company' compute='_compute_company_id' inverse='_inverse_company_id' search='_search_company_id' string='Company'
  • company_ids Many2many → res.company
    comodel_name='res.company' string='Companies'
Public methods (2)
  • create(self, vals_list)
    @api.model_create_multi
    Discard changes in company_id field if company_ids has been given.
  • write(self, vals)
    Discard changes in company_id field if company_ids has been given.
REPOSITORY
REPOSITORYOCA/multi-company
GIT
GIThttps://github.com/OCA/multi-company.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/multi-company/tree/15.0/base_multi_company
VERSION
VERSION 1.0.7
CATEGORY
CATEGORYbase
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA), ACSONE SA/NV, LasLabs
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA), ACSONE SA/NV, LasLabs
COMMITTERS
COMMITTERSPedro M. Baeza, Jairo Llopis, Lois Rilo, Weblate, OCA-git-bot, Simone Rubino, David, oca-ci, Alessandro Uffreduzzi, Jasmin Solanki
WEBSITE
WEBSITEhttps://github.com/OCA/multi-company
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:46:30
ODOO DEPENDENCIES
ODOO DEPENDENCIES
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (0)

No views found for this module.

Models touched (2)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (3)
  • company_id Many2one → res.company
    comodel_name='res.company' compute='_compute_company_id' inverse='_inverse_company_id' search='_search_company_id' string='Company'
  • company_ids Many2many → res.company
    comodel_name='res.company' default=<expr> string='Companies'
  • no_company_ids Boolean
    compute='_compute_no_company_ids' compute_sudo=True index=True store=True string='No Companies'
Public methods (4)
  • create(self, vals_list)
    @api.model_create_multi
    Discard changes in company_id field if company_ids has been given.
  • search(self, args, offset=0, limit=None, order=None, count=False)
    @api.model
  • search_read(self, domain=None, fields=None, offset=0, limit=None, order=None)
    @api.model
  • write(self, vals)
    Discard changes in company_id field if company_ids has been given.
REPOSITORY
REPOSITORYOCA/multi-company
GIT
GIThttps://github.com/OCA/multi-company.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/multi-company/tree/14.0/base_multi_company
VERSION
VERSION 2.0.0
CATEGORY
CATEGORYbase
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA), ACSONE SA/NV, LasLabs
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA), ACSONE SA/NV, LasLabs
COMMITTERS
COMMITTERSPedro M. Baeza, Jairo Llopis, Denis Roussel, OCA Transbot, oca-travis, Weblate, OCA-git-bot, Simone Rubino, oca-ci, matteoopenf, oca-git-bot, Alessio Renda
WEBSITE
WEBSITEhttps://github.com/OCA/multi-company
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:40:51
ODOO DEPENDENCIES
ODOO DEPENDENCIES
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES odoo-test-helper
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (0)

No views found for this module.

Models touched (2)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (2)
  • company_id Many2one → res.company
    comodel_name='res.company' compute='_compute_company_id' inverse='_inverse_company_id' search='_search_company_id' string='Company'
  • company_ids Many2many → res.company
    comodel_name='res.company' string='Companies'
Public methods (3)
  • create(self, vals_list)
    @api.model_create_multi
    Discard changes in company_id field if company_ids has been given.
  • search_read(self, domain=None, fields=None, offset=0, limit=None, order=None)
    @api.model
  • write(self, vals)
    Discard changes in company_id field if company_ids has been given.
REPOSITORY
REPOSITORYOCA/multi-company
GIT
GIThttps://github.com/OCA/multi-company.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/multi-company/tree/13.0/base_multi_company
VERSION
VERSION 1.0.3
CATEGORY
CATEGORYbase
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA), LasLabs
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA), LasLabs
COMMITTERS
COMMITTERSPedro M. Baeza, Lois Rilo, OCA Transbot, Ernesto Tejeda, oca-travis, OCA-git-bot, Joan Sisquella
WEBSITE
WEBSITEhttps://github.com/OCA/multi-company
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:34:10
ODOO DEPENDENCIES
ODOO DEPENDENCIES
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (0)

No views found for this module.

Models touched (1)

New fields (2)
  • company_id Many2one → res.company
    comodel_name='res.company' compute='_compute_company_id' inverse='_inverse_company_id' search='_search_company_id' string='Company'
  • company_ids Many2many → res.company
    comodel_name='res.company' default=<expr> string='Companies'
Public methods (2)
  • create(self, vals_list)
    @api.model_create_multi
    Discard changes in company_id field if company_ids has been given.
  • write(self, vals)
    Discard changes in company_id field if company_ids has been given.
REPOSITORY
REPOSITORYOCA/multi-company
GIT
GIThttps://github.com/OCA/multi-company.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/multi-company/tree/12.0/base_multi_company
VERSION
VERSION 1.0.1
CATEGORY
CATEGORYbase
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA), LasLabs
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA), LasLabs
COMMITTERS
COMMITTERSMaxime Chambreuil, OCA Transbot, Florian da Costa, oca-travis, Weblate, OCA-git-bot, scampbell
WEBSITE
WEBSITEhttps://github.com/OCA/multi-company
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:29:14
ODOO DEPENDENCIES
ODOO DEPENDENCIES
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (0)

No views found for this module.

Models touched (2)

New fields (3)
  • company_id Many2one → res.company
    comodel_name='res.company' compute='_compute_company_id' inverse='_inverse_company_id' search='_search_company_id' string='Company'
  • company_ids Many2many → res.company.assignment
    auto_join=True comodel_name='res.company.assignment' default=<expr> string='Companies'
  • visible_for_all_companies Boolean
    compute='_compute_visible_for_all_companies' default=True index=True store=True
Public methods (0)

No public methods.

New fields (2)
  • name Char
  • parent_id Many2one → res.company
    args: 'res.company'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/multi-company
GIT
GIThttps://github.com/OCA/multi-company.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/multi-company/tree/11.0/base_multi_company
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYbase
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA), LasLabs
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA), LasLabs
COMMITTERS
COMMITTERSPedro M. Baeza, OCA Transbot, oca-travis, Rodrigo Ferreira
WEBSITE
WEBSITEhttps://laslabs.com
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:23:56
ODOO DEPENDENCIES
ODOO DEPENDENCIES
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (0)

No views found for this module.

Models touched (2)

New fields (2)
  • company_id Many2one → res.company
    comodel_name='res.company' compute='_compute_company_id' inverse='_inverse_company_id' search='_search_company_id' string='Company'
  • company_ids Many2many → res.company.assignment
    auto_join=True comodel_name='res.company.assignment' default=<expr> string='Companies'
Public methods (0)

No public methods.

New fields (2)
  • name Char
  • parent_id Many2one → res.company
    args: 'res.company'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/multi-company
GIT
GIThttps://github.com/OCA/multi-company.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/multi-company/tree/10.0/base_multi_company
VERSION
VERSION 2.0.1
CATEGORY
CATEGORYbase
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA), LasLabs
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA), LasLabs
COMMITTERS
COMMITTERSPedro M. Baeza, GitHub, OCA Transbot, Dave Lasley, oca-travis, OCA-git-bot, SimoRubi, Simone Rubino, François Honoré
WEBSITE
WEBSITEhttps://laslabs.com
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:19:54
ODOO DEPENDENCIES
ODOO DEPENDENCIES
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (0)

No views found for this module.

Models touched (2)

New fields (2)
  • company_id Many2one → res.company
    comodel_name='res.company' compute='_compute_company_id' inverse='_inverse_company_id' search='_search_company_id' string='Company'
  • company_ids Many2many → res.company.assignment
    auto_join=True comodel_name='res.company.assignment' default=<expr> string='Companies'
Public methods (0)

No public methods.

New fields (2)
  • name Char
  • parent_id Many2one → res.company
    args: 'res.company'
Public methods (0)

No public methods.

STATUS
STATUSOpen migration PR - not merged yet for this version
REPOSITORY
REPOSITORYOCA/multi-company
PULL REQUEST
PULL REQUEST[19.0][MIG] base_multi_company (#1009)