Skip to content

Commit 8f0141f

Browse files
committed
[IMP] accounting: (multi) companies, branches & accountant access info
task-3645172 task-4256345 closes #13474 Signed-off-by: Anne-Françoise Marcq (afma) <[email protected]>
1 parent 1f21f9d commit 8f0141f

21 files changed

+490
-401
lines changed

content/applications/finance/accounting.rst

Lines changed: 128 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,10 @@
44
Accounting and Invoicing
55
========================
66

7-
**Odoo Invoicing** is a standalone invoicing app to create invoices, send them to your customers,
8-
and manage payments.
9-
10-
**Odoo Accounting** is a full featured accounting app. Accountant productivity is at the core of its
11-
development with features such as AI-powered invoice recognition, synchronization with your bank
12-
accounts, smart matching suggestions, etc.
7+
Odoo Invoicing is a standalone app designed to create invoices, send them to customers, and manage
8+
payments. It also handles flows involving vendor bills. On the other hand, the Accounting app is a
9+
comprehensive accounting solution that allows the same actions and includes additional features such
10+
as standard financial reports, bank reconciliation, budgets, asset management, and more.
1311

1412
.. seealso::
1513
`Odoo Tutorials: Accounting <https://www.odoo.com/slides/accounting-19>`_
@@ -52,6 +50,8 @@ accounts, smart matching suggestions, etc.
5250

5351
Reporting, declarations, and analytic accounting
5452

53+
.. _accounting/double-entry-booking:
54+
5555
Double-entry bookkeeping
5656
========================
5757

@@ -66,6 +66,8 @@ always balance.
6666
.. seealso::
6767
:doc:`Accounting Cheat Sheet <accounting/get_started/cheat_sheet>`
6868

69+
.. _accounting/accrual-cash:
70+
6971
Accrual and cash basis
7072
======================
7173

@@ -81,10 +83,17 @@ expense either when the transaction occurs (accrual basis) or when the payment i
8183
Multi-company
8284
=============
8385

84-
Several companies can be managed within the same database. Each company has its :doc:`chart of
85-
accounts <accounting/get_started/chart_of_accounts>`, which is also useful to generate consolidation
86-
reports. Users can access several companies but can only work on a single company's accounting at a
87-
time.
86+
:doc:`Multiple companies <../general/companies/multi_company>` can be managed within the same
87+
database. Each company has its own :doc:`chart of accounts
88+
<accounting/get_started/chart_of_accounts>`, but accounts can be shared, which is useful when
89+
viewing consolidation reports. Users can view records and reports from multiple companies
90+
simultaneously but can only work on a single company's accounting at a time.
91+
92+
.. seealso::
93+
- :doc:`Multi-company </applications/general/companies/multi_company>`
94+
- :ref:`Inter-company transactions <general/multi-company/inter-company-transactions>`
95+
96+
.. _accounting/multi-currency:
8897

8998
Multi-currency environment
9099
==========================
@@ -98,32 +107,79 @@ gains and losses after reconciling the journal items.
98107
.. seealso::
99108
:doc:`Manage a bank in a foreign currency <accounting/bank/foreign_currency>`
100109

101-
Branch management
102-
=================
110+
.. _accounting/branches:
111+
112+
Branches
113+
========
114+
115+
Parent :doc:`companies </applications/general/companies>` and their :ref:`branches
116+
<general/companies/branches>` can be managed within a single database, operating under shared
117+
accounting and reporting rules, including the following:
118+
119+
- The parent company’s :doc:`chart of accounts <accounting/get_started/chart_of_accounts>`,
120+
:doc:`main currency <accounting/get_started/multi_currency>`, and :doc:`taxes <accounting/taxes>`
121+
apply to all branches.
122+
- Branches can manage their own dedicated journals and related records.
123+
- The parent company manages a common :ref:`fiscal period <year-end/fiscal-years>`, so its lock and
124+
closing dates apply across all branches. However, branches may set earlier lock dates if needed.
125+
- The parent company can access all :doc:`reports <accounting/reporting>`, :doc:`invoices
126+
<accounting/customer_invoices>`, :doc:`bills <accounting/vendor_bills>`, etc., from its branches,
127+
while each branch can only view its own data.
128+
129+
.. note::
130+
The :doc:`Fiscal localization <fiscal_localizations>` package is set on the parent company.
131+
132+
.. warning::
133+
Adding a branch to a company enables :doc:`multi-company functions
134+
<../general/companies/multi_company>`.
135+
136+
For more information, refer to `Odoo's pricing page <https://www.odoo.com/pricing-plan>`_ or
137+
contact your Odoo account manager.
138+
139+
.. _accounting/branch/reporting:
140+
141+
Reporting
142+
---------
143+
144+
The parent company consolidates accounting operations from all branches, providing a centralized
145+
view of :doc:`financial reports <accounting/reporting>`, such as profit and loss or balance sheets.
146+
147+
.. _accounting/branch/vat:
148+
149+
VAT
150+
---
151+
152+
Each company and branch must be configured with its own legal information, including a VAT number
153+
when applicable. Depending on the structure, branches may share the parent company's VAT number or
154+
have their own, resulting in a common or separate :doc:`VAT return
155+
<accounting/reporting/tax_returns>`.
103156

