From 90b90bb01e93f578abd482db0ebc6be985aa2ede Mon Sep 17 00:00:00 2001 From: "Quentin (OpenERP)" Date: Mon, 1 Oct 2012 19:09:20 +0200 Subject: [PATCH] [FIX] sale_stock: product_id_change fix bzr revid: qdp-launchpad@openerp.com-20121001170920-fv2ueuyecml908gi --- addons/sale_stock/sale_stock.py | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/addons/sale_stock/sale_stock.py b/addons/sale_stock/sale_stock.py index aea39590152..dfd310fce3a 100644 --- a/addons/sale_stock/sale_stock.py +++ b/addons/sale_stock/sale_stock.py @@ -610,14 +610,18 @@ class sale_order_line(osv.osv): lang=lang, update_tax=update_tax, date_order=date_order, packaging=packaging, fiscal_position=fiscal_position, flag=flag, context=context) if not product: - return {'value': {'th_weight': 0, 'product_packaging': False, - 'product_uos_qty': qty}, 'domain': {'product_uom': [], - 'product_uos': []}} + res['value'].update({'product_packaging': False}) + return res + + #update of result obtained in super function res_packing = self.product_packaging_change(cr, uid, ids, pricelist, product, qty, uom, partner_id, packaging, context=context) res['value'].update(res_packing.get('value', {})) warning_msgs = res_packing.get('warning') and res_packing['warning']['message'] or '' product_obj = product_obj.browse(cr, uid, product, context=context) res['value']['delay'] = (product_obj.sale_delay or 0.0) + res['value']['type'] = product_obj.type + + #check if product is available, and if not: raise an error uom2 = False if uom: uom2 = product_uom_obj.browse(cr, uid, uom) @@ -625,7 +629,6 @@ class sale_order_line(osv.osv): uom = False if not uom2: uom2 = product_obj.uom_id - compare_qty = float_compare(product_obj.virtual_available * uom2.factor, qty * product_obj.uom_id.factor, precision_rounding=product_obj.uom_id.rounding) if (product_obj.type=='product') and int(compare_qty) == -1 \ and (product_obj.procure_method=='make_to_stock'): @@ -634,7 +637,8 @@ class sale_order_line(osv.osv): max(0,product_obj.virtual_available), product_obj.uom_id.name, max(0,product_obj.qty_available), product_obj.uom_id.name) warning_msgs += _("Not enough stock ! : ") + warn_msg + "\n\n" - # get unit price + + #update of warning messages if warning_msgs: warning = { 'title': _('Configuration Error!'),