diff --git a/content/applications/finance/accounting.rst b/content/applications/finance/accounting.rst index bb0b71c5f5..cb788e6b34 100644 --- a/content/applications/finance/accounting.rst +++ b/content/applications/finance/accounting.rst @@ -4,11 +4,11 @@ Accounting and Invoicing ======================== -**Odoo Invoicing** is a standalone invoicing app to create invoices, send them to your customers, -and manage payments. +**Odoo Invoicing** is a standalone invoicing app to create invoices, send them to 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 +**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 bank accounts, smart matching suggestions, etc. .. seealso:: @@ -52,6 +52,8 @@ accounts, smart matching suggestions, etc. Reporting, declarations, and analytic accounting +.. _accounting/double-entry-booking: + Double-entry bookkeeping ======================== @@ -66,6 +68,8 @@ always balance. .. seealso:: :doc:`Accounting Cheat Sheet ` +.. _accounting/accrual-cash: + Accrual and cash basis ====================== @@ -81,11 +85,68 @@ 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 `, which is also useful to generate consolidation -reports. Users can access several companies but can only work on a single company's accounting at a +:doc:`Several companies ` can be managed within the +same database. Each company has its :doc:`chart of accounts +`, which is also useful to generate consolidation reports. +Users can access several companies but can only work on a single company's accounting at a time. +.. seealso:: + - :doc:`Multi-company ` + +.. _general/companies/inter-company: + +Inter-company transactions +-------------------------- + +It is possible to generate counterpart documents for order/invoices between companies automatically. +To activate inter-company transactions, open the Settings app of the selected company, navigate to +the :guilabel:`Companies` section, enable the :guilabel:`Inter-Company Transactions`, and +:guilabel:`Save`. Then, choose one of the following :guilabel:`Rule` options to create a counterpart +for the selected company: + +- :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. + +.. 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 invoices/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. + +.. seealso:: + - :doc:`Multi-company Guidelines <../../developer/howtos/company>` + - :doc:`../finance/accounting/get_started/multi_currency` + + +.. _accounting/multi-currency: + Multi-currency environment ========================== @@ -98,32 +159,82 @@ gains and losses after reconciling the journal items. .. seealso:: :doc:`Manage a bank in a foreign currency ` -Branch management -================= +.. _accounting/branches: + +Branches +======== + +Parent :doc:`companies ` and their :ref:`branches +` can be managed within a single database, operating under shared +accounting and reporting rules, including the following: + +- The parent company’s :doc:`chart of accounts `, + :doc:`main currency `, and :doc:`taxes ` + apply to all branches. +- Branches can manage their own dedicated journals and related records. +- The parent company manages a common :ref:`fiscal period `, so its lock and + closing dates apply across all branches. However, branches may set earlier lock dates if needed. +- The parent company can access all :doc:`reports `, :doc:`invoices + `, :doc:`bills `, etc., from its branches, + while each branch can only view its own data. +- The parent company and all branches must be located in the same country to ensure accounting + consistency. + +.. note:: + Branch :doc:`accounting ` and :doc:`fiscal localizations ` are + set on the parent company. + +.. warning:: + Adding a branch to a :doc:`company <../general/companies>` enables multi-company functions. + + For more information, refer to `Odoo's pricing page `_ or + contact the company's account manager. + +.. _accounting/branch/reporting: + +Reporting +--------- + +The parent company consolidates accounting operations from all branches, providing a centralized +view of :doc:`financial reports `, such as profit and loss or balance sheets. + +.. _accounting/branch/vat: + +VAT +--- + +Each company and branch must be configured with its own legal information, such as a VAT number when +applicable. Branches are not part of the parent company’s VAT unit. + +This company- or branch-specific setup allows users to generate individual reports and :doc:`tax +returns ` for each entity. -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. +.. _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. +Fiscal localizations exist to address regional specificities like the chart of accounts, taxes, or +any other requirements. .. seealso:: :doc:`Fiscal localization packages ` +.. _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. +payable entries. As transactions are linked to **contacts**, run a report per customer, vendor, or +supplier. + +The **Partner Ledger** report displays the balance of customers and suppliers. To access it, go to +:menuselection:`Accounting --> Reporting --> Partner Ledger`. -The **Partner Ledger** report displays the balance of your customers and suppliers. It is available -by going to :menuselection:`Accounting --> Reporting --> Partner Ledger`. +.. _accounting/reporting: Reporting ========= @@ -140,6 +251,8 @@ real-time: | +----------------------------------+ | | Cash flow statement | | +----------------------------------+ +| | Executive summary | +| +----------------------------------+ | | Tax report | | +----------------------------------+ | | EC sales list | @@ -162,8 +275,16 @@ real-time: +------------+----------------------------------+ | Management | Invoice analysis | | +----------------------------------+ +| | Analytic reporting | +| +----------------------------------+ +| | Audit trail | +| +----------------------------------+ | | Unrealized currency gains/losses | | +----------------------------------+ +| | Deferred revenue | +| +----------------------------------+ +| | Deferred expense | +| +----------------------------------+ | | Depreciation schedule | | +----------------------------------+ | | Disallowed expenses | @@ -178,6 +299,8 @@ real-time: .. tip:: :doc:`Create and customize reports ` with Odoo's report engine. +.. _accounting/tax-report: + Tax report ---------- @@ -193,16 +316,20 @@ calculate the tax obligation. 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 the bank institution 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/inventory-valuation: + Inventory valuation =================== @@ -213,6 +340,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 ================= @@ -223,7 +352,7 @@ and loss balance is automatically reported on the balance sheet report. .. seealso:: :doc:`Accounting Cheat Sheet ` -.. _fiduciaries: +.. _accounting/fiduciaries: Fiduciaries =========== @@ -237,6 +366,27 @@ 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 +` 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 the appropriate group +- :guilabel:`Bank`: allow bank account validation + +.. Note:: + Adding a new user is free of charge in :doc:`Odoo Online <../../administration/odoo_online>`. + 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 `_. + +For multi-company environment, set the appropriate :ref:`access `. + .. toctree:: :titlesonly: diff --git a/content/applications/general/companies/inter-company-transactions.png b/content/applications/finance/accounting/inter-company-transactions.png similarity index 100% rename from content/applications/general/companies/inter-company-transactions.png rename to content/applications/finance/accounting/inter-company-transactions.png diff --git a/content/applications/finance/accounting/taxes.rst b/content/applications/finance/accounting/taxes.rst index 400124c1c1..247ff5dbfe 100644 --- a/content/applications/finance/accounting/taxes.rst +++ b/content/applications/finance/accounting/taxes.rst @@ -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 ` mode. +:ref:`Accounting Firms ` mode. .. image:: taxes/default-configuration.png :alt: Odoo fills out the Tax field automatically according to the Default Taxes diff --git a/content/applications/finance/fiscal_localizations/kenya.rst b/content/applications/finance/fiscal_localizations/kenya.rst index b84f1c3a14..ddb7f6b97e 100644 --- a/content/applications/finance/fiscal_localizations/kenya.rst +++ b/content/applications/finance/fiscal_localizations/kenya.rst @@ -148,20 +148,17 @@ Multi-company :doc:`../../general/companies` If you have :ref:`multiple companies `, 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 +` 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 `. +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 `. 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. diff --git a/content/applications/general.rst b/content/applications/general.rst index 494420b936..c23cc7021c 100644 --- a/content/applications/general.rst +++ b/content/applications/general.rst @@ -7,7 +7,6 @@ General settings general/apps_modules general/users general/companies - general/multi_company general/iot general/email_communication general/integrations diff --git a/content/applications/general/companies.rst b/content/applications/general/companies.rst index b2cf8d7379..45a4af62cf 100644 --- a/content/applications/general/companies.rst +++ b/content/applications/general/companies.rst @@ -4,252 +4,189 @@ 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. - - - **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 `_ or - contact your account manager. - -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. - -Proceed to fill out the new company form that appears. - -.. 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. +.. seealso:: + - :ref:`general/companies/branches` + - :doc:`Multi-company ` - After selecting the appropriate company, click the :guilabel:`⚙️ Actions` icon, and select - :guilabel:`Archive` from the resulting drop-down menu. +.. _general/companies/configuration: - To ensure all records related to the archived company are archived, contact Odoo's `Support Team - `_. +Configuration +============= - Should a record not be archived, there is a risk of reactivating the archived company, and - creating the upsell again. +To set up a company, follow these steps: -.. _companies/manage: +- :ref:`Configure the company details `. +- :ref:`Manage users and their access rights `. +- :ref:`Customize the document layout `. -Manage companies and records -============================ +.. _general/companies/company: -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. +Company +------- -.. image:: companies/company-info.png - :align: center - :alt: Overview of a new company's form in Odoo. +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: -.. tip:: - Activate the :ref:`developer mode ` to set social media accounts and - company-specific email parameters. See this documentation on - :doc:`../marketing/social_marketing` and :doc:`email_communication`. +- :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 ` +- :guilabel:`Phone` and :guilabel:`Mobile` +- :guilabel:`Email` +- :guilabel:`Website` +- :guilabel:`Email Domain` +- :guilabel:`Color` - Companies also have a :guilabel:`Parent Company` set on the company form in :ref:`developer mode - `. +Upload the company's logo and :guilabel:`Save`. -Switch between companies ------------------------- +.. note:: + Company's :guilabel:`General information` may vary based on the :doc:`fiscal localization + <../finance/fiscal_localizations>`. -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. +.. _general/companies/users: -.. 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)*. +Users +----- - .. image:: companies/multi-companies-menu-dashboard.png - :align: center - :alt: View of the companies menu through the main dashboard in Odoo. +After setting up a company, add :doc:`users ` and configure their :ref:`access +` and :doc:`access rights `. -Share records -------------- +.. seealso:: + :ref:`Users in multi-company environment ` -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: +.. _general/companies/document-layout: -- *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. +Document layout +--------------- -.. image:: companies/product-form-company.png - :align: center - :alt: View of a product's form emphasizing the company field in Odoo Sales. +Configure the :ref:`default layout ` for all company documents. -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 ` 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 - `. 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. +Branches represent subdivisions within a company, such as regional offices, departments, or legal +entities, that operate under a common parent company. They support hierarchical company structures +through :ref:`configurable settings `, enabling +:ref:`comprehensive or branch-specific views ` with +flexible :ref:`access control `, :ref:`entity-specific or +shared record visibility `, and customizable +:ref:`reporting `. - For more information on pricing, see `Odoo's pricing `_ page. - -.. _general/employee-access: - -Employee access -=============== - -Once companies are created, manage the employees' :doc:`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`. +.. note:: + - For an independent subsidiary, it is preferable to create it as a new company. + - The parent company and all branches must be located in the same country to ensure accounting + consistency. -.. 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. +.. seealso:: + - :doc:`Multi-company ` + - :ref:`Branches accounting ` -If an administrator has multiple companies activated on the database, and is editing a record, the -editing occurs on the record's related company. +.. _general/companies/branches/configuration: -.. 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). +Configuration +------------- -When creating a record, the company taken into account is: +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. -- The current company selected in the company selector, in the upper-right hand of the screen (the - one that is highlighted/active) +.. 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 ` issues. + - Always create the parent company first. -**OR** +To create a branch, follow these steps in the Settings app: -- No company is set (because none is set on the product and contact forms, for example) +#. Navigate to the :guilabel:`Companies` section and click :icon:`oi-arrow-right` :guilabel:`Manage + Companies`. +#. In the :guilabel:`Companies` list view, open the desired parent company form. +#. In the :guilabel:`Branches` tab, click :guilabel:`Add a line` and :ref:`fill in the information + ` in the :guilabel:`Create Branches` window. -**OR** +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. -- The company set is the company linked to the document (the same as if a record is being edited) +.. tip:: + Activate the :ref:`developer mode ` to set :doc:`social media accounts + <../marketing/social_marketing>` and company-specific :doc:`email ` system + parameters. -Document format -=============== +.. warning:: + Adding a branch to a :doc:`company <../general/companies>` enables multi-company functions. -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. +.. _general/companies/branches/consolidated-view: -.. image:: companies/document-layout.png - :align: center - :alt: View of the settings page emphasizing the document layout field in Odoo. +Comprehensive or branch-specific view +------------------------------------- -: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. +.. note:: + - Switching between branches is like :ref:`switching between companies + `. + - Selecting the parent company automatically links all its branches, while selecting only one + branch connects to that branch. -.. _general/inter-company: +:ref:`Accessing ` the parent company +automatically connects all associated branches and should be considered when managing :ref:`user +access ` or creating :ref:`records +`. -Inter-company transactions -========================== +Except for :ref:`accounting ` settings inherited from the parent company, other +configurations must be created or adjusted individually in each 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>`. -First, activate the :ref:`developer mode `. Then, make sure each one of the -companies is properly set in relation to: +.. _general/companies/branches/user-access: -- :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>` +User Access +~~~~~~~~~~~ -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. +Unlike standalone companies, parent companies and branches support flexible :ref:`user access +` control and :doc:`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 shop (branch), while an administrator with access to the parent company +can manage all associated shops (branches). -With the respective company activated and selected, choose one of the following :guilabel:`Rule` -options: +.. _general/companies/branches/shared-records: -- :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`.\* +Shared records +~~~~~~~~~~~~~~ - \* The given option needs to be selected, so :guilabel:`Automatic Validation` appears in the - configuration. +Each record strictly linked to a specific entity, whether a branch or parent company, is only +accessible within that entity. For example, quotations, invoices, and vendor bills linked to a +branch will only be visible when logged into that specific branch. -.. image:: companies/inter-company-transactions.png - :align: center - :alt: View of the settings page emphasizing the inter company transaction field in Odoo. +When creating a quotation, invoice, or vendor bill, the corresponding branch is automatically +selected by default and displayed in the :guilabel:`Company` field. -.. 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`. +In contrast, elements not tied to any particular entity, such as :ref:`products +` or :ref:`contacts `, are shared by +default across the parent company and all its branches. -.. 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`. +.. seealso:: + :ref:`Branches accounting ` - :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). +.. _general/companies/branches/reporting: -.. tip:: - Remember to test all workflows as a user *other* than the administrator. +Reporting +~~~~~~~~~ -.. seealso:: - - :doc:`Multi-company Guidelines <../../developer/howtos/company>` - - :doc:`../finance/accounting/get_started/multi_currency` +All :doc:`reports <../finance/accounting/reporting>` can be generated for the parent company alone +or with its branches based on :ref:`user access +`. .. toctree:: :titlesonly: + companies/multi_company companies/digest_emails companies/email_template diff --git a/content/applications/general/companies/access-rights-multi-companies.png b/content/applications/general/companies/access-rights-multi-companies.png deleted file mode 100644 index b42d9062c1..0000000000 Binary files a/content/applications/general/companies/access-rights-multi-companies.png and /dev/null differ diff --git a/content/applications/general/companies/add-branch.png b/content/applications/general/companies/add-branch.png deleted file mode 100644 index 550df91efb..0000000000 Binary files a/content/applications/general/companies/add-branch.png and /dev/null differ diff --git a/content/applications/general/companies/company-info.png b/content/applications/general/companies/company-info.png deleted file mode 100644 index c6e43bf708..0000000000 Binary files a/content/applications/general/companies/company-info.png and /dev/null differ diff --git a/content/applications/general/companies/document-layout.png b/content/applications/general/companies/document-layout.png deleted file mode 100644 index 61a5bd2161..0000000000 Binary files a/content/applications/general/companies/document-layout.png and /dev/null differ diff --git a/content/applications/general/companies/multi-companies-menu-dashboard.png b/content/applications/general/companies/multi-companies-menu-dashboard.png deleted file mode 100644 index 40c663812b..0000000000 Binary files a/content/applications/general/companies/multi-companies-menu-dashboard.png and /dev/null differ diff --git a/content/applications/general/companies/multi_company.rst b/content/applications/general/companies/multi_company.rst new file mode 100644 index 0000000000..e7332d87dc --- /dev/null +++ b/content/applications/general/companies/multi_company.rst @@ -0,0 +1,233 @@ +============= +Multi-company +============= + +.. |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. + +There are several factors to consider before deciding to use the multi-company feature. + +.. important:: + Multi-company is **only** available in *One App Free* databases or with `Custom + `_ plans. + +A centralized management environment allows an administrator 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 `_ or + contact your account manager. + +Configuration +============= + +Companies +--------- + +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 ` or select a pre-existing +company to edit it. + +.. 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. + + To ensure all records related to the archived company are archived, contact Odoo's `Support Team + `_. Should a record not be archived, there is a risk of reactivating + the archived company and creating the upsell again. + +Data +---- + +When creating a record, the company associated with it is determined as follows: + +- either the currently selected company (highlighted in the company selector at the top-right of the + screen); +- or no company is set (for example, no company is set on :ref:`products + ` and :ref:`contacts `); +- or the company linked to the document (as is when editing an existing record). + +If multiple companies are activated on the database when editing a record, the edit is performed on +the company associated with that record. + +.. 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). + +.. _general/multi-company/multi-company-environment: + +Multi-company environment +========================= + +In multi-company environment, :ref:`user access +` must be carefully managed and :ref:`data +` should be created or edited based on how must be used in that +structure. + +.. _general/multi-company/accessing-multiple-companies: + +Access multiple companies +------------------------- + +Unlike standalone companies, a multi-company environment allows flexible control over :ref:`user +access ` and :doc:`access rights <../users/access_rights>` that can be +granted or restricted as needed. + +To check available access, use :ref:`the list of companies ` located +at the top-right of the main menu bar. + +.. _general/multi-company/switch: + +Switch between companies +------------------------ + +To switch between (or select) multiple companies, follow these steps + +#. Click the company name in the top-right corner of the header menu to reveal a list of all allowed + companies. +#. In the drop-down list, select the checkboxes next to the desired companies to activate them. +#. The highlighted company indicates the current active environment. +#. To switch to another company, click its name from the list of activated companies. + +.. example:: + In the example below, the user has access to six companies, two of which are activated, and the + current working environment 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/share-records: + +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 to: + +- 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. + +.. _general/multi-company/products: + +Products +~~~~~~~~ + +In a |mcd|, new products are created with the :ref:`Company field +` blank by default. If the field remains blank, the product is +shared across all companies. + +.. _general/multi-company/contacts: + +Contacts +~~~~~~~~ + +Similar to :ref:`products `, contact records are shared across +companies by default. To limit access to a single company, click the :ref:`Company field +` on a contact form and select a company to assign the +contact to. + +.. _general/multi-company/inter-company-transactions: + +Inter-company transactions +========================== + +The :ref:`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 ensure :ref:`inter-company transactions ` are handled + appropriately, specific configurations, such as :doc:`fiscal positions + <../../finance/accounting/taxes/fiscal_positions>` and :doc:`localizations + <../../finance/fiscal_localizations>`, must be accurately assigned. + +.. _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 currencies. + +Additionally, because both countries have different tax laws and regulations, it is in the +customer's best interest to utilize the multi-company feature. + +This allows for inter-company transactions, which is necessary to manage inventory moves across +international borders. It also makes it simple to sell to customers in both countries in their own +currency. + +.. _general/multi-company/use-cases-seperate-processes: + +Separate processes +------------------ + +A small furniture company is developing a new product line that requires a separate procurement, +inventory, and manufacturing process. The latest products are drastically different from the +existing catalog. The company is considering utilizing the multi-company feature to treat this new +line as a distinct entity. + +The furniture company does not need to add an entirely new company to keep its database from +becoming overly complex. Instead, it 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. + +.. _general/multi-company/limitations: + +Limitations +=========== + +In some instances, a |mcd| may *not* be the best option due to potential limitations. + +.. _general/multi-company/limitations-access-rights: + +Access rights +------------- + +A user's access rights are configured on a database level. If a user has access to multiple +companies in a |mcd|, their access rights are the same across every company. + +.. _general/multi-company/limitations-shared-records: + +Shared records +-------------- + +Individual records are :ref:`shared ` between all companies or +belong to a single company. + +.. _general/multi-company/limitations-pdf-reports: + +PDF Reports +----------- + +Some customizations, specifically for PDF reports, apply to all companies. It is not always possible +to separate reports for individual companies. diff --git a/content/applications/general/companies/multi_company/multi-companies-menu-dashboard.png b/content/applications/general/companies/multi_company/multi-companies-menu-dashboard.png new file mode 100644 index 0000000000..540e11e243 Binary files /dev/null and b/content/applications/general/companies/multi_company/multi-companies-menu-dashboard.png differ diff --git a/content/applications/general/companies/product-form-company.png b/content/applications/general/companies/product-form-company.png deleted file mode 100644 index 675cb49158..0000000000 Binary files a/content/applications/general/companies/product-form-company.png and /dev/null differ diff --git a/content/applications/general/multi_company.rst b/content/applications/general/multi_company.rst deleted file mode 100644 index 4c61dc0cb4..0000000000 --- a/content/applications/general/multi_company.rst +++ /dev/null @@ -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 - `_ plans. - -Accessing multiple companies -============================ - -The list of :ref:`companies an employee has access to ` 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 ` -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 ` on a contact form, and -select a company to assign the contact to. - -Inter-company transactions -========================== - -The :ref:`Inter-Company Transactions ` 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 ` 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 ` 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. diff --git a/content/applications/general/multi_company/company-access.png b/content/applications/general/multi_company/company-access.png deleted file mode 100644 index c7dc98361f..0000000000 Binary files a/content/applications/general/multi_company/company-access.png and /dev/null differ diff --git a/content/applications/sales/subscriptions.rst b/content/applications/sales/subscriptions.rst index 27e1534fdc..4cfb30b53a 100644 --- a/content/applications/sales/subscriptions.rst +++ b/content/applications/sales/subscriptions.rst @@ -92,8 +92,8 @@ configuration fields: that month if payment is not received. - :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 diff --git a/redirects/17.0.txt b/redirects/17.0.txt index 87d6108c13..0a3a926bd4 100644 --- a/redirects/17.0.txt +++ b/redirects/17.0.txt @@ -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