[FIX] website_sale: unit price
Commit 180866fe1e 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>
This commit is contained in:
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user