104-
Multiple branches can be managed thanks to multi-company hierarchies. This allows to post journal
105-
entries on each branch as well as setting up a common lock date managed by the main company.
157+
This flexible setup allows users to generate individual reports and tax returns for each entity if
158+
needed.
159+
160+
.. _accounting/international-standards:
106161

107162
International standards
108163
=======================
109164

110-
Odoo Accounting supports more than 70 countries. It provides the central standards and mechanisms
111-
common to all nations, and thanks to country-specific modules, local requirements are fulfilled.
112-
Fiscal positions exist to address regional specificities like the chart of accounts, taxes, or any
113-
other requirements.
165+
Odoo Accounting supports over 100 countries and provides standardized features and mechanisms
166+
applicable across all regions. Country-specific modules are included to comply with local accounting
167+
regulations. :doc:`Fiscal localizations <fiscal_localizations>` handle regional requirements, such
168+
as charts of accounts, taxes, or any other legal obligations.
114169

115-
.. seealso::
116-
:doc:`Fiscal localization packages <fiscal_localizations>`
170+
.. _accounting/accounts-receivable-payable:
117171

118172
Accounts receivable and payable
119173
===============================
120174

121-
By default, there is a single account for the account receivable entries and one for the account
122-
payable entries. As transactions are linked to your **contacts**, you can run a report per customer,
123-
vendor, or supplier.
175+
By default, one account is designated for accounts receivable entries and another for accounts
176+
payable entries. As transactions are linked to **contacts**, it is possible to run a report per
177+
customer, vendor, or supplier.
178+
179+
The **Partner Ledger** report displays the balance of customers and suppliers. To access it, go to
180+
:menuselection:`Accounting --> Reporting --> Partner Ledger`.
124181

125-
The **Partner Ledger** report displays the balance of your customers and suppliers. It is available
126-
by going to :menuselection:`Accounting --> Reporting --> Partner Ledger`.
182+
.. _accounting/reporting:
127183

128184
Reporting
129185
=========
@@ -140,6 +196,8 @@ real-time:
140196
| +----------------------------------+
141197
| | Cash flow statement |
142198
| +----------------------------------+
199+
| | Executive summary |
200+
| +----------------------------------+
143201
| | Tax report |
144202
| +----------------------------------+
145203
| | EC sales list |
@@ -162,8 +220,16 @@ real-time:
162220
+------------+----------------------------------+
163221
| Management | Invoice analysis |
164222
| +----------------------------------+
223+
| | Analytic reporting |
224+
| +----------------------------------+
225+
| | Audit trail |
226+
| +----------------------------------+
165227
| | Unrealized currency gains/losses |
166228
| +----------------------------------+
229+
| | Deferred revenue |
230+
| +----------------------------------+
231+
| | Deferred expense |
232+
| +----------------------------------+
167233
| | Depreciation schedule |
168234
| +----------------------------------+
169235
| | Disallowed expenses |
@@ -178,31 +244,32 @@ real-time:
178244
.. tip::
179245
:doc:`Create and customize reports <accounting/reporting/customize>` with Odoo's report engine.
180246

247+
.. _accounting/tax-report:
248+
181249
Tax report
182250
----------
183251

