[IMP] accounting: update page with 18.0 updates on lock dates

task-4276637

closes odoo/documentation#13320

Signed-off-by: Anne-Françoise Marcq (afma) <afma@odoo.com>
This commit is contained in:
afma-odoo
2025-05-09 12:22:25 +02:00
parent 8cbfdfd29e
commit 23b5236264

View File

@@ -5,48 +5,54 @@ Year-end closing
Year-end closing is vital for maintaining financial accuracy, complying with regulations, making
informed decisions, and ensuring transparency in reporting.
.. seealso::
:doc:`Tax return <tax_returns>`
.. _year-end/fiscal-years:
Fiscal years
============
By default, the fiscal year is set to last 12 months and end on December 31st. However, its duration
and end date can vary due to cultural, administrative, and economic considerations.
By default, the fiscal year is set to last 12 months and ends on December 31st. However, its
duration and end date can vary due to cultural, administrative, and economic considerations.
To modify these values, go to :menuselection:`Accounting --> Configuration --> Settings`. Under the
:guilabel:`Fiscal Periods` section, change the :guilabel:`Last Day` field if necessary.
If the period lasts *more* than or *less* than 12 months, enable :guilabel:`Fiscal Years` and
:guilabel:`Save`. Go back to the :guilabel:`Fiscal Periods` section and click :guilabel:`➜ Fiscal
Years`. From there, click :guilabel:`Create`, give it a :guilabel:`Name`, and both a
:guilabel:`Save`. Go back to the :guilabel:`Fiscal Periods` section and click :icon:`oi-arrow-right`
:guilabel:`Fiscal Years`. Then, click :guilabel:`New`, give it a :guilabel:`Name` and both a
:guilabel:`Start Date` and :guilabel:`End Date`.
.. note::
Once the set fiscal period is over, Odoo automatically reverts to the default periodicity, taking
into account the value specified in the :guilabel:`Last Day` field.
Once the set fiscal period is over, Odoo automatically reverts to the default periodicity,
considering the value specified in the :guilabel:`Last Day` field.
.. _year-end/checklist:
Year-end checklist
==================
.. _year-end/before-closure:
Before closure
--------------
Before closing a fiscal year, ensure first everything is accurate and up-to-date:
Before closing a fiscal year, ensure that everything is accurate and up-to-date:
- Make sure all bank accounts are fully :doc:`reconciled <../bank/reconciliation>` up to year-end,
and confirm that the ending book balances match the bank statement balances.
- Verify that all :doc:`customer invoices <../customer_invoices>` have been entered and
approved and that there are no draft invoices.
- Confirm that all :doc:`vendor bills <../vendor_bills>` have been entered and agreed upon.
- Validate all :doc:`expenses <../../expenses>`, ensuring their accuracy.
- Corroborate that all :doc:`received payments <../payments>` have been encoded and recorded
accurately.
- Verify that all :doc:`customer invoices <../customer_invoices>` have been created and
confirmed and that there are no draft invoices.
- Confirm that all :doc:`vendor bills <../vendor_bills>` have been created and confirmed.
- Ensure the accuracy of all :doc:`expenses <../../expenses>` and validate them.
- Check that all :doc:`received payments <../payments>` have been encoded and confirmed.
- Close all :ref:`suspense accounts <accounting/bank/suspense>`.
- Book all :doc:`depreciation <../vendor_bills/assets>` and :doc:`deferred revenue
<../customer_invoices/deferred_revenues>` entries.
.. _year-end/closing-a-fiscal-year:
Closing a fiscal year
---------------------
@@ -60,9 +66,9 @@ Then, to close the fiscal year:
- Reconcile all transactions in the cash and bank accounts by running the :ref:`aged receivables
<accounting/reporting/aged-receivable>` and :ref:`aged payables
<accounting/reporting/aged-payable>` reports.
- Audit all accounts, being sure to fully understand all transactions and their nature, making
sure to include loans and fixed assets.
- Optionally, :ref:`match payments <accounting/payments/auto-reconcile-tool>` to validate any open
- Audit all accounts, fully understanding all transactions and their nature, including :doc:`loans
<../bank/loans>` and :doc:`fixed assets <../vendor_bills/assets>`.
- Optionally, :ref:`match payments <accounting/payments/payments-matching>` to validate any open
vendor bills and customer invoices with their payments. While this step is optional, it could
assist the year-end closing process if all outstanding payments and invoices are reconciled,
potentially finding errors or mistakes in the system.
@@ -76,40 +82,69 @@ Next, the accountant likely verifies balance sheet items and book entries for:
- tax adjustments,
- etc.
If the accountant is going through the year-end audit, they may want to have paper copies of all
balance sheet items (such as loans, bank accounts, prepayments, sales tax statements, etc.) to
compare these with the balances in Odoo.
During the year-end audit, the accountant may print paper copies of all balance sheet items (e.g.,
loans, bank accounts, prepayments, sales tax statements) to compare them against the balances
recorded in Odoo.
.. tip::
During this process, it is good practice to set a :guilabel:`Journal Entries Lock Date` to the
last day (inclusive) of the preceding fiscal year by going to :menuselection:`Accounting -->
Accounting --> Lock Dates`. This way, the accountant can be confident that nobody changes the
transactions while auditing the books. Users from the *accountant* access group can still create
and modify entries.
As part of this process, setting a :ref:`Lock Everything <year-end/lock-everything-date>` date to
the last day (inclusive) of the preceding fiscal year is good practice. This ensures that journal
entries with an accounting date on or before the lock date cannot be created or modified during
the audit. Users with *administrator* access rights can still create and edit entries if an
exception is configured.
.. _year-end/lock-everything-date:
Lock everything date
~~~~~~~~~~~~~~~~~~~~
Setting a lock date prevents modifications to any posted journal entries with an accounting date on
or before the lock date. It also prevents posting new entries with an accounting date on or before
the lock date. In such cases, the system automatically sets the accounting date to the day after the
lock date.
To set a :guilabel:`Lock Everything` date, go to :menuselection:`Accounting --> Accounting --> Lock
Dates`. In the :guilabel:`Lock Journal Entries` window, set the :guilabel:`Lock Everything` date and
:guilabel:`Save`.
.. note::
Users with :guilabel:`Administrator` access rights to the Accounting app can create exceptions.
To do so:
#. After setting the :guilabel:`Lock Everything` date, reopen the :guilabel:`Lock Journal
Entries` window and remove the :guilabel:`Lock Everything` date.
#. In the :guilabel:`Exception` banner, choose if this exception should be set :guilabel:`for me`
(the current user) or :guilabel:`for everyone` and how long it should last.
#. A :guilabel:`Reason` for this exception can be added.
#. All of this information is logged in the chatter of the :doc:`company record
</applications/general/companies>`.
.. tip::
To remove the :guilabel:`Lock Everything` date after it has been saved, configure the exception
to apply :guilabel:`for everyone` and set the duration to :guilabel:`forever`.
.. _year-end/current-year-earnings:
Current year's earnings
~~~~~~~~~~~~~~~~~~~~~~~
Odoo uses a unique account type called **current year's earnings** to display the amount difference
between the **income** and **expenses** accounts.
Odoo uses a unique account type called **current year's earnings** to display the difference
between the **income** and **expense** accounts.
.. note::
The chart of accounts can only contain one account of this type. By default, it is a 999999
account named :guilabel:`Undistributed Profits/Losses`.
To allocate the current year's earnings, create a miscellaneous entry to book them to any equity
account. Once done, confirm whether or not the current year's earnings in the **balance sheet** is
correctly reporting a balance of zero. If that is the case, set an :guilabel:`All Users Lock Date`
to the last day of the fiscal year by going to :menuselection:`Accounting --> Accounting --> Lock
Dates`.
To allocate the current year's earnings, create a new miscellaneous entry with a date set to the end
of the fiscal year to book them to any equity account.
Then, verify whether the current year's earnings on the **balance sheet** correctly show a zero
balance. If so, a :guilabel:`Hard Lock date` can be set to the last day of the fiscal year in
:menuselection:`Accounting --> Accounting --> Lock Dates`.
.. tip::
Install the :guilabel:`Irreversible Lock Date` (`account_lock`) module to make the :guilabel:`All
Users Lock Date` *irreversible* once set.
.. note::
A specific year-end closing entry is **optional** in order to close out the **profit and loss
statement**. The reports are created in real-time, meaning that the profit and loss statement
corresponds directly with the year-end date specified in Odoo. Therefore, any time the **income
statement** is generated, the beginning date corresponds with the beginning of the **fiscal
year** and all account balances should equal zero.
The :guilabel:`Hard Lock date` field is irreversible and is intended to ensure data
inalterability required to comply with accounting regulations in certain countries. If such
compliance is not applicable, setting this field may not be necessary. However, if required, the
date should only be set once it is confirmed to be correct, as it **cannot be changed or
overridden**, regardless of access rights.