diff options
Diffstat (limited to 'addons/mrp_subcontracting/__init__.py')
| -rw-r--r-- | addons/mrp_subcontracting/__init__.py | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/addons/mrp_subcontracting/__init__.py b/addons/mrp_subcontracting/__init__.py new file mode 100644 index 00000000000..be29e5c5628 --- /dev/null +++ b/addons/mrp_subcontracting/__init__.py @@ -0,0 +1,25 @@ +# -*- coding: utf-8 -*- + +from . import models +from odoo import api, SUPERUSER_ID + +def _create_subcontracting_rules(cr, registry): + """ This hook is used to add the default subcontracting rules on every warehouse/company. It is + necessary if the mrp_subcontracting module is installed after some warehouses + were already created. + """ + env = api.Environment(cr, SUPERUSER_ID, {}) + warehouse_ids = env['stock.warehouse'].search(['|', ('subcontracting_mto_pull_id', '=', False), ('subcontracting_pull_id', '=', False)]) + for warehouse_id in warehouse_ids: + warehouse_id.write({'subcontracting_to_resupply': warehouse_id.subcontracting_to_resupply}) + company_ids = env['res.company'].search([('subcontracting_location_id', '!=', False)]) + for company_id in company_ids: + wh = env['stock.warehouse'].search([('company_id', '=', company_id.id), ('active', '=', True)], limit=1) + production_location = wh._get_production_location() + rsoo_rule = env['stock.rule'].search([ + ('location_src_id', '=', company_id.subcontracting_location_id.id), + ('location_id', '=', production_location.id), + ('picking_type_id', '=', wh.manu_type_id.id) + ]) + if not rsoo_rule: + company_id._create_resupply_subcontractor_rules() |
