From 36cb6f479a6483d20cc894ca91f40159d53b6ec9 Mon Sep 17 00:00:00 2001 From: Alexis de Lattre Date: Mon, 9 Jul 2012 18:21:24 +0200 Subject: [PATCH] Use product.product instead of product.template when we go through the ORM. In this process, I re-wrote the fonction change_product_qty_send_note in stock/wizard/stock_change_product_qty.py : the code is now much better ! bzr revid: alexis@via.ecp.fr-20120709162124-jmqv7hrl94fbzk1j --- addons/product/pricelist.py | 3 +-- .../product_visible_discount.py | 10 ++-------- addons/stock/wizard/stock_change_product_qty.py | 14 ++++---------- .../wizard/stock_planning_createlines.py | 4 +--- .../wizard/stock_planning_forecast.py | 4 +--- 5 files changed, 9 insertions(+), 26 deletions(-) diff --git a/addons/product/pricelist.py b/addons/product/pricelist.py index ea29292f445..75882c4f5dd 100644 --- a/addons/product/pricelist.py +++ b/addons/product/pricelist.py @@ -155,7 +155,6 @@ class product_pricelist(osv.osv): currency_obj = self.pool.get('res.currency') product_obj = self.pool.get('product.product') - product_template_obj = self.pool.get('product.template') product_category_obj = self.pool.get('product.category') product_uom_obj = self.pool.get('product.uom') supplierinfo_obj = self.pool.get('product.supplierinfo') @@ -246,7 +245,7 @@ class product_pricelist(osv.osv): price = 0.0 if sinfo: qty_in_product_uom = qty - product_default_uom = product_template_obj.read(cr, uid, [tmpl_id], ['uom_id'])[0]['uom_id'][0] + product_default_uom = product_obj.read(cr, uid, [product_id], ['uom_id'])[0]['uom_id'][0] supplier = supplierinfo_obj.browse(cr, uid, sinfo, context=context)[0] seller_uom = supplier.product_uom and supplier.product_uom.id or False if seller_uom and product_default_uom and product_default_uom != seller_uom: diff --git a/addons/product_visible_discount/product_visible_discount.py b/addons/product_visible_discount/product_visible_discount.py index 5d833ea6b53..d477d2bd8c3 100644 --- a/addons/product_visible_discount/product_visible_discount.py +++ b/addons/product_visible_discount/product_visible_discount.py @@ -47,7 +47,6 @@ class sale_order_line(osv.osv): item_obj = self.pool.get('product.pricelist.item') price_type_obj = self.pool.get('product.price.type') product_obj = self.pool.get('product.product') - template_obj = self.pool.get('product.template') field_name = 'list_price' if res_dict.get('item_id',False) and res_dict['item_id'].get(pricelist,False): @@ -57,9 +56,7 @@ class sale_order_line(osv.osv): field_name = price_type_obj.browse(cr, uid, item_base).field product = product_obj.browse(cr, uid, product_id, context) - product_tmpl_id = product.product_tmpl_id.id - - product_read = template_obj.read(cr, uid, product_tmpl_id, [field_name], context) + product_read = product_obj.read(cr, uid, product_id, [field_name], context) factor = 1.0 if uom and uom != product.uom_id.id: @@ -110,7 +107,6 @@ class account_invoice_line(osv.osv): item_obj = self.pool.get('product.pricelist.item') price_type_obj = self.pool.get('product.price.type') product_obj = self.pool.get('product.product') - template_obj = self.pool.get('product.template') field_name = 'list_price' if res_dict.get('item_id',False) and res_dict['item_id'].get(pricelist,False): @@ -120,9 +116,7 @@ class account_invoice_line(osv.osv): field_name = price_type_obj.browse(cr, uid, item_base).field product = product_obj.browse(cr, uid, product_id, context) - product_tmpl_id = product.product_tmpl_id.id - - product_read = template_obj.read(cr, uid, product_tmpl_id, [field_name], context) + product_read = product_obj.read(cr, uid, product_id, [field_name], context) factor = 1.0 if uom and uom != product.uom_id.id: diff --git a/addons/stock/wizard/stock_change_product_qty.py b/addons/stock/wizard/stock_change_product_qty.py index 9171cbc595e..9a00a6d62ce 100644 --- a/addons/stock/wizard/stock_change_product_qty.py +++ b/addons/stock/wizard/stock_change_product_qty.py @@ -103,20 +103,14 @@ class stock_change_product_qty(osv.osv_memory): self.change_product_qty_send_note(cr, uid, [data.id], context) return {} - def change_product_qty_send_note (self, cr, uid, ids, context=None): + def change_product_qty_send_note(self, cr, uid, ids, context=None): prod_obj = self.pool.get('product.product') location_obj = self.pool.get('stock.location') - prod_temp_obj = self.pool.get('product.template') - uom_obj = self.pool.get('product.uom') for data in self.browse(cr, uid, ids, context=context): - for location in location_obj.browse(cr, uid, [data.location_id.id], context=context): - location_name = location.name - for prod in prod_obj.browse(cr, uid, [data.product_id.id], context=context): - for prod_temp in prod_temp_obj.browse(cr, uid, [prod.product_tmpl_id.id], context=context): - for uom in uom_obj.browse(cr, uid, [prod_temp.uom_id.id], context=context): - message = _("Quantity has been changed to %s %s for %s location.") % (data.new_quantity,uom.name,location_name) - prod_obj.message_append_note(cr, uid, [prod.id], body=message, context=context) + location_name = location_obj.browse(cr, uid, data.location_id.id, context=context).name + message = _("Quantity has been changed to %s %s for %s location.") % (data.new_quantity, data.product_id.uom_id.name, location_name) + prod_obj.message_append_note(cr, uid, [data.product_id.id], body=message, context=context) stock_change_product_qty() diff --git a/addons/stock_planning/wizard/stock_planning_createlines.py b/addons/stock_planning/wizard/stock_planning_createlines.py index a6e12ad4bc7..3d43241341d 100644 --- a/addons/stock_planning/wizard/stock_planning_createlines.py +++ b/addons/stock_planning/wizard/stock_planning_createlines.py @@ -56,7 +56,6 @@ class stock_planning_createlines(osv.osv_memory): planning_obj = self.pool.get('stock.planning') mod_obj = self.pool.get('ir.model.data') prod_categ_obj = self.pool.get('product.category') - template_obj = self.pool.get('product.template') planning_lines = [] for f in self.browse(cr, uid, ids, context=context): if f.forecasted_products: @@ -67,8 +66,7 @@ class stock_planning_createlines(osv.osv_memory): else: categ_ids = f.product_categ_id.id and [f.product_categ_id.id] or [] prod_categ_ids = prod_categ_obj.search(cr,uid,[('parent_id','child_of',categ_ids)]) - templates_ids = template_obj.search(cr,uid,[('categ_id','in',prod_categ_ids)]) - products_id1 = product_obj.search(cr,uid,[('product_tmpl_id','in',templates_ids)]) + products_id1 = product_obj.search(cr,uid,[('categ_id','in',prod_categ_ids)]) if len(products_id1)==0: raise osv.except_osv(_('Error !'), _('No forecasts for selected period or no products in selected category !')) diff --git a/addons/stock_planning/wizard/stock_planning_forecast.py b/addons/stock_planning/wizard/stock_planning_forecast.py index 9f73cf257eb..c72ac0599ea 100644 --- a/addons/stock_planning/wizard/stock_planning_forecast.py +++ b/addons/stock_planning/wizard/stock_planning_forecast.py @@ -49,13 +49,11 @@ class stock_sale_forecast_createlines(osv.osv_memory): forecast_obj = self.pool.get('stock.sale.forecast') mod_obj = self.pool.get('ir.model.data') prod_categ_obj = self.pool.get('product.category') - template_obj = self.pool.get('product.template') forecast_lines = [] for f in self.browse(cr, uid, ids, context=context): categ_ids = f.product_categ_id.id and [f.product_categ_id.id] or [] prod_categ_ids = prod_categ_obj.search(cr, uid, [('parent_id','child_of', categ_ids)]) - templates_ids = template_obj.search(cr, uid, [('categ_id','in',prod_categ_ids)]) - products_ids = product_obj.search(cr, uid, [('product_tmpl_id','in',templates_ids)]) + products_ids = product_obj.search(cr, uid, [('categ_id','in',prod_categ_ids)]) if len(products_ids) == 0: raise osv.except_osv(_('Error !'), _('No products in selected category !')) copy = f.copy_forecast