diff --git a/addons/mrp_subcontracting/__manifest__.py b/addons/mrp_subcontracting/__manifest__.py index b95b5471cc4..fef10cdddd6 100644 --- a/addons/mrp_subcontracting/__manifest__.py +++ b/addons/mrp_subcontracting/__manifest__.py @@ -15,6 +15,7 @@ 'views/res_partner_views.xml', 'views/stock_warehouse_views.xml', 'views/stock_move_views.xml', + 'views/stock_quant_views.xml', 'views/stock_picking_views.xml', 'views/supplier_info_views.xml', 'views/product_views.xml', diff --git a/addons/mrp_subcontracting/models/__init__.py b/addons/mrp_subcontracting/models/__init__.py index 7b4d6067559..fc944c6b955 100644 --- a/addons/mrp_subcontracting/models/__init__.py +++ b/addons/mrp_subcontracting/models/__init__.py @@ -7,6 +7,7 @@ from . import res_partner from . import stock_move from . import stock_move_line from . import stock_picking +from . import stock_quant from . import stock_rule from . import stock_warehouse from . import mrp_production diff --git a/addons/mrp_subcontracting/models/stock_quant.py b/addons/mrp_subcontracting/models/stock_quant.py new file mode 100644 index 00000000000..c2b48b2c7fa --- /dev/null +++ b/addons/mrp_subcontracting/models/stock_quant.py @@ -0,0 +1,26 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from odoo import fields, models, _ +from odoo.exceptions import UserError + + +class StockQuant(models.Model): + _inherit = 'stock.quant' + + is_subcontract = fields.Boolean(store=False, search='_search_is_subcontract') + + def _search_is_subcontract(self, operator, value): + if operator not in ['=', '!='] or not isinstance(value, bool): + raise UserError(_('Operation not supported')) + + subcontract_locations = self.env['res.company'].search([]).subcontracting_location_id + + quant_ids = self.env['stock.quant'].search([ + ('location_id', 'in', subcontract_locations.ids), + ]).ids + if (operator == '!=' and value is True) or (operator == '=' and value is False): + domain_operator = 'not in' + else: + domain_operator = 'in' + return [('id', domain_operator, quant_ids)] diff --git a/addons/mrp_subcontracting/views/stock_quant_views.xml b/addons/mrp_subcontracting/views/stock_quant_views.xml new file mode 100644 index 00000000000..21abc89855a --- /dev/null +++ b/addons/mrp_subcontracting/views/stock_quant_views.xml @@ -0,0 +1,17 @@ + + + + + stock.quant.subcontracting.search + stock.quant + + + + + + + + + + + diff --git a/addons/stock/views/stock_quant_views.xml b/addons/stock/views/stock_quant_views.xml index 97ca63a0f72..316170473c2 100644 --- a/addons/stock/views/stock_quant_views.xml +++ b/addons/stock/views/stock_quant_views.xml @@ -18,7 +18,9 @@ + + @@ -27,7 +29,6 @@ -