[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
This commit is contained in:
Xavier Morel
2016-03-29 10:34:25 +02:00
parent f23daad44b
commit 2fea143b06
+4 -3
View File
@@ -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