From 2fea143b06ed7aa4ed45adfa2b974264f938c421 Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Wed, 23 Mar 2016 10:29:55 +0100 Subject: [PATCH] [FIX] stock: count of reordering rules * don't dig into context for data we already have * don't use mutable value as duplicated default * try to make the method work correctly in case it's ever called with multiple product template ids --- addons/stock/product.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/addons/stock/product.py b/addons/stock/product.py index e8693707a45..2136b877e4b 100644 --- a/addons/stock/product.py +++ b/addons/stock/product.py @@ -385,11 +385,12 @@ class product_template(osv.osv): return res def _compute_nbr_reordering_rules(self, cr, uid, ids, field_names=None, arg=None, context=None): - res = dict.fromkeys(ids, {'nbr_reordering_rules': 0, 'reordering_min_qty': 0, 'reordering_max_qty': 0}) + res = {k: {'nbr_reordering_rules': 0, 'reordering_min_qty': 0, 'reordering_max_qty': 0} for k in ids} product_data = self.pool['stock.warehouse.orderpoint'].read_group(cr, uid, [('product_id.product_tmpl_id', 'in', ids)], ['product_id', 'product_min_qty', 'product_max_qty'], ['product_id'], context=context) for data in product_data: - product_tmpl_id = data['__domain'][1][2][0] - res[product_tmpl_id]['nbr_reordering_rules'] = res[product_tmpl_id].get('nbr_reordering_rules', 0) + int(data['product_id_count']) + p = self.env['product.product'].browse(cr, uid, [data['product_id'][0]], context=context) + product_tmpl_id = p.product_tmpl_id.id + res[product_tmpl_id]['nbr_reordering_rules'] += int(data['product_id_count']) res[product_tmpl_id]['reordering_min_qty'] = data['product_min_qty'] res[product_tmpl_id]['reordering_max_qty'] = data['product_max_qty'] return res