184-
Odoo computes all accounting transactions for the specific tax period and uses these totals to
185-
calculate the tax obligation.
186-
187-
.. important::
188-
Once the tax report has been generated for a period, Odoo locks it and prevents the creation of
189-
new journal entries involving VAT. Any correction to customer invoices or vendor bills has to
190-
be recorded in the next period.
252+
In the :ref:`Tax report <tax-returns/report>`, Odoo computes all accounting transactions for the
253+
specific tax period and uses these totals to calculate the tax obligation.
191254

192255
.. note::
193256
Depending on the country's localization, an XML version of the tax report can be generated to be
194257
uploaded to the VAT platform of the relevant taxation authority.
195258

259+
.. _accounting/bank-synchronization:
260+
196261
Bank synchronization
197262
====================
198263

199-
The bank synchronization system directly connects with your bank institution to automatically
200-
import all transactions into your database. It gives an overview of your cash flow without logging
264+
The bank synchronization system directly connects with banking institutions to automatically
265+
import all transactions into the database. It gives an overview of the cash flow without logging
201266
into an online banking system or waiting for paper bank statements.
202267

203268
.. seealso::
204269
:doc:`Bank synchronization <accounting/bank/bank_synchronization>`
205270

271+
.. _accounting/inventory-valuation:
272+
206273
Inventory valuation
207274
===================
208275

@@ -213,6 +280,8 @@ available methods are standard price, average price, :abbr:`LIFO (Last-In, First
213280
.. seealso::
214281
:doc:`../inventory_and_mrp/inventory/product_management/inventory_valuation/inventory_valuation_config`
215282

283+
.. _accounting/retained-earnings:
284+
216285
Retained earnings
217286
=================
218287

@@ -223,20 +292,43 @@ and loss balance is automatically reported on the balance sheet report.
223292
.. seealso::
224293
:doc:`Accounting Cheat Sheet <accounting/get_started/cheat_sheet>`
225294

226-
.. _fiduciaries:
295+
.. _accounting/fiduciaries:
227296

228297
Fiduciaries
229298
===========
230299

231300
The :guilabel:`Accounting Firms` mode can be activated by going to :menuselection:`Accounting -->
232-
Configuration --> Settings --> Accounting Firms mode`. When enabled:
301+
Configuration --> Settings`. When enabled:
233302

234303
- The document's sequence becomes editable on all documents;
235304
- The :guilabel:`Total (tax incl.)` field appears to speed up and control the encoding by automating
236305
line creation with the right account and tax;
237306
- :guilabel:`Invoice Date` and :guilabel:`Bill Date` are pre-filled when encoding a transaction.
238307
- A :guilabel:`Quick encoding` option is available for customer invoices and vendor bills.
239308

309+
.. _accounting/accountant-access-rights:
310+
311+
Accountant access rights
312+
========================
313+
314+
To grant access to the company's accountant, :ref:`add the accountant as a new user
315+
<users/add-individual>` and configure the appropriate :doc:`access rights
316+
<../general/users/access_rights>` in the :guilabel:`Accounting` section to enable access to the
317+
company's financial data:
318+
319+
- :guilabel:`Accounting`: Select :guilabel:`Accountant`.
320+
- :guilabel:`Bank`: Allow bank account validation.
321+
322+
.. Note::
323+
Adding an accountant as a new user in :doc:`Odoo Online <../../administration/odoo_online>` is
324+
free if the accountant has an Odoo account registered with the same email address as the one
325+
listed for the company user. However, :doc:`Odoo.sh <../../administration/odoo_sh>` and
326+
:doc:`Odoo On-premise <../../administration/on_premise>` may involve extra charges for each
327+
additional user. For more pricing information, see
328+
`Odoo's pricing <https://www.odoo.com/pricing-plan>`_.
329+
330+
For a multi-company environment, set the appropriate :ref:`access <users/multi-companies>`.
331+
240332
.. toctree::
241333
:titlesonly:
242334

