From eaa0642b91e4cc156a5f16a9d65a41978fc3c92f Mon Sep 17 00:00:00 2001 From: Jordi Ballester Alomar Date: Sun, 1 Sep 2019 22:14:24 +0200 Subject: [PATCH] add support for multi-company --- mrp_multi_level/models/mrp_area.py | 5 +++ mrp_multi_level/models/mrp_inventory.py | 5 +++ mrp_multi_level/models/mrp_move.py | 5 +++ mrp_multi_level/models/mrp_planned_order.py | 5 +++ mrp_multi_level/models/product_mrp_area.py | 5 +++ .../security/mrp_multi_level_security.xml | 35 +++++++++++++++++++ mrp_multi_level/views/mrp_area_views.xml | 2 ++ mrp_multi_level/views/mrp_inventory_views.xml | 3 ++ .../views/product_mrp_area_views.xml | 2 ++ 9 files changed, 67 insertions(+) diff --git a/mrp_multi_level/models/mrp_area.py b/mrp_multi_level/models/mrp_area.py index 2b7c9c60c..a61d4ecb2 100644 --- a/mrp_multi_level/models/mrp_area.py +++ b/mrp_multi_level/models/mrp_area.py @@ -15,6 +15,11 @@ class MrpArea(models.Model): comodel_name='stock.warehouse', string='Warehouse', required=True, ) + company_id = fields.Many2one( + comodel_name='res.company', + related='warehouse_id.company_id', + store=True, + ) location_id = fields.Many2one( comodel_name='stock.location', string='Location', required=True, diff --git a/mrp_multi_level/models/mrp_inventory.py b/mrp_multi_level/models/mrp_inventory.py index be68f3a5f..91bca157e 100644 --- a/mrp_multi_level/models/mrp_inventory.py +++ b/mrp_multi_level/models/mrp_inventory.py @@ -28,6 +28,11 @@ class MrpInventory(models.Model): index=True, required=True, ) + company_id = fields.Many2one( + comodel_name='res.company', + related='product_mrp_area_id.mrp_area_id.warehouse_id.company_id', + store=True, + ) product_id = fields.Many2one( comodel_name='product.product', related='product_mrp_area_id.product_id', diff --git a/mrp_multi_level/models/mrp_move.py b/mrp_multi_level/models/mrp_move.py index 0813b6462..41af15bb4 100644 --- a/mrp_multi_level/models/mrp_move.py +++ b/mrp_multi_level/models/mrp_move.py @@ -23,6 +23,11 @@ class MrpMove(models.Model): store=True, index=True, ) + company_id = fields.Many2one( + comodel_name='res.company', + related='product_mrp_area_id.mrp_area_id.warehouse_id.company_id', + store=True, + ) product_id = fields.Many2one( comodel_name='product.product', related='product_mrp_area_id.product_id', diff --git a/mrp_multi_level/models/mrp_planned_order.py b/mrp_multi_level/models/mrp_planned_order.py index 9c303e3fc..22184de14 100644 --- a/mrp_multi_level/models/mrp_planned_order.py +++ b/mrp_multi_level/models/mrp_planned_order.py @@ -25,6 +25,11 @@ class MrpPlannedOrder(models.Model): index=True, readonly=True, ) + company_id = fields.Many2one( + comodel_name='res.company', + related='product_mrp_area_id.mrp_area_id.warehouse_id.company_id', + store=True, + ) product_id = fields.Many2one( comodel_name="product.product", related="product_mrp_area_id.product_id", diff --git a/mrp_multi_level/models/product_mrp_area.py b/mrp_multi_level/models/product_mrp_area.py index ff6d153e0..a73901bd6 100644 --- a/mrp_multi_level/models/product_mrp_area.py +++ b/mrp_multi_level/models/product_mrp_area.py @@ -19,6 +19,11 @@ class ProductMRPArea(models.Model): comodel_name='mrp.area', required=True, ) + company_id = fields.Many2one( + comodel_name='res.company', + related='mrp_area_id.warehouse_id.company_id', + store=True, + ) product_id = fields.Many2one( comodel_name='product.product', required=True, diff --git a/mrp_multi_level/security/mrp_multi_level_security.xml b/mrp_multi_level/security/mrp_multi_level_security.xml index 13a2bedb7..075492f63 100644 --- a/mrp_multi_level/security/mrp_multi_level_security.xml +++ b/mrp_multi_level/security/mrp_multi_level_security.xml @@ -7,4 +7,39 @@ + + MRP Area multi-company rule + + + ['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])] + + + + Product MRP Area multi-company rule + + + ['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])] + + + + MRP Inventory multi-company rule + + + ['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])] + + + + MRP Move multi-company rule + + + ['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])] + + + + MRP Planned Order multi-company rule + + + ['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])] + + diff --git a/mrp_multi_level/views/mrp_area_views.xml b/mrp_multi_level/views/mrp_area_views.xml index b4742a053..d43633dab 100644 --- a/mrp_multi_level/views/mrp_area_views.xml +++ b/mrp_multi_level/views/mrp_area_views.xml @@ -9,6 +9,7 @@ + @@ -35,6 +36,7 @@ + diff --git a/mrp_multi_level/views/mrp_inventory_views.xml b/mrp_multi_level/views/mrp_inventory_views.xml index e4a180ffb..438c82175 100644 --- a/mrp_multi_level/views/mrp_inventory_views.xml +++ b/mrp_multi_level/views/mrp_inventory_views.xml @@ -11,6 +11,7 @@ + @@ -36,6 +37,7 @@ + @@ -85,6 +87,7 @@ search + diff --git a/mrp_multi_level/views/product_mrp_area_views.xml b/mrp_multi_level/views/product_mrp_area_views.xml index db4df6315..c15be5bcd 100644 --- a/mrp_multi_level/views/product_mrp_area_views.xml +++ b/mrp_multi_level/views/product_mrp_area_views.xml @@ -8,6 +8,7 @@ + @@ -42,6 +43,7 @@ +