[IMP] accounting: (multi) companies, branches & accountant access info

task-3645172
task-4256345

closes odoo/documentation#14019

X-original-commit: b0c827bfb9
Signed-off-by: Anne-Françoise Marcq (afma) <afma@odoo.com>
Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
This commit is contained in:
afma-odoo
2025-05-16 10:39:24 +00:00
parent 3a613b4e82
commit 3d3054481f
23 changed files with 515 additions and 434 deletions

View File

@@ -191,12 +191,12 @@ models. Once set, the property is shared by all records that are linked to the s
Candidate
- :ref:`Job position <job-position/create-job-position>`
:ref:`Company <companies/manage>`
:ref:`Company <general/companies/company>`
:ref:`Company <companies/manage>`
:ref:`Company <general/companies/company>`
* - :guilabel:`Repairs`
- :ref:`Repair order <repairs/repair_orders/repair>`
- :ref:`Company <companies/manage>`
- :ref:`Company <general/companies/company>`
* - :guilabel:`Sales` / etc.
- Product
- Category

View File

@@ -4,12 +4,10 @@
Accounting and Invoicing
========================
**Odoo Invoicing** is a standalone invoicing app to create invoices, send them to your customers,
and manage payments.
**Odoo Accounting** is a full featured accounting app. Accountant productivity is at the core of its
development with features such as AI-powered invoice recognition, synchronization with your bank
accounts, smart matching suggestions, etc.
Odoo Invoicing is a standalone app designed to create invoices, send them to customers, and manage
payments. It also handles flows involving vendor bills. On the other hand, the Accounting app is a
comprehensive accounting solution that allows the same actions and includes additional features such
as standard financial reports, bank reconciliation, budgets, asset management, and more.
.. seealso::
`Odoo Tutorials: Accounting <https://www.odoo.com/slides/accounting-19>`_
@@ -52,6 +50,8 @@ accounts, smart matching suggestions, etc.
Reporting, declarations, and analytic accounting
.. _accounting/double-entry-booking:
Double-entry bookkeeping
========================
@@ -66,6 +66,8 @@ always balance.
.. seealso::
:doc:`Accounting Cheat Sheet <accounting/get_started/cheat_sheet>`
.. _accounting/accrual-cash:
Accrual and cash basis
======================
@@ -81,14 +83,18 @@ expense either when the transaction occurs (accrual basis) or when the payment i
Multi-company
=============
Several companies can be managed within the same database. Each company has its :doc:`chart of
accounts <accounting/get_started/chart_of_accounts>`, but it is possible to share accounts
between them for scenarios in which such a configuration would be required. Users can then
access several companies but only work on a single company's accounting at a time.
:doc:`Multiple companies <../general/companies/multi_company>` can be managed within the same
database. Each company has its own :doc:`chart of accounts
<accounting/get_started/chart_of_accounts>`, but :ref:`accounts can be shared
<consolidation_account_mapping>`, which is useful when viewing consolidation reports. Users can view
records and reports from multiple companies simultaneously but can only work on a single company's
accounting at a time.
.. seealso::
- :ref:`Shared Accounts Feature <coa_shared_accounts>`
- :doc:`Consolidation <accounting/get_started/consolidation>`
- :doc:`Multi-company </applications/general/companies/multi_company>`
- :ref:`Inter-company transactions <general/multi-company/inter-company-transactions>`
.. _accounting/multi-currency:
Multi-currency environment
==========================
@@ -102,32 +108,80 @@ gains and losses after reconciling the journal items.
.. seealso::
:doc:`Manage a bank in a foreign currency <accounting/bank/foreign_currency>`
Branch management
=================
.. _accounting/branches:
Multiple branches can be managed thanks to multi-company hierarchies. This allows to post journal
entries on each branch as well as setting up a common lock date managed by the main company.
Branches
========
Parent :doc:`companies </applications/general/companies>` and their :ref:`branches
<general/companies/branches>` can be managed within a single database, operating under shared
accounting and reporting rules, including the following:
- The parent companys :doc:`chart of accounts <accounting/get_started/chart_of_accounts>`,
:doc:`main currency <accounting/get_started/multi_currency>`, and :doc:`taxes <accounting/taxes>`
apply to all branches.
- Branches can manage their own dedicated journals and related records.
- The parent company manages a common :ref:`fiscal period <year-end/fiscal-years>`, so its
:ref:`lock and closing dates <year-end/lock-everything-date>` apply across all branches. However,
branches may set earlier lock dates if needed.
- The parent company can access all :doc:`reports <accounting/reporting>`, :doc:`invoices
<accounting/customer_invoices>`, :doc:`bills <accounting/vendor_bills>`, etc., from its branches,
while each branch can only view its own data.
.. note::
The :doc:`Fiscal localization <fiscal_localizations>` package is set on the parent company.
.. warning::
Adding a branch to a company enables :doc:`multi-company functions
<../general/companies/multi_company>`.
For more information, refer to `Odoo's pricing page <https://www.odoo.com/pricing-plan>`_ or
contact your Odoo account manager.
.. _accounting/branch/reporting:
Reporting
---------
The parent company consolidates accounting operations from all branches, providing a centralized
view of :doc:`financial reports <accounting/reporting>`, such as profit and loss or balance sheets.
.. _accounting/branch/vat:
VAT
---
Each company and branch must be configured with its own legal information, including a VAT number
when applicable. Depending on the structure, branches may share the parent company's VAT number or
have their own, resulting in a common or separate :doc:`VAT return
<accounting/reporting/tax_returns>`.
This flexible setup allows users to generate individual reports and tax returns for each entity if
needed.
.. _accounting/international-standards:
International standards
=======================
Odoo Accounting supports more than 70 countries. It provides the central standards and mechanisms
common to all nations, and thanks to country-specific modules, local requirements are fulfilled.
Fiscal positions exist to address regional specificities like the chart of accounts, taxes, or any
other requirements.
Odoo Accounting supports over 100 countries and provides standardized features and mechanisms
applicable across all regions. Country-specific modules are included to comply with local accounting
regulations. :doc:`Fiscal localizations <fiscal_localizations>` handle regional requirements, such
as charts of accounts, taxes, or any other legal obligations.
.. seealso::
:doc:`Fiscal localization packages <fiscal_localizations>`
.. _accounting/accounts-receivable-payable:
Accounts receivable and payable
===============================
By default, there is a single account for the account receivable entries and one for the account
payable entries. As transactions are linked to your **contacts**, you can run a report per customer,
vendor, or supplier.
By default, one account is designated for accounts receivable entries and another for accounts
payable entries. As transactions are linked to **contacts**, it is possible to run a report per
customer, vendor, or supplier.
The **Partner Ledger** report displays the balance of your customers and suppliers. It is available
by going to :menuselection:`Accounting --> Reporting --> Partner Ledger`.
The **Partner Ledger** report displays the balance of customers and suppliers. To access it, go to
:menuselection:`Accounting --> Reporting --> Partner Ledger`.
.. _accounting/reporting:
Reporting
=========
@@ -144,7 +198,9 @@ real-time:
| +----------------------------------+
| | Cash flow statement |
| +----------------------------------+
| | Tax report |
| | Executive summary |
| +----------------------------------+
| | Tax return |
| +----------------------------------+
| | EC sales list |
+------------+----------------------------------+
@@ -152,7 +208,7 @@ real-time:
| +----------------------------------+
| | Trial balance |
| +----------------------------------+
| | Journal report |
| | Journal audit |
| +----------------------------------+
| | Intrastat report |
| +----------------------------------+
@@ -166,13 +222,23 @@ real-time:
+------------+----------------------------------+
| Management | Invoice analysis |
| +----------------------------------+
| | Analytic report |
| +----------------------------------+
| | Audit trail |
| +----------------------------------+
| | Budget report |
| +----------------------------------+
| | Unrealized currency gains/losses |
| +----------------------------------+
| | Deferred revenue |
| +----------------------------------+
| | Deferred expense |
| +----------------------------------+
| | Depreciation schedule |
| +----------------------------------+
| | Disallowed expenses |
| +----------------------------------+
| | Budget analysis |
| | Loans analysis |
| +----------------------------------+
| | Product margins |
| +----------------------------------+
@@ -182,31 +248,32 @@ real-time:
.. tip::
:doc:`Create and customize reports <accounting/reporting/customize>` with Odoo's report engine.
Tax report
.. _accounting/tax-report:
Tax return
----------
Odoo computes all accounting transactions for the specific tax period and uses these totals to
calculate the tax obligation.
.. important::
Once the tax report has been generated for a period, Odoo locks it and prevents the creation of
new journal entries involving VAT. Any correction to customer invoices or vendor bills has to
be recorded in the next period.
In the :ref:`Tax return <tax-returns/report>`, Odoo computes all accounting transactions for the
specific tax period and uses these totals to calculate the tax obligation.
.. note::
Depending on the country's localization, an XML version of the tax report can be generated to be
uploaded to the VAT platform of the relevant taxation authority.
.. _accounting/bank-synchronization:
Bank synchronization
====================
The bank synchronization system directly connects with your bank institution to automatically
import all transactions into your database. It gives an overview of your cash flow without logging
The bank synchronization system directly connects with banking institutions to automatically
import all transactions into the database. It gives an overview of the cash flow without logging
into an online banking system or waiting for paper bank statements.
.. seealso::
:doc:`Bank synchronization <accounting/bank/bank_synchronization>`
.. _accounting/inventory-valuation:
Inventory valuation
===================
@@ -217,6 +284,8 @@ available methods are standard price, average price, :abbr:`LIFO (Last-In, First
.. seealso::
:doc:`../inventory_and_mrp/inventory/product_management/inventory_valuation/inventory_valuation_config`
.. _accounting/retained-earnings:
Retained earnings
=================
@@ -227,13 +296,13 @@ and loss balance is automatically reported on the balance sheet report.
.. seealso::
:doc:`Accounting Cheat Sheet <accounting/get_started/cheat_sheet>`
.. _fiduciaries:
.. _accounting/fiduciaries:
Fiduciaries
===========
The :guilabel:`Accounting Firms` mode can be activated by going to :menuselection:`Accounting -->
Configuration --> Settings --> Accounting Firms mode`. When enabled:
Configuration --> Settings`. When enabled:
- The document's sequence becomes editable on all documents;
- The :guilabel:`Total (tax incl.)` field appears to speed up and control the encoding by automating
@@ -241,6 +310,29 @@ Configuration --> Settings --> Accounting Firms mode`. When enabled:
- :guilabel:`Invoice Date` and :guilabel:`Bill Date` are pre-filled when encoding a transaction.
- A :guilabel:`Quick encoding` option is available for customer invoices and vendor bills.
.. _accounting/accountant-access-rights:
Accountant access rights
========================
To grant access to the company's accountant, :ref:`add the accountant as a new user
<users/add-individual>` and configure the appropriate :doc:`access rights
<../general/users/access_rights>` in the :guilabel:`Accounting` section to enable access to the
company's financial data:
- :guilabel:`Accounting`: Select :guilabel:`Accountant`.
- :guilabel:`Bank`: Allow bank account validation.
.. Note::
Adding an accountant as a new user in :doc:`Odoo Online <../../administration/odoo_online>` is
free if the accountant has an Odoo account registered with the same email address as the one
listed for the company user. However, :doc:`Odoo.sh <../../administration/odoo_sh>` and
:doc:`Odoo On-premise <../../administration/on_premise>` may involve extra charges for each
additional user. For more pricing information, see
`Odoo's pricing <https://www.odoo.com/pricing-plan>`_.
For a multi-company environment, set the appropriate :ref:`access <users/multi-companies>`.
.. toctree::
:titlesonly:

