Victor Piryns (pivi) 98f01f451b [FIX] website_sale: avoid float inaccuracy when comparing for discount
Current behaviour:
When a pricelist discount with a % is present for the /shop, but
doesn't apply for the product, for some base prices that are not
easily representable as floats, the comparison between the base
price and the post-pricelist price may be different, when they are
not, due to floating point inaccuracy.

Expected behaviour:
Even if floats are not accurate, if the price is essentially the
same, it shouldn't be counted as a discount.

Steps to reproduce:
- Install eCommerce and Sales
- Settings > Activate all pricelist settings for discount and check
  the "Comparison Price"
- For a product set the base price to `4,152.48`
- Create a price list that shows the discount of 25% that *doesn't*
  apply for the product we set, set it selectable for the e-commerce.
- Go to the /shop, set the pricelist and look for your product, see
  that the base price and discounted price are the same, but one is
  strikedthrough as if there is a discount.

Reason for the problem:
Floating point inacuracy when computing the base price of the
product, and we compare with the "reduced" price, they are different
(4,152.48 vs 4,152.480000xx), so when we compare them, they are
different, when they shouldn't be.

Fix:
Use `compare_amount(...) != 0` of the currency to safely compare the 2
prices.

Affected versions:
- 16.0
- saas-16.1 (couldn't reproduce, but the line is present, so
  possibly faulty)
- saas-16.2 (couldn't reproduce, but the line is present, so
  possibly faulty)
- master (couldn't reproduce, but the line is present, so
  possibly faulty)

opw-3246461

closes odoo/odoo#119072

X-original-commit: aaaae309d38651c9ce5cd63439695e858a7c047d
Signed-off-by: Piryns Victor (pivi) <pivi@odoo.com>
2023-04-19 21:58:47 +02:00
2023-04-13 17:57:45 +02:00
…
…
…
…
2023-01-03 13:16:02 +01:00

Build Status Tech Doc Help Nightly Builds

Odoo

Odoo is a suite of web based open source business apps.

The main Odoo Apps include an Open Source CRM, Website Builder, eCommerce, Warehouse Management, Project Management, Billing & Accounting, Point of Sale, Human Resources, Marketing, Manufacturing, ...

Odoo Apps can be used as stand-alone applications, but they also integrate seamlessly so you get a full-featured Open Source ERP when you install several Apps.

Getting started with Odoo

For a standard installation please follow the Setup instructions from the documentation.

To learn the software, we recommend the Odoo eLearning, or Scale-up, the business game. Developers can start with the developer tutorials

S
Description
No description provided
Readme LGPL-3.0
3.4 GiB
Languages
Python 49.6%
JavaScript 47.8%
SCSS 2%
CSS 0.3%
HTML 0.2%