diff --git a/addons/mrp_subcontracting/i18n/mrp_subcontracting.pot b/addons/mrp_subcontracting/i18n/mrp_subcontracting.pot index 48f9b196e12..c5ceb1f552e 100644 --- a/addons/mrp_subcontracting/i18n/mrp_subcontracting.pot +++ b/addons/mrp_subcontracting/i18n/mrp_subcontracting.pot @@ -265,6 +265,12 @@ msgstr "" msgid "Warehouse" msgstr "" +#. module: mrp_subcontracting +#: code:addons/mrp_subcontracting/models/mrp_bom.py:0 +#, python-format +msgid "You can not set a Bill of Material with operations as subcontracting." +msgstr "" + #. module: mrp_subcontracting #: code:addons/mrp_subcontracting/models/mrp_production.py:0 #, python-format diff --git a/addons/mrp_subcontracting/models/mrp_bom.py b/addons/mrp_subcontracting/models/mrp_bom.py index d76c65dd4c2..34b439a8c8c 100644 --- a/addons/mrp_subcontracting/models/mrp_bom.py +++ b/addons/mrp_subcontracting/models/mrp_bom.py @@ -1,7 +1,8 @@ # -*- coding: utf-8 -*- # Part of Odoo. See LICENSE file for full copyright and licensing details. -from odoo import fields, models +from odoo import api, fields, models, _ +from odoo.exceptions import ValidationError from odoo.osv.expression import AND class MrpBom(models.Model): @@ -19,3 +20,8 @@ class MrpBom(models.Model): return self.search(domain, order='sequence, product_id, id', limit=1) else: return self.env['mrp.bom'] + + @api.constrains('operation_ids', 'type') + def _check_subcontracting_no_operation(self): + if self.filtered_domain([('type', '=', 'subcontract'), ('operation_ids', '!=', False)]): + raise ValidationError(_('You can not set a Bill of Material with operations as subcontracting.'))