summaryrefslogtreecommitdiff
path: root/addons/mrp_subcontracting/__init__.py
diff options
context:
space:
mode:
Diffstat (limited to 'addons/mrp_subcontracting/__init__.py')
-rw-r--r--addons/mrp_subcontracting/__init__.py25
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()