Skip to content

Conversation

@fw-bot
Copy link
Collaborator

@fw-bot fw-bot commented Oct 30, 2025

task-5094417

We improve the following sections of the Taxes page:

  • Tax computations:
    At the moment, the section for the Percentage of Price tax included tax computation doesn't distinguish itself enough from the 'Included in Price' option which people usually want. We also improve the examples.

  • Included in Price

  • Affects base of subsequent taxes

  • Base affected by preceding taxes: this option was not documented, so we add a section for it.

Forward-Port-Of: #14908

task-5094417

We improve the following sections of the Taxes page:

- Tax computations:
  At the moment, the section for the `Percentage of Price tax included`
  tax computation doesn't distinguish itself enough from the 'Included
  in Price' option which people usually want.
  We also improve the examples.

- Included in Price
- Affects base of subsequent taxes
- Base affected by preceding taxes: this option was not documented, so
  we add a section for it.

X-original-commit: c5a0bb4
@robodoo
Copy link
Collaborator

robodoo commented Oct 30, 2025

Pull request status dashboard

@fw-bot
Copy link
Collaborator Author

fw-bot commented Oct 30, 2025

This PR targets 18.0 and is part of the forward-port chain. Further PRs will be created up to master.

More info at https://github.com/odoo/odoo/wiki/Mergebot#forward-port

@C3POdoo C3POdoo requested a review from a team October 31, 2025 10:18
@antoine162 antoine162 force-pushed the 18.0-17.0-taxes-fix-computation-5094417-andu-471236-fw branch from 1de5c80 to 071e782 Compare October 31, 2025 10:30
@antoine162
Copy link
Contributor

hi @dade-odoo I updated this PR with the changes to the Python taxes and to the Included in Price setting in 18.0 - it would be nice if you can have a look! I put all my changes beyond the original PR in a second commit to make it easier to see what changes in 18.0.

I also noticed a few things I forgot in 17.0, so I fixed them here and opened another PR to fix them as well just in 17.0: #15072

@antoine162 antoine162 force-pushed the 18.0-17.0-taxes-fix-computation-5094417-andu-471236-fw branch from 071e782 to d6e827b Compare October 31, 2025 10:37
- changes for Python taxes
- changes to the `Included in Price` setting
@antoine162 antoine162 force-pushed the 18.0-17.0-taxes-fix-computation-5094417-andu-471236-fw branch from d6e827b to 0bf2439 Compare October 31, 2025 14:35
Copy link
Contributor

@dade-odoo dade-odoo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the strong work here @antoine162 :) I've made a few suggestions - let me know if you have any questions.

tax-excluded sales price
- :ref:`Percentage of Price Tax Included <taxes/computation/percentage-of-price-tax-included>`: a
percentage of the tax-included total
- :ref:`Custom Formula <taxes/computation/python-code>`: a custom user-defined formula
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- :ref:`Custom Formula <taxes/computation/python-code>`: a custom user-defined formula
- :ref:`Custom Formula <taxes/computation/python-code>`: a custom, user-defined formula

Comment on lines +240 to +241
- `base`: the taxable basis on which the tax is applied - may differ from the `price_unit` if
other taxes are applied first
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great explanation here - you answered my question immediately after I asked it in my head 😅

A product has a Sales Price of $1000, and we apply a *10% of Price Tax Included* tax. We then
have:
A product has a sales price of $1000, and we apply a :guilabel:`Custom Formula` tax with a
:guilabel:`Formula` of `max(base, 500) * 0.10 + min(base - 500, 0) * 0.20`
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think the min and max are switched here :)

`Total = Sales Price = Computed Tax-Excluded price + Tax`
When set to :guilabel:`Tax Included`, the tax will always treat the sales price on which it is
applied as a total including the tax amount. The tax computation will split the sales price into a
base amount and a tax amount. This makes it suitable for B2C sales in most countries where prices
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
base amount and a tax amount. This makes it suitable for B2C sales in most countries where prices
base amount and a tax amount. This makes it suitable for B2C sales in most countries, where prices

Without the comma it would mean it is suitable for 9/10 of the countries where prices are quoted tax-inclusive.
With the comma it would mean it is suitable for 9/10 of all countries because in 9 of them, prices are quoted tax-inclusive
:)


You can configure a new :ref:`group of taxes <taxes/computation>` to include this tax or add it
directly to a product line.
If this setting is enabled, any subsequent tax applied on the same product line that has
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
If this setting is enabled, any subsequent tax applied on the same product line that has
If this setting is enabled, any subsequent tax applied on the same product line that has its

Comment on lines +419 to +420
the :ref:`Included in Price <taxes/included-in-price>` setting of the tax with :guilabel:`Affect
base of subsequent taxes`.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
the :ref:`Included in Price <taxes/included-in-price>` setting of the tax with :guilabel:`Affect
base of subsequent taxes`.
the :ref:`Included in Price <taxes/included-in-price>` setting of the tax with the :guilabel:`Affect
base of subsequent taxes` setting enabled.

Using the name of the field as part of the sentence isn't working neatly here and throughout this section. Let's make it more clear through the section by talking about fields and settings being enabled instead of just using the field name as part of the sentence structure itself.

A product has a sales price of $1100, and we apply a 10% :guilabel:`Percentage of Price`
tax that has :guilabel:`Tax Included` and :guilabel:`Affect base of subsequent taxes`.
Any subsequent tax with :guilabel:`Base affected by preceding taxes` will be based on a
modified sales price of $1000.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So it uses the tax-free amount here?? That seems strange.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants