20 lines
974 B
Python
20 lines
974 B
Python
# -*- coding: utf-8 -*-
|
|
# 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'
|
|
|
|
type = fields.Selection(selection_add=[('subcontract', 'Subcontracting')])
|
|
subcontractor_ids = fields.Many2many('res.partner', 'mrp_bom_subcontractor', string='Subcontractors', check_company=True)
|
|
|
|
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 = AND([domain, [('subcontractor_ids', 'in', subcontractor.id)]])
|
|
return self.search(domain, order='sequence, product_id', limit=1)
|
|
else:
|
|
return self.env['mrp.bom']
|