View File

Before

Width:  |  Height:  |  Size: 9.7 KiB

After

Width:  |  Height:  |  Size: 9.7 KiB

View File

@@ -28,9 +28,9 @@ information:
- :guilabel:`Reference`: Include a reference to make the account easier to find if needed.
- :guilabel:`Plan`: Link the :guilabel:`Analytic Account` to an :ref:`analytic plan
<accounting/analytic_accounting/analytic_plans>`.
- :guilabel:`Company`: In a :doc:`multi-company </applications/general/multi_company>` environment,
select the company using the analytic account. To make the analytic account accessible to all
companies, leave the field empty.
- :guilabel:`Company`: In a :doc:`multi-company </applications/general/companies/multi_company>`
environment, select the company using the analytic account. To make the analytic account
accessible to all companies, leave the field empty.
- :guilabel:`Currency`: Update the currency of the analytic account if needed.
Then, the :doc:`budget <budget>` information can be filled in.
@@ -65,11 +65,11 @@ the following fields:
- :guilabel:`Financial Accounts Prefixes`: Enter the prefix(es) of the account(s) to which the plan
applies.
- :guilabel:`Product Category`: Choose the product category to which the plan applies.
- :guilabel:`Company`: In a :doc:`multi-company </applications/general/multi_company>` environment,
select the company using the plan. To make the analytic plan accessible to all companies, leave
the field empty.
- :guilabel:`Applicability`: Define how the plan is applied when creating a new journal entry. The
applicability set here always overrides the default applicability.
- :guilabel:`Company`: In a :doc:`multi-company </applications/general/companies/multi_company>`
environment, select the company using the plan. To make the analytic plan accessible to all
companies, leave the field empty.
Two smart buttons are available:
@@ -154,9 +154,9 @@ to apply automatically:
partner.
- :guilabel:`Product`: Apply the distribution model only to journal items involving a specific
product.
- :guilabel:`Company`: In a :doc:`multi-company </applications/general/multi_company>` environment,
apply the distribution model only to journal items involving a specific company. To apply it
across all companies, leave the field empty.
- :guilabel:`Company`: In a :doc:`multi-company </applications/general/companies/multi_company>`
environment, apply the distribution model only to journal items involving a specific company. To
apply it across all companies, leave the field empty.
- :guilabel:`Analytic Distribution`: :ref:`Analytic distribution
<accounting/analytic_accounting/analytic-distribution>` that will be applied when the above
conditions are met.

