[IMP] accounting: move cash discount tax reduction to payment term
task-3211595
closes odoo/documentation#5260
X-original-commit: ceda988a29
Signed-off-by: Xavier Platteau (xpl) <xpl@odoo.com>
Signed-off-by: Dallas Dean (dade) <dade@odoo.com>
This commit is contained in:
parent
775e80ed92
commit
18db702655
@ -5,7 +5,7 @@ Cash discounts and tax reduction
|
||||
**Cash discounts** are reductions in the amount a customer must pay for goods or services offered as
|
||||
an incentive for paying their invoice promptly. These discounts are typically a percentage of the
|
||||
total invoice amount and are applied if the customer pays within a specified time. Cash discounts
|
||||
can help the company maintain a steady cash flow.
|
||||
can help a company maintain a steady cash flow.
|
||||
|
||||
.. example::
|
||||
You issue a €100 invoice on the 1st of January. The full payment is due within 30 days, and you
|
||||
@ -17,15 +17,46 @@ can help the company maintain a steady cash flow.
|
||||
A :ref:`tax reduction <cash-discounts/tax-reductions>` can also be applied depending on the country
|
||||
or region.
|
||||
|
||||
.. seealso::
|
||||
- :doc:`payment_terms`
|
||||
- :doc:`../payments`
|
||||
|
||||
.. _cash-discounts/configuration:
|
||||
|
||||
Configuration
|
||||
=============
|
||||
|
||||
To grant cash discounts to customers, you must first set up the :ref:`type of tax reduction
|
||||
<cash-discounts/tax-reductions>`, verify the :ref:`gain and loss accounts
|
||||
<cash-discounts/gain-loss-accounts>`, and configure new :ref:`payment terms
|
||||
<cash-discounts/payment-terms>`.
|
||||
To grant cash discounts to customers, you must first verify the :ref:`gain and loss accounts
|
||||
<cash-discounts/gain-loss-accounts>`. Then, configure :ref:`payment terms
|
||||
<cash-discounts/payment-terms>` and add a cash discount by checking the :guilabel:`Early Discount`
|
||||
checkbox and filling in the discount percentage, discount days, and :ref:`tax
|
||||
reduction <cash-discounts/tax-reductions>` fields.
|
||||
|
||||
.. _cash-discounts/gain-loss-accounts:
|
||||
|
||||
Cash discount gain/loss accounts
|
||||
--------------------------------
|
||||
|
||||
With a cash discount, the amount you earn depends on whether the customer benefits from the cash
|
||||
discount or not. This inevitably leads to gains and losses, which are recorded on default accounts.
|
||||
|
||||
To modify these accounts, go to :menuselection:`Accounting --> Configuration --> Settings`, and, in
|
||||
the :guilabel:`Default Accounts` section, select the accounts you want to use for the
|
||||
:guilabel:`Cash Discount Gain account` and :guilabel:`Cash Discount Loss account`.
|
||||
|
||||
.. _cash-discounts/payment-terms:
|
||||
|
||||
Payment terms
|
||||
-------------
|
||||
|
||||
Cash discounts are defined on :doc:`payment terms <payment_terms>`. Configure them to your liking by
|
||||
going to :menuselection:`Accounting --> Configuration --> Payment Terms`, and make sure to fill out
|
||||
the discount percentage, discount days, and :ref:`tax reduction <cash-discounts/tax-reductions>`
|
||||
fields.
|
||||
|
||||
.. image:: cash_discounts/payment-terms.png
|
||||
:alt: Configuration of payment terms named "2/7 Net 30". The field "Description on Invoices"
|
||||
reads: "Payment terms: 30 Days, 2% Early Payment Discount under 7 days".
|
||||
|
||||
.. _cash-discounts/tax-reductions:
|
||||
|
||||
@ -33,24 +64,24 @@ Tax reductions
|
||||
--------------
|
||||
|
||||
Depending on the country or region, the base amount used to compute the tax can vary, which can lead
|
||||
to a **tax reduction**.
|
||||
to a **tax reduction**. Since tax reductions are set on individual payment terms, each term can use
|
||||
a specific tax reduction.
|
||||
|
||||
To configure how the tax reduction is applied, go to :menuselection:`Accounting --> Configuration
|
||||
--> Settings`, and in the :guilabel:`Taxes` section, in the :guilabel:`Cash Discount Tax Reduction`
|
||||
feature, select one of the three following options:
|
||||
To configure how the tax reduction is applied, go to a payment term with the :guilabel:`Early
|
||||
Discount` checkbox enabled, and select one of the three following options:
|
||||
|
||||
Always (upon invoice)
|
||||
The tax is always reduced. The base amount used to compute the tax is the discounted amount,
|
||||
whether the customer benefits from the discount or not.
|
||||
- Always (upon invoice)
|
||||
The tax is always reduced. The base amount used to compute the tax is the discounted amount,
|
||||
whether the customer benefits from the discount or not.
|
||||
|
||||
On early payment
|
||||
The tax is reduced only if the customer pays early. The base amount used to compute the tax is the
|
||||
same as the sale: if the customer benefits from the reduction, then the tax is reduced. This means
|
||||
that, depending on the customer, the tax amount can vary after the invoice is issued.
|
||||
- On early payment
|
||||
The tax is reduced only if the customer pays early. The base amount used to compute the tax is the
|
||||
same as the sale: if the customer benefits from the reduction, then the tax is reduced. This means
|
||||
that, depending on the customer, the tax amount can vary after the invoice is issued.
|
||||
|
||||
Never
|
||||
The tax is never reduced. The base amount used to compute the tax is the full amount, whether the
|
||||
customer benefits from the discount or not.
|
||||
- Never
|
||||
The tax is never reduced. The base amount used to compute the tax is the full amount, whether the
|
||||
customer benefits from the discount or not.
|
||||
|
||||
.. example::
|
||||
|
||||
@ -70,10 +101,10 @@ Never
|
||||
- Computation
|
||||
* - 8th of January
|
||||
- €118.58
|
||||
- (€98 + (21% of €98))
|
||||
- €98 + (21% of €98)
|
||||
* - 31st of January
|
||||
- €120.58
|
||||
- (€100 + (21% of €98))
|
||||
- €100 + (21% of €98)
|
||||
|
||||
.. tab:: On early payment
|
||||
|
||||
@ -85,10 +116,10 @@ Never
|
||||
- Computation
|
||||
* - 8th of January
|
||||
- €118.58
|
||||
- (€98 + (21% of €98))
|
||||
- €98 + (21% of €98)
|
||||
* - 31st of January
|
||||
- €121.00
|
||||
- (€100 + (21% of €100))
|
||||
- €100 + (21% of €100)
|
||||
|
||||
.. tab:: Never
|
||||
|
||||
@ -100,10 +131,10 @@ Never
|
||||
- Computation
|
||||
* - 8th of January
|
||||
- €119.00
|
||||
- (€98 + (21% of €100))
|
||||
- €98 + (21% of €100)
|
||||
* - 31st of January
|
||||
- €121.00
|
||||
- (€100 + (21% of €100))
|
||||
- €100 + (21% of €100)
|
||||
|
||||
.. note::
|
||||
- :ref:`Tax grids <tax-returns/tax-grids>`, which are used for the tax report, are correctly
|
||||
@ -112,41 +143,12 @@ Never
|
||||
- The **type of cash discount tax reduction** may be correctly pre-configured, depending on your
|
||||
:ref:`fiscal localization package <fiscal_localizations/packages>`.
|
||||
|
||||
.. _cash-discounts/gain-loss-accounts:
|
||||
|
||||
Cash discount gain/loss accounts
|
||||
--------------------------------
|
||||
|
||||
With a cash discount, the amount you earn depends on whether the customer benefits from the cash
|
||||
discount or not. This inevitably leads to gains and losses, which are recorded on default accounts.
|
||||
|
||||
To modify these accounts, go to :menuselection:`Accounting --> Configuration --> Settings`, and in
|
||||
the :guilabel:`Default Accounts` section, select the accounts you want to use for the
|
||||
:guilabel:`Cash Discount Gain account` and :guilabel:`Cash Discount Loss account`.
|
||||
|
||||
.. _cash-discounts/payment-terms:
|
||||
|
||||
Payment terms
|
||||
-------------
|
||||
|
||||
Cash discounts are defined on :doc:`payment terms <payment_terms>`. Configure them to your liking by
|
||||
going to :menuselection:`Accounting --> Configuration --> Payment Terms`, and make sure to fill out
|
||||
the fields :guilabel:`Discount %` and :guilabel:`Discount Days`.
|
||||
|
||||
.. image:: cash_discounts/payment-terms.png
|
||||
:align: center
|
||||
:alt: Configuration of payment terms named "2/7 Net 30". The field "Description on Invoices"
|
||||
reads: "Payment terms: 30 Days, 2% Early Payment Discount under 7 days".
|
||||
|
||||
.. seealso::
|
||||
:doc:`payment_terms`
|
||||
|
||||
.. _cash-discounts/customer-invoice:
|
||||
|
||||
Apply a cash discount to a customer invoice
|
||||
===========================================
|
||||
|
||||
Apply a cash discount to a customer invoice by selecting the :ref:`payment terms you created
|
||||
On a customer invoice, apply a cash discount by selecting the :ref:`payment terms you created
|
||||
<cash-discounts/payment-terms>`. Odoo automatically computes the correct amounts, tax amounts, due
|
||||
dates, and accounting records.
|
||||
|
||||
@ -154,26 +156,23 @@ Under the :guilabel:`Journal Items` tab, you can display the discount details by
|
||||
"toggle" button and adding the :guilabel:`Discount Date` and :guilabel:`Discount Amount` columns.
|
||||
|
||||
.. image:: cash_discounts/invoice-journal-entry.png
|
||||
:align: center
|
||||
:alt: An invoice of €100.00 with "2/7 Net 30" selected as payment terms. The "Journal Items" tab
|
||||
is open, and the "Discount Date" and "Discount Amount" columns are displayed.
|
||||
|
||||
The discount amount and due date are also displayed on the generated invoice sent to the customer.
|
||||
The discount amount and due date are also displayed on the generated invoice report sent to the
|
||||
customer if the :guilabel:`Show installment dates` option is checked on the payment terms.
|
||||
|
||||
.. image:: cash_discounts/invoice-print.png
|
||||
:align: center
|
||||
:alt: An invoice of €100.00 with the following text added to the terms and conditions: "30 Days,
|
||||
2% Early Payment Discount under 7 days. 118.58 € due if paid before 01/08/2023."
|
||||
:alt: An invoice of €100.00 with the following text added to the terms and conditions: "30
|
||||
Days, 2% Early Payment Discount under 7 days. 118.58 € due if paid before 01/08/2023."
|
||||
|
||||
Payment reconciliation
|
||||
----------------------
|
||||
|
||||
When you record a payment or reconcile your bank statements, Odoo takes the customer payment's date
|
||||
into account to define if they can benefit from the cash discount or not.
|
||||
When you record a :doc:`payment <../payments>` or :doc:`reconcile your bank transactions
|
||||
<../bank/reconciliation>`, Odoo takes the customer payment's date into account to determine if the
|
||||
customer can benefit from the cash discount or not.
|
||||
|
||||
.. note::
|
||||
If your customer pays the discount amount *after* the discount date, you can always decide
|
||||
whether to mark the invoice as fully paid with a write-off or as partially paid.
|
||||
|
||||
.. seealso::
|
||||
:doc:`../payments`
|
||||
If your customer pays the discount amount *after* the discount date, you can always decide to
|
||||
mark the invoice as fully paid with a write-off or as partially paid.
|
||||
|
Binary file not shown.
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 16 KiB |
@ -49,43 +49,41 @@ To create new payment terms, follow these steps:
|
||||
|
||||
#. Go to :menuselection:`Accounting --> Configuration --> Payment Terms` and click on
|
||||
:guilabel:`New`.
|
||||
#. Enter a name in the :guilabel:`Payment Terms` field. This field is the name displayed in the
|
||||
database and is not customer-facing.
|
||||
#. Enter the text to be displayed on the document (sales order, invoice, etc.) in the
|
||||
:guilabel:`Description on the Invoice` field.
|
||||
#. Tick the :guilabel:`Display terms on invoice` checkbox to display a breakdown of each payment and
|
||||
its due date on the invoice report, if desired.
|
||||
#. In the :guilabel:`Terms` section, add a set of rules (terms) to define what needs to be paid and
|
||||
by which due date(s). Defining terms automatically calculates the payments' due date(s). This is
|
||||
particularly helpful for managing **installment plans** (:dfn:`payment terms with multiple
|
||||
#. Enter a name in the :guilabel:`Payment Terms` field. This field is the name displayed both
|
||||
internally and on sales orders.
|
||||
#. Tick the :guilabel:`Early Discount` checkbox and fill out the discount percentage, discount days,
|
||||
and :ref:`tax reduction <cash-discounts/tax-reductions>` fields to add a :doc:`cash discount
|
||||
<cash_discounts>`, if desired.
|
||||
#. In the :guilabel:`Due Terms` section, add a set of rules (terms) to define what needs to be paid
|
||||
and by which due date(s). Defining terms automatically calculates the payments' due date(s). This
|
||||
is particularly helpful for managing **installment plans** (:dfn:`payment terms with multiple
|
||||
terms`).
|
||||
|
||||
To add a term, click on :guilabel:`Add a line`, define its :guilabel:`Due Type` and
|
||||
:guilabel:`Value`, and fill out the appropriate fields to define when the term is due, including
|
||||
any :doc:`discounts <cash_discounts>`. Due dates are calculated by taking the invoice/bill date,
|
||||
first adding the :guilabel:`Months`, and then adding the :guilabel:`Days`. If the :guilabel:`End
|
||||
of month` toggle is enabled, the due date will then be the end of that month, plus any
|
||||
:guilabel:`Days after End of month`.
|
||||
To add a term, click on :guilabel:`Add a line`, define the discount's value and type in the
|
||||
:guilabel:`Due` fields, then fill out the :guilabel:`After` fields to determine the due date.
|
||||
#. Enter the text to be displayed on the document (sales order, invoice, etc.) in the gray textbox
|
||||
in the :guilabel:`Preview` column.
|
||||
#. Tick the :guilabel:`Show installment dates` checkbox to display a breakdown of each payment and
|
||||
its due date on the invoice report, if desired.
|
||||
|
||||
.. tip::
|
||||
To instead specify a number of days *before the end of the month*, use a negative value in the
|
||||
:guilabel:`Days after End of month` field.
|
||||
:guilabel:`After` field.
|
||||
|
||||
To test that your payment terms are configured correctly, enter an invoice amount and invoice date
|
||||
in the :guilabel:`Example` section to generate the payments that would be due and their due dates
|
||||
To test that your payment terms are configured correctly, enter an invoice date on the
|
||||
:guilabel:`Example` line to generate the payments that would be due and their due dates
|
||||
using these payment terms.
|
||||
|
||||
.. important::
|
||||
- Terms are computed in the order of their due dates.
|
||||
- The **balance** should always be used for the last line.
|
||||
Terms are computed in the order of their due dates.
|
||||
|
||||
.. example::
|
||||
In the following example, 30% is due on the day of issuance, and the balance is due at the end of
|
||||
the following month.
|
||||
In the following example, 30% is due on the day of issuance, and the remaining 70% is due at the
|
||||
end of the following month.
|
||||
|
||||
.. image:: payment_terms/configuration.png
|
||||
:alt: Example of Payment Terms. The last line is the balance due on the 31st of the following
|
||||
month.
|
||||
:alt: Example of Payment Terms. The first line is the 30% due immediately. The second line is
|
||||
the remaining 70% due at the end of the following month.
|
||||
|
||||
Using payment terms
|
||||
===================
|
||||
@ -126,7 +124,7 @@ due date into account, rather than just the balance due date. It also helps to g
|
||||
distinct due dates
|
||||
|
||||
In this example, an invoice of $1000 has been issued with the following payment terms: *30% is
|
||||
due on the day of issuance, and the balance is due at the end of the following month.*
|
||||
due on the day of issuance, and the remaining 70% is due at the end of the following month.*
|
||||
|
||||
+----------------------+-------------+---------+---------+
|
||||
| Account | Due date | Debit | Credit |
|
||||
|
Binary file not shown.
Before Width: | Height: | Size: 8.2 KiB After Width: | Height: | Size: 5.0 KiB |
Loading…
Reference in New Issue
Block a user