From 4768c24340ec34ed9a6ab26f52a028b81552effc Mon Sep 17 00:00:00 2001 From: Josse Colpaert Date: Mon, 14 Apr 2014 10:48:21 +0200 Subject: [PATCH] [IMP] Improve the copying of products and make sure the orderpoints apply their copy method bzr revid: jco@openerp.com-20140414084821-1yi87wk6cfrr69qg --- addons/product/product.py | 2 +- addons/stock/product.py | 16 ++++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/addons/product/product.py b/addons/product/product.py index 41a928dc50a..92bd1807c1b 100644 --- a/addons/product/product.py +++ b/addons/product/product.py @@ -300,7 +300,7 @@ class prices_history(osv.osv): _columns = { 'company_id': fields.many2one('res.company', required=True), - 'product_template_id': fields.many2one('product.template', 'Product Template', required=True), + 'product_template_id': fields.many2one('product.template', 'Product Template', required=True, ondelete='cascade'), 'datetime': fields.datetime('Historization Time'), 'cost': fields.float('Historized Cost'), 'reason': fields.char('Reason'), diff --git a/addons/stock/product.py b/addons/stock/product.py index d1b8691e0cc..f90cd7caef3 100644 --- a/addons/stock/product.py +++ b/addons/stock/product.py @@ -291,6 +291,22 @@ class product_product(osv.osv): result['domain'] = "[('id','in',[" + ','.join(map(str, route_ids)) + "])]" return result + + def copy(self, cr, uid, id, default=None, context=None): + context = context or {} + default = dict(default or {}) + + product = self.browse(cr, uid, id, context=context) + op_obj = self.pool.get('stock.warehouse.orderpoint') + op_ids = [] + for orderpoint in product.orderpoint_ids: + op_val = op_obj.copy(cr, uid, orderpoint.id, context=context) + op_ids.append(op_val) + default['orderpoint_ids'] = [(6, 0, op_ids)] + res = super(product_product, self).copy(cr, uid, id, default=default, context=context) + return res + + class product_template(osv.osv): _name = 'product.template' _inherit = 'product.template'