View File

@@ -110,6 +110,15 @@ paid or refunded.
entry. This safety mechanism can prevent some fiscal errors, but it is advised to lock your tax
date manually before, as described above.
.. important::
- Once the tax report for a period has been generated but not yet posted, additional invoices or
bills from that same period can still be posted and included in the closing entry. To do so,
click :icon:`oi-arrow-right` :guilabel:`Refresh` in the :guilabel:`Proposition of tax closing
journal entry`, or click :guilabel:`Closing Entry` again from the tax report.
- After the tax report has been posted for a period, Odoo locks the period and prevents the
creation of new journal entries involving VAT. Any corrections to customer invoices or vendor
bills must then be recorded in the following period.
.. seealso::
* :doc:`../taxes`
* :doc:`../get_started`

View File

@@ -15,7 +15,7 @@ Default taxes
**Default taxes** define which taxes are automatically selected when creating a new product. They
are also used to prefill the :guilabel:`Taxes` field when adding a new line on an invoice in
:ref:`Accounting Firms <fiduciaries>` mode.
:ref:`Accounting Firms <accounting/fiduciaries>` mode.
.. image:: taxes/default-configuration.png
:alt: Odoo fills out the Tax field automatically according to the Default Taxes

View File

@@ -575,7 +575,7 @@ information to complete the synchronization:
In a multi-company setup, the following configurations are required in Odoo:
- The user linked to the generated :ref:`API key <api/external_api/keys>` must have
:ref:`access <general/employee-access>` to the company intended for synchronization.
:ref:`access <general/companies/users>` to the company intended for synchronization.
- This company must also be set as the user's :guilabel:`Default Company`, as Teledec always
synchronizes with the user's default company.

View File

