From d2042182b48c8941d0bdfe1855745bd0212fec27 Mon Sep 17 00:00:00 2001 From: Martin Trigaux Date: Wed, 23 Oct 2013 15:26:46 +0200 Subject: [PATCH] [FIX] product_visible_discount: don't compute negative discount, also prevent zero division bzr revid: mat@openerp.com-20131023132646-8l760d4swsq42zzo --- .../product_visible_discount.py | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/addons/product_visible_discount/product_visible_discount.py b/addons/product_visible_discount/product_visible_discount.py index ff481377955..b8a6e4552ea 100644 --- a/addons/product_visible_discount/product_visible_discount.py +++ b/addons/product_visible_discount/product_visible_discount.py @@ -87,12 +87,13 @@ class sale_order_line(osv.osv): pricelists = pricelist_obj.read(cr,uid,[pricelist],['visible_discount']) new_list_price = get_real_price(list_price, product.id, qty, uom, pricelist) - if (price/new_list_price > 0): - result['discount'] = 0.0 - result['price_unit'] = price - else: - if(len(pricelists)>0 and pricelists[0]['visible_discount'] and list_price[pricelist] != 0): - discount= (price/new_list_price) + if len(pricelists)>0 and pricelists[0]['visible_discount'] and list_price[pricelist] != 0 and new_list_price != 0: + discount = (new_list_price - price) / new_list_price * 100 + if discount > 0: result['price_unit'] = new_list_price result['discount'] = discount + else: + result['discount'] = 0.0 + else: + result['discount'] = 0.0 return res