diff options
| author | Nicolas Martinelli <nim@odoo.com> | 2019-04-17 11:03:49 +0000 |
|---|---|---|
| committer | Nicolas Martinelli <nim@odoo.com> | 2019-04-17 11:03:49 +0000 |
| commit | 2f9e793d24a04f248ba21e34072ece740e5e32ce (patch) | |
| tree | f8ee2b51b21315013815de641508c0d43c0b17a4 /addons | |
| parent | b6f55dac5633d8ccb16568e0c85a5c32072e8846 (diff) | |
[FIX] website_sale: unit price
Commit 180866fe1e3b8998cc47ee58 introduced an error in the following
case:
- Go to Sales > Configuration > Settings
- Enable "Multiple Sales Prices per Product" and select option "Prices
computed from formulas (discounts, margins, roundings)"
- Go to Sales > Catalog / Pricelists
- Select "Public Pricelist" and set "Discount Policy: Show public price
& discount to the customer"
- Define the pricelist as based on the cost of the product with a
negative discount for a product P
- Go to the eCommerce, buy the product
The price used in the cart is the cost price instead of the cost +
negative discount.
This is because we force the discount to be zero in this case while
using the price of the product without the pricelist.
We usually don't want to show a negative discount, since it means the
client pays more than usual. However we still want to use the price
defined on the pricelist. We modify as follow: if the discount is
negative, we don't show it to the user (value = 0), but we use the unit
price with the discount included.
opw-1967870
closes odoo/odoo#32768
Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
Diffstat (limited to 'addons')
| -rw-r--r-- | addons/website_sale/models/sale_order.py | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/addons/website_sale/models/sale_order.py b/addons/website_sale/models/sale_order.py index 098a8629e15..b751cecf446 100644 --- a/addons/website_sale/models/sale_order.py +++ b/addons/website_sale/models/sale_order.py @@ -111,7 +111,10 @@ class SaleOrder(models.Model): pu = request.env['res.currency'].browse(currency_id).with_context(product_context).compute(pu, order.pricelist_id.currency_id) discount = (pu - price) / pu * 100 if discount < 0: + # In case the discount is negative, we don't want to show it to the customer, + # but we still want to use the price defined on the pricelist discount = 0 + pu = price else: pu = product.price if order.pricelist_id and order.partner_id: |