@@ -148,20 +148,17 @@ Multi-company
:doc:`../../general/companies`
If you have :ref:`multiple companies <accounting/multi-company>`, you can centralize and manage them
all on a single Odoo database. The KRA identifies and differentiates the **main** company from
its **subsidiaries** by using IDs. Furthermore, subsidiaries are classified as **branches** of the
main company.
all on a single Odoo database. The KRA identifies and differentiates the **parent** company from
its **subsidiaries** by using IDs. Furthermore, subsidiaries are classified as :ref:`branches
<general/companies/branches>` of the parent company.
To configure the company's ID, open the **Settings** app, click :guilabel:`Update Info` in the
:guilabel:`Companies` section, and search for the :guilabel:`eTIMS Branch Code` field. The **main
:guilabel:`Companies` section, and search for the :guilabel:`eTIMS Branch Code` field. The **parent
company** has a branch ID equal to `00` in a multi-company environment. Companies that are *not* the
main company have a branch ID other than `00` and are assigned an ID by the KRA.
parent company have a branch ID other than `00` and are assigned an ID by the KRA.
To add a branch, go to the :guilabel:`Branches` tab in the **company settings** and click
:guilabel:`Add a line`.
To fetch the **branch ID** from the KRA for your non-main companies, ensure the main company has a
Kenyan :guilabel:`Tax ID` and the OSCU device has been :ref:`initialized <kenya/initialization>`.
To fetch the **branch ID** from the KRA for your non-parent companies, ensure the parent company has
a Kenyan :guilabel:`Tax ID` and the OSCU device has been :ref:`initialized <kenya/initialization>`.
Then, go to the :guilabel:`Branches` tab and click :guilabel:`Populate from KRA`.
.. note::
@@ -184,29 +181,29 @@ KRA sequences
.. important::
Odoo invoice sequences and KRA sequences are **different**.
In Odoo, invoice sequences depend on the **main company**. Main companies can see the invoices of
branches, but branches **cannot** see the main company's invoices or those of other branches.
In Odoo, invoice sequences depend on the **parent company**. Parent companies can see the invoices
of branches, but branches **cannot** see the parent company's invoices or those of other branches.
The KRA needs **independent** sequences per branch. Therefore, Odoo manages sequences individually
per branch.
.. example::
If you have a main company with two branches, the invoice sequence would be the following:
If you have a parent company with two branches, the invoice sequence would be the following:
- Creating an invoice on **branch 1**: INV/2024/00001;
- Creating an invoice on **branch 2**: INV/2024/00002;
- Creating an invoice on the **main company**: INV/2024/00003.
- Creating an invoice on the **parent company**: INV/2024/00003.
This is how Odoo manages sequences to be compliant with the KRA regulations:
- Creating an invoice on **branch 1**: INV/2024/00001;
- Creating an invoice on **branch 2**: INV/2024/00001;
- Creating an invoice on the **main company**: INV/2024/00001.
- Creating an invoice on the **parent company**: INV/2024/00001.
Insurance
=========
For **health service providers**, you can send insurance information about the main and branch
For **health service providers**, you can send insurance information about the parent and branch
companies and update it in eTIMS. To do so, go to :menuselection:`Accounting --> Configuration -->
Settings`, scroll to the :guilabel:`Kenya eTIMS Integration` section, and fill in the
:guilabel:`Code`, :guilabel:`Name`, and :guilabel:`Rate` fields. Click :guilabel:`Send Insurance
@@ -246,9 +243,9 @@ internal operations or stock adjustments; therefore, Odoo automatically sends th
of the following conditions are met:
#. No contact is set for the move;
#. The contact is your main company or a branch of the main company.
#. The contact is your parent company or a branch of the parent company.
If the stock moves are **external operations** (e.g., to contacts that are not part of the main
If the stock moves are **external operations** (e.g., to contacts that are not part of the parent
company or its branches), the stock moves are automatically sent *after* the invoice is sent to
eTIMS.

View File

@@ -7,7 +7,6 @@ General settings
general/apps_modules
general/users
general/companies
general/multi_company
general/iot
general/email_communication
general/integrations

View File

@@ -4,252 +4,185 @@
Companies
=========
A centralized management environment allows an administrator to select multiple companies
simultaneously, and set their specific warehouses, customers, equipment, and contacts. It provides
the ability to generate reports of aggregated figures without switching interfaces, which
facilitates daily tasks, and enhances the overall management process.
In Odoo, a company is an individual business entity that operates independently, with its own legal
identity, financial records, and specific operational settings.
.. warning::
Enabling multi-company functionality in an Odoo database on a *Standard* plan automatically
triggers an upsell to the *Custom* plan. This does not apply to databases on the *One-App Free*
plan.
.. seealso::
- :ref:`general/companies/branches`
- :doc:`Multi-company <companies/multi_company>`
- **For yearly or multi-year contracts**: An upsell order is created with a 30-day limit.
- **For monthly contracts**: The subscription automatically switches to the *Custom* plan and
the new rate is applied when the next bill is generated.
.. _general/companies/configuration:
For more information, refer to `Odoo's pricing page <https://www.odoo.com/pricing-plan>`_ or
contact your account manager.
Configuration
=============
To create a new company, navigate to :menuselection:`Settings app --> Companies section`, and click
:guilabel:`Manage Companies`. Then, click :guilabel:`New` to create a new company.
To set up a company, follow these steps:
Proceed to fill out the new company form that appears.
#. :ref:`Configure the company details <general/companies/company>`.
#. :ref:`Manage users and their access rights <general/companies/users>`.
#. :ref:`Customize the document layout <general/companies/document-layout>`.
.. tip::
To archive a company, navigate to :menuselection:`Settings app --> Companies section --> Manage
Companies`. Then, tick the checkbox to the left of the company to be archived. If the
:guilabel:`Companies` page is not in list view, click the :guilabel:`≣ (four bars)` icon, located
in the top-right corner of the page.
.. _general/companies/company:
After selecting the appropriate company, click the :guilabel:`⚙️ Actions` icon, and select
:guilabel:`Archive` from the resulting drop-down menu.
Company
-------
To ensure all records related to the archived company are archived, contact Odoo's `Support Team
<https://www.odoo.com/help>`_.
To create a company, open the Settings app, navigate to the :guilabel:`Companies` section, and click
:icon:`oi-arrow-right` :guilabel:`Manage Companies`. In the :guilabel:`Companies` list view, click
:guilabel:`New` and configure the following fields:
Should a record not be archived, there is a risk of reactivating the archived company, and
creating the upsell again.
- :guilabel:`Company Name`
- :guilabel:`Address`
- :guilabel:`Tax ID`: tax identification number.
- :guilabel:`LEI`: legal entity identifier.
- :guilabel:`Company ID`: company's registry number, if different from :guilabel:`Tax ID`
- :ref:`Currency <multi-currency/config-main-currency>`
- :guilabel:`Phone` and :guilabel:`Mobile`
- :guilabel:`Email`
- :guilabel:`Website`
- :guilabel:`Email Domain`
- :guilabel:`Color`
.. _companies/manage:
Upload the company's logo and :guilabel:`Save`.
Manage companies and records
============================
.. note::
- Alternatively, it is possible to create a company by going to :menuselection:`Settings -->
Users & Companies --> Companies`.
- The company's :guilabel:`General information` may vary based on the :doc:`fiscal localization
<../finance/fiscal_localizations>`.
Go to :menuselection:`Settings app --> Companies section --> Manage Companies`. Then, either click
:guilabel:`New`, and fill in the form with the company's information, or select a pre-existing
company to edit it.
.. _general/companies/users:
.. image:: companies/company-info.png
:align: center
:alt: Overview of a new company's form in Odoo.
Users
-----
.. tip::
Activate the :ref:`developer mode <developer-mode>` to set social media accounts and
company-specific email parameters. See this documentation on
:doc:`../marketing/social_marketing` and :doc:`email_communication`.
After setting up a company, add :doc:`users <users>` and configure their :ref:`access
<users/add-individual>` and :doc:`access rights <users/access_rights>`.
Companies also have a :guilabel:`Parent Company` set on the company form in :ref:`developer mode
<developer-mode>`.
.. seealso::
:ref:`Users in multi-company environment <users/multi-companies>`
Switch between companies
------------------------
.. _general/companies/document-layout:
Switch between (or select) multiple companies, by clicking on the company name, located in the
far-right corner of the header menu, anywhere throughout the database. Tick the checkboxes next to
the desired company name(s) to activate them. The highlighted company represents the current
environment that is in use. To switch environments, click on the desired company name.
Document layout
---------------
.. example::
In the example below, the user has access to eight companies, two are activated, and the
environment the database is in belongs to: *My Company (San Francisco)*.
Configure the :ref:`default layout <studio/pdf-reports/default-layout>` for all company documents.
.. image:: companies/multi-companies-menu-dashboard.png
:align: center
:alt: View of the companies menu through the main dashboard in Odoo.
Share records
-------------
Data (such as, products, contacts, and equipment) can be shared, or set to be shown for a specific
company only. To do so, on their forms, choose between:
- *A blank field*: the record is shared within all companies.
- *Adding a company*: the record is visible to users logged in to that specific company.
.. image:: companies/product-form-company.png
:align: center
:alt: View of a product's form emphasizing the company field in Odoo Sales.
When an environment is selected from the top menu, along with an additional company, records are
shared between the two companies.
.. _general/companies/branches:
Branches
========
Branches are available to add to a company. Branches can be added by navigating to
:menuselection:`Settings app --> Companies section --> Manage Companies`. Then, select the desired
company from the list. From the company detail form, open the :guilabel:`Branches` tab. To add a
branch, click :guilabel:`Add a line`, and fill out the :guilabel:`Create Branches` pop-up form that
appears.
.. image:: companies/add-branch.png
:align: center
:alt: Add a branch to a company with branches and add a line highlighted.
.. tip::
Activate the :ref:`developer mode <developer-mode>` to set social media accounts and
company-specific email system parameters. See this documentation on
:doc:`../marketing/social_marketing` and :doc:`email_communication`.
Branches also have a :guilabel:`Parent Company` set on the branch form in :ref:`developer mode
<developer-mode>`. Accounting and fiscal localizations for the branch are set on the
:guilabel:`Parent Company`. To do so, select the company from the *company selector* in the top
menu, and go to :menuselection:`Settings app --> Accounting --> Fiscal Localization`.
.. danger::
If the database is on the standard *Paid* pricing plan, adding a branch to a company triggers an
upsell. Since adding one or more branches turns the database into a multi-company setup, it
will need to switch to the *Custom* pricing plan. This does not affect databases on the *One-app
free* plan.
For more information on pricing, see `Odoo's pricing <https://www.odoo.com/pricing-plan>`_ page.
.. _general/employee-access:
Employee access
===============
Once companies are created, manage the employees' :doc:`Access Rights <users/access_rights>` for
*Multi Companies*.
To access the *Access Rights*, navigate to :menuselection:`Settings app --> Users section --> Manage
Users`.
From the :guilabel:`Users` page, select a user from the list to modify. Then, either change the
fields for :guilabel:`Allowed Companies` or :guilabel:`Default Company`.
Multiple companies can be set for :guilabel:`Allowed Companies`, and *only one* can be set as the
:guilabel:`Default Company`.
.. image:: companies/access-rights-multi-companies.png
:align: center
:alt: View of an user form emphasizing the multi companies field under the access rights tabs
in Odoo.
If an administrator has multiple companies activated on the database, and is editing a record, the
editing occurs on the record's related company.
.. example::
If editing a sale order issued under `JS Store US`, while working on the `JS Store Belgium`
environment, the changes are applied under `JS Store US` (the company from which the sale order
was issued).
When creating a record, the company taken into account is:
- The current company selected in the company selector, in the upper-right hand of the screen (the
one that is highlighted/active)
**OR**
- No company is set (because none is set on the product and contact forms, for example)
**OR**
- The company set is the company linked to the document (the same as if a record is being edited)
Document format
===============
To set document formats according to each company, *activate* and *select* the respective company,
and, under the :menuselection:`Settings app --> Companies section`, click on :guilabel:`Configure
Document Layout` and edit the information as needed.
.. image:: companies/document-layout.png
:align: center
:alt: View of the settings page emphasizing the document layout field in Odoo.
:guilabel:`Company Details` can be edited on the document layout. By default, this field is
populated from the company information listed, when navigating here: :menuselection:`Settings app
--> Companies section --> Manage Companies`, and select a company from the list.
.. _general/inter-company:
Inter-company transactions
==========================
First, activate the :ref:`developer mode <developer-mode>`. Then, make sure each one of the
companies is properly set in relation to:
- :doc:`Chart of Accounts <../finance/accounting/get_started/chart_of_accounts>`
- :doc:`Taxes <../finance/accounting/taxes>`
- :doc:`Fiscal Positions <../finance/accounting/taxes/fiscal_positions>`
- :doc:`Journals <../finance/accounting/bank>`
- :doc:`Fiscal Localizations <../finance/fiscal_localizations>`
- :doc:`Pricelists <../sales/sales/products_prices/prices/pricing>`
Next, navigate to :menuselection:`Settings app --> Companies section --> Manage Companies`. Then,
select the desired company from the list. On the company form, select the :guilabel:`Inter-Company
Transactions` tab, on the individual company's detail form.
With the respective company activated and selected, choose one of the following :guilabel:`Rule`
options:
- :guilabel:`Do not synchronize`: do not synchronize any inter-company transactions.
- :guilabel:`Synchronized invoice/bills`: generates a bill/invoice when a company confirms a
bill/invoice for the selected company.
- :guilabel:`Synchronize Sales Order`: generates a drafted sales order using the selected company
warehouse, when a sales order is confirmed for the selected company. If, instead of a drafted
sales order, it should be validated, enable :guilabel:`Automatic Validation`.\*
- :guilabel:`Synchronize Purchase Order`: generates a drafted purchase order using the selected
company warehouse, when a purchase order is confirmed for the selected company. If, instead of a
drafted purchase order, it should be validated, enable :guilabel:`Automatic Validation`.\*
- :guilabel:`Synchronize Sales and Purchase Order`: generates a drafted purchase/sales order using
the selected company warehouse, when a sales/purchase order is confirmed for the selected company.
If, instead of a drafted purchase/sales order, it should be validated, enable :guilabel:`Automatic
Validation`.\*
\* The given option needs to be selected, so :guilabel:`Automatic Validation` appears in the
configuration.
.. image:: companies/inter-company-transactions.png
:align: center
:alt: View of the settings page emphasizing the inter company transaction field in Odoo.
Branches represent subdivisions within a company, such as regional offices or departments, that
operate under a common parent company. They support hierarchical company structures through
:ref:`configurable settings <general/companies/branches/configuration>`, enabling
:ref:`comprehensive or branch-specific views <general/companies/branches/consolidated-view>` with
flexible :ref:`access control <general/companies/branches/user-access>`, :ref:`entity-specific or
shared record visibility <general/companies/branches/shared-records>`, and customizable
:ref:`reporting <general/companies/branches/reporting>`.
.. note::
Products **must** be configured as :guilabel:`Can be sold` and shared between the companies. See
:doc:`../inventory_and_mrp/inventory/product_management/configure/type`.
.. example::
:guilabel:`Synchronize invoice/bills`: an invoice posted on `JS Store Belgium`, for `JS Store
US`, automatically creates a vendor bill, and generates a drafted purchase/sales order using the
selected company warehouse, when a sales/purchase order is confirmed for the selected company.
If, instead of a drafted purchase/sales order, it should be validated, enable
:guilabel:`Automatic Validation`.
:guilabel:`Synchronize sales/purchase order`: when a sale order for `JS Store US` is confirmed on
`JS Store Belgium`, a purchase order on `JS Store Belgium` is automatically created (and
confirmed, if the :guilabel:`Automatic Validation` feature was enabled).
.. tip::
Remember to test all workflows as a user *other* than the administrator.
Independent subsidiaries should be created as additional companies, not branches.
.. seealso::
- :doc:`Multi-company Guidelines <../../developer/howtos/company>`
- :doc:`../finance/accounting/get_started/multi_currency`
- :doc:`Multi-company </applications/general/companies/multi_company>`
- :ref:`Branch accounting <accounting/branches>`
.. _general/companies/branches/configuration:
Configuration
-------------
Each branch is linked to its parent company but may contain different or specific information, such
as its address or logo. A branch can be a parent company of branches at a lower level to create a
multi-level architecture.
.. important::
- Clarify the company's structure and hierarchy before creating companies and branches in Odoo. A
company defined as a parent cannot be converted into a branch later, as doing so may result in
:doc:`access rights <users/access_rights>` issues.
- Always create the parent company first.
To create a branch, follow these steps in the Settings app:
#. Navigate to the :guilabel:`Companies` section, click :icon:`oi-arrow-right` :guilabel:`Manage
Companies`, or go to :menuselection:`Settings --> Users & Companies --> Companies`.
#. In the :guilabel:`Companies` list view, open the desired parent company form.
#. In the :guilabel:`Branches` tab, click :guilabel:`Add a line` and fill in the :ref:`General
Information <general/companies/company>` fields in the :guilabel:`Create Branches` window.
To create branches from a branch and create a multi-level architecture, click :guilabel:`Add a line`
in the new branch's :guilabel:`Branches` tab.
.. tip::
Activate the :ref:`developer mode <developer-mode>` to set :doc:`social media accounts
<../marketing/social_marketing>` and company-specific :doc:`email <email_communication>` system
parameters.
.. warning::
Adding a branch to a company enables :doc:`multi-company <companies/multi_company>` functions.
.. _general/companies/branches/consolidated-view:
Comprehensive or branch-specific view
-------------------------------------
.. note::
Selecting the parent company automatically links all its branches, while selecting a branch
connects to that branch only. To switch between them, use the :ref:`company selector
<general/multi-company/company-selector>`.
All configurations, except for :ref:`accounting <accounting/branches>` settings inherited from the
parent company, must be set individually per branch. This allows for branch-specific setups such as
:doc:`loyalty programs <../sales/point_of_sale/pricing/loyalty>`, :doc:`price lists
<../sales/point_of_sale/pricing/pricelists>`, or :doc:`inventory locations
<../inventory_and_mrp/inventory/warehouses_storage/inventory_management/use_locations>`.
.. _general/companies/branches/user-access:
User access
~~~~~~~~~~~
Like in a multi-company environment, parent companies and branches support flexible :ref:`user
access <users/multi-companies>` control and :doc:`access rights <users/access_rights>`. User access
can be granted or restricted at the parent company level, the branch level, or both. For example, a
user can be limited to a specific branch, while an administrator with access to the parent company
can manage all associated branches.
.. _general/companies/branches/shared-records:
Shared records
~~~~~~~~~~~~~~
In Odoo, some records are, by default, either specific to a single entity or shared across the
parent company and all its branches.
When creating a quotation, invoice, or vendor bill, the active company or branch is automatically
selected and displayed in the :guilabel:`Company` field. If the active company is the parent company
or one of its branches, then records specifically linked to that entity are accessible only within
that entity and will only be visible when the company or branch is selected using the :ref:`company
selector <general/multi-company/company-selector>`.
In contrast, some records, such as :ref:`products or contacts
<general/multi-company/shared-and-unshared-records>`, are not tied to any particular entity and are
shared by default across the parent company and all its branches. However, they can be restricted to
a single entity by setting the appropriate value in the :guilabel:`Company` field, if needed.
.. seealso::
:ref:`Branches accounting <accounting/branches>`
.. _general/companies/branches/reporting:
Reporting
~~~~~~~~~
All :doc:`reports <../finance/accounting/reporting>` can be generated for the parent company alone
or with its branches, based on :ref:`user access <general/multi-company/user-access>`.
.. toctree::
:titlesonly:
companies/multi_company
companies/digest_emails
companies/email_template

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 37 KiB

View File

@@ -0,0 +1,190 @@
=============
Multi-company
=============
.. seealso::
:ref:`Branches <general/companies/branches>`
.. |mcd| replace:: multi-company database
In Odoo, multiple companies can be configured under one database. This allows some data to be shared
among companies while maintaining some separation between entities.
A centralized management environment allows authorized users to select multiple companies
simultaneously and set their specific warehouses, customers, equipment, and contacts. It also
generates reports of aggregated figures without switching interfaces, facilitating daily tasks and
enhancing the overall management process.
.. warning::
Enabling multi-company functionality in an Odoo database on a *Standard* plan automatically
triggers an upsell to the *Custom* plan. This does not apply to databases on the *One-App Free*
plan.
- **For yearly or multi-year contracts**: An upsell order is created with a 30-day limit.
- **For monthly contracts**: The subscription automatically switches to the *Custom* plan and
the new rate is applied when the next bill is generated.
For more information, refer to `Odoo's pricing page <https://www.odoo.com/pricing-plan>`_ or
contact your account manager.
.. _general/multi-company/configuration:
Configuration
=============
Open the Settings app, navigate to the :guilabel:`Companies` section, and click
:icon:`oi-arrow-right` :guilabel:`Manage Companies`. Then, click :guilabel:`New` and :ref:`fill in
the form with the company's information <general/companies/company>` or select an existing company
to edit it.
.. note::
Alternatively, it is possible to create a company by going to :menuselection:`Settings --> Users
& Companies --> Companies`.
.. tip::
To archive a company, follow these steps:
#. In the Settings app, navigate to the :guilabel:`Companies` section and click
:icon:`oi-arrow-right` :guilabel:`Manage Companies`.
#. In the :guilabel:`Companies` list view, select the company to be archived.
#. Click the :icon:`fa-cog` :guilabel:`Actions` menu and select :guilabel:`Archive`.
#. Click :guilabel:`Archive` to confirm.
.. _general/multi-company/multi-company-environment:
Multi-company environment
=========================
In a multi-company environment, users are granted :ref:`access to one or more companies
<general/multi-company/user-access>`, and :ref:`data
<general/multi-company/shared-and-unshared-records>` is created or modified based on its intended
use within that structure.
.. _general/multi-company/user-access:
User access
-----------
A multi-company environment allows flexible control over :ref:`user access <users/multi-companies>`
and :doc:`access rights <../users/access_rights>` that can be granted or restricted as needed.
.. _general/multi-company/company-selector:
Company selector
----------------
To switch between (or select) multiple companies, follow these steps:
#. Click the company selector in the top-right corner of the header menu.
#. In the drop-down list, select the checkboxes next to the desired companies.
#. The highlighted company indicates the current active environment.
#. To switch to another company, click its name in the list of selected companies.
.. example::
In the example below, the user can access six companies, two of which are selected. The current
active company is *My Company (San Francisco)*.
.. image:: multi_company/multi-companies-menu-dashboard.png
:alt: View of the companies menu through the main dashboard in Odoo.
.. _general/multi-company/shared-and-unshared-records:
Shared and company-specific records
-----------------------------------
Data, such as products, contacts, and equipment can either be shared across companies or restricted
to a specific company by setting the :guilabel:`Company` field on the relevant records:
- either leave the field blank to make it accessible to all companies;
- or select the company to make it visible to users logged in to that specific company.
Records specifically linked to a particular company are accessible only within that entity. For
instance, quotations, invoices, and vendor bills associated with a company are visible only when
logged into that company, and the corresponding company is automatically selected by default and
displayed in the :guilabel:`Company` field.
In a |mcd|, new products and contacts are shared across companies by default. To restrict them to a
specific company, set the :guilabel:`Company` field on the record's form.
.. _general/multi-company/inter-company-transactions:
Inter-company transactions
==========================
The :guilabel:`Inter-Company Transactions` feature allows one company in the database to sell or
purchase goods and services from another company within the same database. Depending on the
configuration settings, counterpart documents for orders and invoices can be automatically generated
and synchronized.
.. warning::
To handle inter-company transactions correctly, :doc:`general
<../../finance/accounting/get_started>` and specific configurations must be set properly,
including :doc:`fiscal positions <../../finance/accounting/taxes/fiscal_positions>` and
:doc:`localizations <../../finance/fiscal_localizations>`.
To activate inter-company transactions, select the relevant company in the :ref:`company selector
<general/multi-company/company-selector>`, open the Settings app, navigate to the
:guilabel:`Companies` section, enable :guilabel:`Inter-Company Transactions`, and :guilabel:`Save`.
Then, select the option(s) to create a counterpart for the selected company:
- :guilabel:`Generate Bills and Refunds`: Generate a bill/refund when a company confirms an
invoice/credit note for the selected company. To generate a validated bill/refund, select
:guilabel:`Create and validate`.
- :guilabel:`Generate Sales Orders`: Generate a quotation (drafted sales order) when a sales order
is confirmed for the selected company. To generate a validated sales order instead of a quotation,
select :guilabel:`Create and validate`.
- :guilabel:`Generate Purchase Orders`: Generate a request for quotation (drafted purchase order)
using the selected company warehouse in the :guilabel:`Use Warehouse` field when a purchase order
is confirmed for the selected company. To generate a validated purchase order instead of a request
for quotation, select :guilabel:`Create and validate`.
.. note::
For inter-company transactions, the :ref:`products must be shared
<general/multi-company/shared-and-unshared-records>` among the involved companies.
.. example::
:guilabel:`Generate Bills and Refunds`: when an invoice for :guilabel:`Customer` `JS Store US` is
posted on `JS Store Belgium`, a vendor bill is automatically created in `JS Store US`.
:guilabel:`Generate Sales Orders`: when a sales order for :guilabel:`Customer` `JS
Store US` is confirmed on `JS Store Belgium`, a purchase order on `JS Store US` is automatically
created (and confirmed if the :guilabel:`Create and validate` option is selected).
.. seealso::
- :doc:`Multi-company Guidelines <../../../developer/howtos/company>`
- :doc:`../../finance/accounting/get_started/multi_currency`
.. _general/multi-company/use-cases:
Use cases
=========
.. _general/multi-company/use-cases-multinational-companies:
Multinational companies
-----------------------
A multinational retail chain operating in the United States and Canada must manage transactions in
USD and CAD.
Since each country has its own tax laws and regulations, using Odoos multi-company feature is
highly beneficial.
This setup allows for inter-company transactions, which is essential for managing cross-border
inventory transfers. It also simplifies the sales process by enabling customers transactions in
their local currency.
.. _general/multi-company/use-cases-seperate-processes:
Separate processes
------------------
A small furniture company is launching a new product line that requires separate procurement,
inventory, and manufacturing workflows. These new products differ significantly from the existing
catalog. To manage this efficiently, the company is considering using the multi-company feature to
manage the new line as a separate business entity.
However, creating a completely new company might add unnecessary complexity to the database.
Instead, the company can leverage existing features such as :doc:`analytic accounting
<../../finance/accounting/reporting/analytic_accounting>` and multiple warehouses to manage the new
product line without complicating overall operations.

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

