summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--addons/mrp/__init__.py13
-rw-r--r--addons/mrp/__manifest__.py1
-rw-r--r--addons/mrp_subcontracting/__init__.py15
-rw-r--r--addons/mrp_subcontracting/__manifest__.py1
4 files changed, 30 insertions, 0 deletions
diff --git a/addons/mrp/__init__.py b/addons/mrp/__init__.py
index 616729a420d..07f99e38042 100644
--- a/addons/mrp/__init__.py
+++ b/addons/mrp/__init__.py
@@ -16,3 +16,16 @@ def _create_warehouse_data(cr, registry):
env = api.Environment(cr, SUPERUSER_ID, {})
warehouse_ids = env['stock.warehouse'].search([('manufacture_pull_id', '=', False)])
warehouse_ids.write({'manufacture_to_resupply': True})
+
+def uninstall_hook(cr, registry):
+ env = api.Environment(cr, SUPERUSER_ID, {})
+ warehouses = env["stock.warehouse"].search([])
+ subcontracting_routes = warehouses.mapped("pbm_route_id")
+ warehouses.write({"pbm_route_id": False})
+ # Fail unlink means that the route is used somewhere (e.g. route_id on stock.rule). In this case
+ # we don't try to do anything.
+ try:
+ subcontracting_routes.unlink()
+ except:
+ pass
+
diff --git a/addons/mrp/__manifest__.py b/addons/mrp/__manifest__.py
index f664c4883e2..4f08bb9f0ab 100644
--- a/addons/mrp/__manifest__.py
+++ b/addons/mrp/__manifest__.py
@@ -47,4 +47,5 @@
'test': [],
'application': True,
'post_init_hook': '_create_warehouse_data',
+ 'uninstall_hook': 'uninstall_hook',
}
diff --git a/addons/mrp_subcontracting/__init__.py b/addons/mrp_subcontracting/__init__.py
index 35e7c9600c5..276d3a48dbf 100644
--- a/addons/mrp_subcontracting/__init__.py
+++ b/addons/mrp_subcontracting/__init__.py
@@ -1,4 +1,19 @@
# -*- coding: utf-8 -*-
+from odoo import SUPERUSER_ID, api
+
from . import models
from . import wizard
+
+
+def uninstall_hook(cr, registry):
+ env = api.Environment(cr, SUPERUSER_ID, {})
+ warehouses = env["stock.warehouse"].search([])
+ subcontracting_routes = warehouses.mapped("subcontracting_route_id")
+ warehouses.write({"subcontracting_route_id": False})
+ # Fail unlink means that the route is used somewhere (e.g. route_id on stock.rule). In this case
+ # we don't try to do anything.
+ try:
+ subcontracting_routes.unlink()
+ except:
+ pass
diff --git a/addons/mrp_subcontracting/__manifest__.py b/addons/mrp_subcontracting/__manifest__.py
index e40a4ced61f..1d390e86d1c 100644
--- a/addons/mrp_subcontracting/__manifest__.py
+++ b/addons/mrp_subcontracting/__manifest__.py
@@ -23,4 +23,5 @@
'demo': [
'data/mrp_subcontracting_demo.xml',
],
+ 'uninstall_hook': 'uninstall_hook',
}