From e27afc13cb5d95831cb9f4a0f1fb98e70129ceed Mon Sep 17 00:00:00 2001 From: Martin Trigaux Date: Mon, 10 Nov 2014 15:36:40 +0100 Subject: [PATCH] [FIX] mrp: prevent suppression of bom if used in mo The field bom_id is required on a manufacturing order and deleting a mrp.bom would block the current mo. Restrict the suppression for manufacturing order in progress. Fixes #3417 --- addons/mrp/mrp.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/addons/mrp/mrp.py b/addons/mrp/mrp.py index 72226e9de60..45b2bcbc047 100644 --- a/addons/mrp/mrp.py +++ b/addons/mrp/mrp.py @@ -379,6 +379,13 @@ class mrp_bom(osv.osv): default.update(name=_("%s (copy)") % (bom_data['name']), bom_id=False) return super(mrp_bom, self).copy_data(cr, uid, id, default, context=context) + def unlink(self, cr, uid, ids, context=None): + if self.pool['mrp.production'].search(cr, uid, [ + ('bom_id', 'in', ids), ('state', 'not in', ['done', 'cancel']) + ], context=context): + raise osv.except_osv(_('Warning!'), _('You can not delete a Bill of Material with running manufacturing orders.\nPlease close or cancel it first.')) + return super(mrp_bom, self).unlink(cr, uid, ids, context=context) + def rounding(f, r): # TODO for trunk: log deprecation warning