View File

@@ -1,140 +0,0 @@
=============
Multi-company
=============
.. |mcd| replace:: multi-company database
In Odoo, multiple companies can exist within a single database. This allows for some data to be
shared among companies, while still maintaining some level of separation between entities.
Before deciding to use the multi-company feature, there are several factors to consider.
.. important::
Multi-company is **only** available in *One App Free* databases, or with `Custom
<https://www.odoo.com/pricing-plan>`_ plans.
Accessing multiple companies
============================
The list of :ref:`companies an employee has access to <general/employee-access>` in a |mcd| can be
found at the top-right of the main Odoo menu bar, where the active company is listed. Click on the
company name to reveal a list of all allowed companies. To switch to a different company, click on
the company name in the drop-down menu. To enable multiple companies at once, tick the checkbox next
to each desired company name.
.. figure:: multi_company/company-access.png
:align: center
:alt: An example of the list of companies a user has access to when logged into a database.
An example of a user with access to multiple companies. The current company is My Company (San
Francisco), while My Company (Chicago) is also active.
.. note::
The database may refresh after each checkbox is ticked.
.. _general/active-companies:
Multiple active companies
-------------------------
If more than one company is active at a time, one company is highlighted in purple, and is listed on
the menu bar. This is the considered the *current* company.
When creating a new record, the current company is added to the record in the *Company* field,
except under the following circumstances:
- The *Company* field for a new product, or a new contact, is left blank.
- If there is a related document already in the system, the *Company* field on the new record
defaults to the same company.
.. example::
Mitchell Admin has multiple companies enabled, but the current company is `My Company (Chicago)`.
When he creates a new product record, the :guilabel:`Company` field is left blank by default.
When a new sales team is created, the :guilabel:`Company` field automatically defaults to `My
Company (Chicago)`.
.. _general/sharing-data:
Share data
==========
In a |mcd|, certain records are able to be utilized by all of the companies (or several, based on
permissions).
Products
--------
In an |mcd|, new products are created with the :ref:`Company field <general/active-companies>`
blank, by default. If the *Company* field remains blank, the product is shared across all companies.
Contacts
--------
Similar to products, contact records are shared across companies, by default. To limit access to a
single company, click the :ref:`Company field <general/active-companies>` on a contact form, and
select a company to assign the contact to.
Inter-company transactions
==========================
The :ref:`Inter-Company Transactions <general/inter-company>` feature allows for one company in the
database to sell or purchase goods and services from another company within the same database.
Counterpart documents for orders and invoices can be automatically generated and synchronized,
depending on the configuration settings.
.. warning::
To ensure inter-company transactions are handled appropriately, certain configurations, such as
fiscal positions and localizations, need to be accurately assigned. See :ref:`Inter-Company
Transactions <general/inter-company>` for additional information.
Use cases
=========
Multinational companies
-----------------------
A multinational retail chain, which operates in the United States and Canada, needs to manage
transactions in both USD and CAD currencies.
Additionally, because both countries have different tax laws and regulations, it is in the best
interest of the customer to utilize the multi-company feature.
This allows for inter-company transactions they need to manage inventory moves across international
borders, while making it simple to sell to customers in both countries in their own currency.
Separate processes
------------------
A small furniture company is developing a new line of products that require a separate procurement,
inventory, and manufacturing process. The new products are drastically different from the existing
catalog. The company is considering utilizing the multi-company feature to treat this new line as a
different entity.
To keep their database from becoming overly complex, the furniture company does not need to add an
entirely new company. Instead, they can take advantage of existing features, such as :doc:`analytic
accounting <../finance/accounting/reporting/analytic_accounting>`, and multiple warehouses, to
manage the new product line, without having to overly complicate transactions.
Limitations
===========
In some instances, a |mcd| may *not* be the best option, due to potential limitations.
Access rights
-------------
A user's access rights are configured on a database level. If a user has access to more than one
company in a |mcd|, their access rights are the same across every company.
Shared records
--------------
Individual records are either :ref:`shared <general/sharing-data>` between all companies, or belong
to a single company.
PDF Reports
-----------
Some customizations, specifically for PDF reports, apply to all companies. It is not always possible
to separate reports for individual companies.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

