From e7fd2ba5c88eda06363389339eb651cc541fc4dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20Voet=20=28ryv=29?= Date: Wed, 1 Jul 2020 12:50:04 +0000 Subject: [PATCH] [FIX] mrp_subcontracting: fix flow with tracked component After the odoo/odoo#52949 , the registering of tracked component, in case of subcontracting, was broken. Fix and try to mimic the same flow than before. The produce wizard has been replaced by a clean MO form to register component and use backorder mechanisme of MO to manage tracked finished product + tracked component. task-2278147 closes odoo/odoo#54994 Signed-off-by: Simon Lejeune (sle) --- addons/mrp/models/stock_move.py | 5 +- addons/mrp/views/mrp_production_views.xml | 2 +- addons/mrp_subcontracting/__manifest__.py | 1 + addons/mrp_subcontracting/models/__init__.py | 2 +- .../mrp_production.py} | 73 +++++-- .../mrp_subcontracting/models/stock_move.py | 65 +++---- .../models/stock_move_line.py | 13 +- .../models/stock_picking.py | 56 +++--- .../tests/test_subcontracting.py | 181 +++++++++--------- .../views/mrp_production_views.xml | 54 ++++++ .../views/stock_move_views.xml | 104 ++++++++-- addons/mrp_subcontracting/wizard/__init__.py | 1 - addons/stock/models/stock_move.py | 1 + addons/stock/views/stock_move_views.xml | 1 + 14 files changed, 341 insertions(+), 218 deletions(-) rename addons/mrp_subcontracting/{wizard/mrp_product_produce.py => models/mrp_production.py} (55%) create mode 100644 addons/mrp_subcontracting/views/mrp_production_views.xml diff --git a/addons/mrp/models/stock_move.py b/addons/mrp/models/stock_move.py index f6fe94fc55b..170c69e1611 100644 --- a/addons/mrp/models/stock_move.py +++ b/addons/mrp/models/stock_move.py @@ -108,7 +108,7 @@ class StockMove(models.Model): store=True, help='Technical Field to order moves') needs_lots = fields.Boolean('Tracking', compute='_compute_needs_lots') - order_finished_lot_ids = fields.Many2many('stock.production.lot', compute='_compute_order_finished_lot_ids') + order_finished_lot_ids = fields.Many2many('stock.production.lot', string="Finished Lot/Serial Number", compute='_compute_order_finished_lot_ids') finished_lots_exist = fields.Boolean('Finished Lots Exist', compute='_compute_order_finished_lot_ids') should_consume_qty = fields.Float('Quantity To Consume', compute='_compute_should_consume_qty') @@ -123,7 +123,8 @@ class StockMove(models.Model): def _compute_order_finished_lot_ids(self): for move in self: if move.raw_material_production_id.move_finished_ids: - finished_lots_ids = move.raw_material_production_id.move_finished_ids.mapped('move_line_ids.lot_id').ids + # TODO ryv : to clean in master, finished_lots_exist is never used. order_finished_lot_ids can become one2many instead + finished_lots_ids = move.raw_material_production_id.lot_producing_id if finished_lots_ids: move.order_finished_lot_ids = finished_lots_ids move.finished_lots_exist = True diff --git a/addons/mrp/views/mrp_production_views.xml b/addons/mrp/views/mrp_production_views.xml index 16e04efdea9..ece07e2a67d 100644 --- a/addons/mrp/views/mrp_production_views.xml +++ b/addons/mrp/views/mrp_production_views.xml @@ -161,7 +161,7 @@ - +