From 23b5236264ccecabfe99c98c269d0d1fe52b96ff Mon Sep 17 00:00:00 2001 From: afma-odoo Date: Fri, 9 May 2025 12:22:25 +0200 Subject: [PATCH] [IMP] accounting: update page with 18.0 updates on lock dates MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit task-4276637 closes odoo/documentation#13320 Signed-off-by: Anne-Françoise Marcq (afma) --- .../finance/accounting/reporting/year_end.rst | 115 ++++++++++++------ 1 file changed, 75 insertions(+), 40 deletions(-) diff --git a/content/applications/finance/accounting/reporting/year_end.rst b/content/applications/finance/accounting/reporting/year_end.rst index c449bdf50..8f265df59 100644 --- a/content/applications/finance/accounting/reporting/year_end.rst +++ b/content/applications/finance/accounting/reporting/year_end.rst @@ -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 ` + .. _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 `. - 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 ` and :ref:`aged payables ` 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 ` 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 ` 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 ` 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 + `. + +.. 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.