View File

@@ -51,7 +51,7 @@ On the |ECO| form, fill in the following fields accordingly:
.. note::
:guilabel:`Company` is only available to specify with multiple companies enabled. See
:doc:`../../../general/multi_company`.
:doc:`../../../general/companies/multi_company`.
- :guilabel:`Responsible` represents the assignee in charge of this |ECO|. (Optional)
- :guilabel:`Effective` specifies when the |ECO| becomes live. Choosing :guilabel:`As soon as

View File

@@ -94,8 +94,8 @@ configuration fields:
- :guilabel:`Align to Period Start`: optionally force new and recurring subscription renewal dates
under this plan to the first day of what is defined in the :guilabel:`Billing Period`.
- :guilabel:`Company`: optional assignment, if the database has :doc:`Multi-company
<../general/multi_company>` functionality enabled. Assigning this value will make the recurring
plan available for that company's location, specifically.
<../general/companies/multi_company>` functionality enabled. Assigning this value will make the
recurring plan available for that company's location, specifically.
- :guilabel:`Invoice Email Template`: assigns a specific email template to be used in subscriptions
invoicing communications. The default assignment here is `Invoice: Sending` which contains various
dynamic fields that autopopulate specific variables across the :guilabel:`Subject` field and

View File

@@ -34,6 +34,7 @@ applications/general/iot/config/updating_iot.rst applications/general/iot/iot_ad
applications/general/iot/config/troubleshooting.rst applications/general/iot.rst
applications/general/iot/config/windows_iot.rst applications/general/iot/windows_iot.rst
applications/general/iot/config/ssh_connect.rst applications/general/iot/iot_advanced/ssh_connect.rst
applications/general/multi_company.rst applications/general/companies/multi_company.rst
# applications/hr