diff --git a/addons/mrp_subcontracting/models/mrp_bom.py b/addons/mrp_subcontracting/models/mrp_bom.py
index b848ec854d1..a0a1d054cb9 100644
--- a/addons/mrp_subcontracting/models/mrp_bom.py
+++ b/addons/mrp_subcontracting/models/mrp_bom.py
@@ -2,7 +2,7 @@
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from odoo import fields, models
-
+from odoo.osv.expression import AND
class MrpBom(models.Model):
_inherit = 'mrp.bom'
@@ -13,7 +13,5 @@ class MrpBom(models.Model):
def _bom_subcontract_find(self, product_tmpl=None, product=None, picking_type=None, company_id=False, bom_type='subcontract', subcontractor=False):
domain = self._bom_find_domain(product_tmpl=product_tmpl, product=product, picking_type=picking_type, company_id=company_id, bom_type=bom_type)
if subcontractor:
- domain += ['|', ('subcontractor_ids', 'in', subcontractor.id), ('subcontractor_ids', '=', False)]
- else:
- domain += [('subcontractor_ids', '=', False)]
+ domain = AND([domain, [('subcontractor_ids', 'in', subcontractor.id)]])
return self.search(domain, order='subcontractor_ids, sequence, product_id', limit=1)
diff --git a/addons/mrp_subcontracting/tests/common.py b/addons/mrp_subcontracting/tests/common.py
index f72e2f4923a..224dfa08504 100644
--- a/addons/mrp_subcontracting/tests/common.py
+++ b/addons/mrp_subcontracting/tests/common.py
@@ -35,6 +35,7 @@ class TestMrpSubcontractingCommon(SavepointCase):
bom_form = Form(cls.env['mrp.bom'])
bom_form.type = 'subcontract'
bom_form.product_tmpl_id = cls.finished.product_tmpl_id
+ bom_form.subcontractor_ids.add(cls.subcontractor_partner1)
with bom_form.bom_line_ids.new() as bom_line:
bom_line.product_id = cls.comp1
bom_line.product_qty = 1
diff --git a/addons/mrp_subcontracting/tests/test_subcontracting.py b/addons/mrp_subcontracting/tests/test_subcontracting.py
index 24066aefb38..deb09fb29f1 100644
--- a/addons/mrp_subcontracting/tests/test_subcontracting.py
+++ b/addons/mrp_subcontracting/tests/test_subcontracting.py
@@ -530,6 +530,7 @@ class TestSubcontractingTracking(TransactionCase):
})
bom_form = Form(self.env['mrp.bom'])
bom_form.type = 'subcontract'
+ bom_form.subcontractor_ids.add(self.subcontractor_partner1)
bom_form.product_tmpl_id = self.finished_lot.product_tmpl_id
with bom_form.bom_line_ids.new() as bom_line:
bom_line.product_id = self.comp1_sn
diff --git a/addons/mrp_subcontracting/views/mrp_bom_views.xml b/addons/mrp_subcontracting/views/mrp_bom_views.xml
index d384f1ab4ea..6f7ab944e13 100644
--- a/addons/mrp_subcontracting/views/mrp_bom_views.xml
+++ b/addons/mrp_subcontracting/views/mrp_bom_views.xml
@@ -6,7 +6,7 @@
-
+