content/applications/finance/accounting/reporting/analytic_accounting.rst

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,9 @@ information:
2828
- :guilabel:`Reference`: Include a reference to make the account easier to find if needed.
2929
- :guilabel:`Plan`: Link the :guilabel:`Analytic Account` to an :ref:`analytic plan
3030
<accounting/analytic_accounting/analytic_plans>`.
31-
- :guilabel:`Company`: In a :doc:`multi-company </applications/general/multi_company>` environment,
32-
select the company using the analytic account. To make the analytic account accessible to all
33-
companies, leave the field empty.
31+
- :guilabel:`Company`: In a :doc:`multi-company </applications/general/companies/multi_company>`
32+
environment, select the company using the analytic account. To make the analytic account
33+
accessible to all companies, leave the field empty.
3434
- :guilabel:`Currency`: Update the currency of the analytic account if needed.
3535

3636
Then, the :doc:`budget <budget>` information can be filled in.
@@ -67,9 +67,9 @@ the following fields:
6767
- :guilabel:`Product Category`: Choose the product category to which the plan applies.
6868
- :guilabel:`Applicability`: Define how the plan is applied when creating a new journal entry. The
6969
applicability set here always overrides the default applicability.
70-
- :guilabel:`Company`: In a :doc:`multi-company </applications/general/multi_company>` environment,
71-
select the company using the plan. To make the analytic plan accessible to all companies, leave
72-
the field empty.
70+
- :guilabel:`Company`: In a :doc:`multi-company </applications/general/companies/multi_company>`
71+
environment, select the company using the plan. To make the analytic plan accessible to all
72+
companies, leave the field empty.
7373

7474
Two smart buttons are available:
7575

@@ -150,9 +150,9 @@ to apply automatically:
150150
partner.
151151
- :guilabel:`Product`: Apply the distribution model only to journal items involving a specific
152152
product.
153-
- :guilabel:`Company`: In a :doc:`multi-company </applications/general/multi_company>` environment,
154-
apply the distribution model only to journal items involving a specific company. To apply it
155-
across all companies, leave the field empty.
153+
- :guilabel:`Company`: In a :doc:`multi-company </applications/general/companies/multi_company>`
154+
environment, apply the distribution model only to journal items involving a specific company. To
155+
apply it across all companies, leave the field empty.
156156
- :guilabel:`Analytic Distribution`: :ref:`Analytic distribution
157157
<accounting/analytic_accounting/analytic-distribution>` that will be applied when the above
158158
conditions are met.

content/applications/finance/accounting/reporting/tax_returns.rst

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,15 @@ paid or refunded.
120120
entry. This safety mechanism can prevent some fiscal errors, but it is advised to lock your tax
121121
date manually before, as described above.
122122

123+
.. important::
124+
- Once the tax report for a period has been generated but not yet posted, additional invoices or
125+
bills from that same period can still be posted and included in the closing entry. To do so,
126+
click :icon:`oi-arrow-right` :guilabel:`Refresh` in the :guilabel:`Proposition of tax closing
127+
journal entry`, or click :guilabel:`Closing Entry` again from the tax report.
128+
- After the tax report has been posted for a period, Odoo locks the period and prevents the
129+
creation of new journal entries involving VAT. Any corrections to customer invoices or vendor
130+
bills must then be recorded in the following period.
131+
123132
.. seealso::
124133
* :doc:`../taxes`
125134
* :doc:`../get_started`

content/applications/finance/accounting/taxes.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ Default taxes
1515

1616
**Default taxes** define which taxes are automatically selected when creating a new product. They
1717
are also used to prefill the :guilabel:`Taxes` field when adding a new line on an invoice in
18-
:ref:`Accounting Firms <fiduciaries>` mode.
18+
:ref:`Accounting Firms <accounting/fiduciaries>` mode.
1919

2020
.. image:: taxes/default-configuration.png
2121
:alt: Odoo fills out the Tax field automatically according to the Default Taxes

content/applications/finance/fiscal_localizations/france.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -582,7 +582,7 @@ information to complete the synchronization:
582582
In a multi-company setup, the following configurations are required in Odoo:
583583

584584
- The user linked to the generated :ref:`API key <api/external_api/keys>` must have
585-
:ref:`access <general/employee-access>` to the company intended for synchronization.
585+
:ref:`access <general/companies/users>` to the company intended for synchronization.
586586
- This company must also be set as the user's :guilabel:`Default Company`, as Teledec always
587587
synchronizes with the user's default company.
588588

0 commit comments

Comments
 (0)