[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) <sig@openerp.com>
This commit is contained in:
Goffin Simon
2021-02-23 15:23:44 +00:00
parent 1e84002b8f
commit 2ad6f4e14e
2 changed files with 41 additions and 25 deletions
+40 -25
View File
@@ -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
+1
View File
@@ -101,6 +101,7 @@
attrs="{'invisible': [('type', 'not in',('normal','phantom'))]}"
groups="mrp.group_mrp_routings">
<field name="operation_ids"
widget="many2many"
attrs="{'invisible': [('type','not in',('normal','phantom'))]}"
groups="mrp.group_mrp_routings"
context="{'bom_id_invisible': True, 'default_company_id': company_id, 'default_bom_id': id}"/>