From 1ac2c0d91ccc3215cce08dd47dcb7e272ee20b28 Mon Sep 17 00:00:00 2001 From: "rpa (Open ERP)" Date: Wed, 24 Nov 2010 14:50:15 +0530 Subject: [PATCH] [IMP]: product: Return name of product with supplier product code and name in name_get method in product module instead of purchase module bzr revid: rpa@tinyerp.com-20101124092015-i2hse1bv9b0m9pfi --- addons/product/product.py | 24 +++++++++++++++++++++--- addons/purchase/purchase.py | 11 ++--------- 2 files changed, 23 insertions(+), 12 deletions(-) diff --git a/addons/product/product.py b/addons/product/product.py index c723b79d1a5..3dd107b9f34 100644 --- a/addons/product/product.py +++ b/addons/product/product.py @@ -489,7 +489,9 @@ class product_product(osv.osv): def on_order(self, cr, uid, ids, orderline, quantity): pass - def name_get(self, cr, user, ids, context={}): + def name_get(self, cr, user, ids, context=None): + if context is None: + context = {} if not len(ids): return [] def _name_get(d): @@ -497,10 +499,26 @@ class product_product(osv.osv): code = d.get('default_code',False) if code: name = '[%s] %s' % (code,name) - if d['variants']: + if d.get('variants'): name = name + ' - %s' % (d['variants'],) return (d['id'], name) - result = map(_name_get, self.read(cr, user, ids, ['variants','name','default_code'], context)) + + partner_id = context.get('partner_id', False) + + result = [] + for product in self.browse(cr, user, ids, context=context): + sellers = filter(lambda x: x.name.id == partner_id, product.seller_ids) + if sellers: + for s in sellers: + mydict = { + 'id': product.id, + 'name': s.product_name or product.name, + 'default_code': s.product_code or product.default_code, + 'variants': product.variants + } + result.append(_name_get(mydict)) + else: + result.append(_name_get(self.read(cr, user, product.id, ['variants','name','default_code'], context))) return result def name_search(self, cr, user, name='', args=None, operator='ilike', context=None, limit=100): diff --git a/addons/purchase/purchase.py b/addons/purchase/purchase.py index 4920ca034ba..927f1cdcba5 100644 --- a/addons/purchase/purchase.py +++ b/addons/purchase/purchase.py @@ -663,21 +663,14 @@ class purchase_order_line(osv.osv): qty = qty or 1.0 seller_delay = 0 - prod_name = self.pool.get('product.product').name_get(cr, uid, [prod.id])[0][1] + prod_name = self.pool.get('product.product').name_get(cr, uid, [prod.id], context=context)[0][1] + for s in prod.seller_ids: if s.name.id == partner_id: seller_delay = s.delay temp_qty = s.qty # supplier _qty assigned to temp if qty < temp_qty: # If the supplier quantity is greater than entered from user, set minimal. qty = temp_qty - prod_suppl_name = s.product_name - prod_suppl_code = s.product_code - if not (prod_suppl_name or prod_suppl_code): - prod_name = self.pool.get('product.product').name_get(cr, uid, [prod.id])[0][1] - elif (not prod_suppl_name) or (not prod_suppl_code): - prod_name= '[' + (prod_suppl_code or prod.default_code or '') + '] '+ (prod_suppl_name or prod.name or '') - else: - prod_name= '[' + prod_suppl_code + '] '+ prod_suppl_name if price_unit: price = price_unit else: