From 2ad6f4e14e8d7579cd24413b57bd3ce4d2a0c83a Mon Sep 17 00:00:00 2001 From: Goffin Simon Date: Tue, 16 Feb 2021 09:49:44 +0000 Subject: [PATCH] [FIX] mrp: Existing operations cannot be added to BOM Steps to reproduce the bug: - Go to an existing BOM B - Edit B and try to add an existing operation O in operations tab Bug: It was impossible to add an existing operation opw:2458974 closes odoo/odoo#66712 X-original-commit: ffab43fbf54b2f914b34c18da2391f3a18b3326c Signed-off-by: Simon Goffin (sig) --- addons/mrp/tests/test_bom.py | 65 ++++++++++++++++++------------ addons/mrp/views/mrp_bom_views.xml | 1 + 2 files changed, 41 insertions(+), 25 deletions(-) diff --git a/addons/mrp/tests/test_bom.py b/addons/mrp/tests/test_bom.py index fc16d68a4c6..bb6c5ab3a72 100644 --- a/addons/mrp/tests/test_bom.py +++ b/addons/mrp/tests/test_bom.py @@ -331,6 +331,27 @@ class TestBoM(TestMrpCommon): 'name': 'Deserts Table' }) + operation_1 = self.env['mrp.routing.workcenter'].create({ + 'workcenter_id': workcenter.id, + 'name': 'Prepare biscuits', + 'time_cycle_manual': 5, + 'bom_id': bom_crumble.id + }) + + operation_2 = self.env['mrp.routing.workcenter'].create({ + 'workcenter_id': workcenter.id, + 'name': 'Prepare butter', + 'time_cycle_manual': 3, + 'bom_id': bom_crumble.id + }) + + operation_3 = self.env['mrp.routing.workcenter'].create({ + 'workcenter_id': workcenter.id, + 'name': 'Mix manually', + 'time_cycle_manual': 5, + 'bom_id': bom_crumble.id + }) + with Form(bom_crumble) as bom: with bom.bom_line_ids.new() as line: line.product_id = butter @@ -340,21 +361,9 @@ class TestBoM(TestMrpCommon): line.product_id = biscuit line.product_uom_id = uom_kg line.product_qty = 6 - with bom.operation_ids.new() as operation: - operation.workcenter_id = workcenter - operation.name = 'Prepare biscuits' - operation.time_cycle_manual = 5 - operation.bom_id = bom_crumble # Can't handle by the testing env - with bom.operation_ids.new() as operation: - operation.workcenter_id = workcenter - operation.name = 'Prepare butter' - operation.time_cycle_manual = 3 - operation.bom_id = bom_crumble - with bom.operation_ids.new() as operation: - operation.workcenter_id = workcenter - operation.name = 'Mix manually' - operation.time_cycle_manual = 5 - operation.bom_id = bom_crumble + bom.operation_ids.add(operation_1) + bom.operation_ids.add(operation_2) + bom.operation_ids.add(operation_3) # TEST BOM STRUCTURE VALUE WITH BOM QUANTITY report_values = self.env['report.mrp.report_bom_structure']._get_report_data(bom_id=bom_crumble.id, searchQty=11, searchVariant=False) @@ -431,6 +440,20 @@ class TestBoM(TestMrpCommon): 'time_stop': 15 }) + operation_4 = self.env['mrp.routing.workcenter'].create({ + 'workcenter_id': workcenter.id, + 'name': 'Mix cheese and crumble', + 'time_cycle_manual': 10, + 'bom_id': bom_cheese_cake.id + }) + + operation_5 = self.env['mrp.routing.workcenter'].create({ + 'workcenter_id': workcenter_2.id, + 'name': 'Cake mounting', + 'time_cycle_manual': 5, + 'bom_id': bom_cheese_cake.id + }) + with Form(bom_cheese_cake) as bom: with bom.bom_line_ids.new() as line: line.product_id = cream @@ -440,16 +463,8 @@ class TestBoM(TestMrpCommon): line.product_id = crumble line.product_uom_id = uom_kg line.product_qty = 5.4 - with bom.operation_ids.new() as operation: - operation.workcenter_id = workcenter - operation.name = 'Mix cheese and crumble' - operation.time_cycle_manual = 10 - operation.bom_id = bom_cheese_cake - with bom.operation_ids.new() as operation: - operation.workcenter_id = workcenter_2 - operation.name = 'Cake mounting' - operation.time_cycle_manual = 5 - operation.bom_id = bom_cheese_cake + bom.operation_ids.add(operation_4) + bom.operation_ids.add(operation_5) # TEST CHEESE BOM STRUCTURE VALUE WITH BOM QUANTITY diff --git a/addons/mrp/views/mrp_bom_views.xml b/addons/mrp/views/mrp_bom_views.xml index 6e7b5384f5a..b11a9e582ed 100644 --- a/addons/mrp/views/mrp_bom_views.xml +++ b/addons/mrp/views/mrp_bom_views.xml @@ -101,6 +101,7 @@ attrs="{'invisible': [('type', 'not in',('normal','phantom'))]}" groups="mrp.group_mrp_routings">