From 3575d6dc74dfe8d329fc45ffd607d1a3c8c8c6f9 Mon Sep 17 00:00:00 2001 From: xpl-odoo Date: Wed, 12 Feb 2025 13:30:37 +0100 Subject: [PATCH] [IMP] accounting: clarify invoice sequence format task-4564980 --- .../finance/accounting/customer_invoices.rst | 84 ++++++++---------- .../customer_invoices/reference-number.png | Bin 0 -> 6863 bytes .../customer_invoices/sequence-dialog.png | Bin 0 -> 9305 bytes 3 files changed, 38 insertions(+), 46 deletions(-) create mode 100644 content/applications/finance/accounting/customer_invoices/reference-number.png create mode 100644 content/applications/finance/accounting/customer_invoices/sequence-dialog.png diff --git a/content/applications/finance/accounting/customer_invoices.rst b/content/applications/finance/accounting/customer_invoices.rst index 5bbe76cad..d33dff427 100644 --- a/content/applications/finance/accounting/customer_invoices.rst +++ b/content/applications/finance/accounting/customer_invoices.rst @@ -7,8 +7,7 @@ Customer invoices A customer invoice is a document issued by a company for products and/or services sold to a customer. It records receivables as they are sent to customers. Customer invoices can include amounts due for the goods and/or services provided, applicable sales taxes, shipping and handling -fees, and other charges. -Odoo supports multiple invoicing and payment workflows. +fees, and other charges. Odoo supports multiple invoicing and payment workflows. .. seealso:: :doc:`/applications/finance/accounting/customer_invoices/overview` @@ -84,14 +83,14 @@ Invoice confirmation Click :guilabel:`Confirm` when the invoice is completed. The invoice's status changes to :guilabel:`Posted`, and a journal entry is generated based on the invoice configuration. On -confirmation, Odoo assigns each invoice a unique number from a defined -:ref:`sequence `. +confirmation, Odoo assigns each invoice a unique number from a defined :ref:`sequence +`. .. note:: - Once confirmed, an invoice can no longer be updated. Click :guilabel:`Reset to draft` if changes are needed. - - If required, invoices and other journal entries can be locked once posted - using the :ref:`Secure posted entries with hash ` feature. + - If required, invoices and other journal entries can be locked once posted using the + :ref:`Secure posted entries with hash ` feature. .. _accounting/invoice/sending: @@ -174,53 +173,45 @@ same customer, the actions are performed on the most overdue invoice. .. _accounting/invoice/sequence: -Sequence -======== +Invoice sequence +================ -Odoo assigns each document a unique sequence made up of a prefix and a number. The prefix combines -the journal code and the entry date and groups entries by period. The number is unique for each -period and is used to identify the entry. The default sequence on customer invoices is -INV/YYYY/number. In some specific cases, :ref:`resequencing ` -invoices might be necessary. +When confirming an invoice, Odoo generates a unique invoice reference number. By default, Odoo uses +the following sequence format `INV/year/incrementing-number` (e.g., `INV/2025/00001`), which +restarts from `00001` each year. + +However, it is possible to :ref:`change the sequence format ` and +its periodicity, and to :ref:`mass-resequence invoices `. + +.. note:: + Changes made to reference numbers are logged in the chatter. .. _accounting/invoice/resequencing: -Resequencing ------------- +Changing the default sequence +----------------------------- -Resequencing is not possible: +To customize the default sequence, open the last confirmed invoice, click :guilabel:`Reset to +Draft`, and edit the invoice's reference number. -- When entries are before a lock date. -- When the sequence leads to a duplicate. -- When the :guilabel:`Invoice Date` doesn't match the date contained in the new sequence number, - e.g., if the sequence is changed to INV/2023/XXXXX for a document with an :guilabel:`Invoice Date` - of 2024. +.. image:: customer_invoices/reference-number.png + :alt: Editing the reference number of an invoice. -To change the invoice sequence with the structure INV/YYYY/MM/number, add `/MM` with the number of -the month of the :guilabel:`Invoice date`. Odoo will recognize the "/" term as a month and update -the future invoice sequence appropriately with the month of the :guilabel:`Invoice date`. For -example, if the invoice date is January, change the sequence to `INV/2024/01/XXXXX`. +Odoo then explains how the detected format will be applied to all future invoices. For example, if +the current invoice's month is added, the sequence's periodicity will change to every month instead +of every year. -In this case, if the :guilabel:`Invoice date` isn't aligned with the sequence number, a -:guilabel:`Validation Error` message appears. +.. image:: customer_invoices/sequence-dialog.png + :alt: Editing the reference number of an invoice. -.. note:: - - - All sequence changes are logged in the chatter to keep the information. - - Sequence changes also affect the format of future invoices' sequences. - -.. _accounting/invoice/resequencing-one-invoice: - -Resequencing a single invoice -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -To resequence the last confirmed invoice, click :guilabel:`Reset to Draft`, then change the -sequence. The invoice now appears in red on the :guilabel:`Customer Invoices` list. +.. tip:: + The sequence format can be edited directly when creating the first invoice of a given sequence + period. .. _accounting/invoice/mass-resequencing: Mass-resequencing invoices -~~~~~~~~~~~~~~~~~~~~~~~~~~ +-------------------------- It can be helpful to resequence multiple invoice numbers. For example, when importing invoices from another invoicing or accounting system and the reference originates from the previous software, @@ -239,6 +230,7 @@ Follow these steps to resequence invoice numbers: - :guilabel:`Keep current order`: The order of the numbers remains the same. - :guilabel:`Reorder by accounting date`: The number is reordered by accounting date. + #. Set the :guilabel:`First New Sequence`. #. :guilabel:`Preview Modifications` and click :guilabel:`Confirm`. @@ -270,18 +262,18 @@ go to :menuselection:`Accounting --> Reporting --> Partner Ledger`. Aged Receivable ~~~~~~~~~~~~~~~ -To review outstanding customer invoices and their related due dates, use the -:ref:`Aged Receivable ` report. To access it, go to -:menuselection:`Accounting --> Reporting --> Aged Receivable`. +To review outstanding customer invoices and their related due dates, use the :ref:`Aged Receivable +` report. To access it, go to :menuselection:`Accounting --> +Reporting --> Aged Receivable`. .. _accounting/invoices/aged-payable: Aged Payable ~~~~~~~~~~~~ -To review outstanding vendor bills and their related due dates, use the -:ref:`Aged Payable ` report. To access it, go to -:menuselection:`Accounting --> Reporting --> Aged Payable`. +To review outstanding vendor bills and their related due dates, use the :ref:`Aged Payable +` report. To access it, go to :menuselection:`Accounting --> +Reporting --> Aged Payable`. .. _accounting/invoices/profit-and-loss: diff --git a/content/applications/finance/accounting/customer_invoices/reference-number.png b/content/applications/finance/accounting/customer_invoices/reference-number.png new file mode 100644 index 0000000000000000000000000000000000000000..e5ab954a3b83c4858dc757988bd68674262d2f1c GIT binary patch literal 6863 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 TXD#CKg$kgepdsHNYZdW7Y@3xW literal 0 HcmV?d00001 diff --git a/content/applications/finance/accounting/customer_invoices/sequence-dialog.png b/content/applications/finance/accounting/customer_invoices/sequence-dialog.png new file mode 100644 index 0000000000000000000000000000000000000000..085eacf63870816fabe9916a89c78b8f54c9400f GIT binary patch literal 9305 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 literal 0 HcmV?d00001