From 99b9874ab3c09b41a1b7439bba92420ad9170357 Mon Sep 17 00:00:00 2001 From: Simon Lejeune <sle@openerp.com> Date: Thu, 9 Nov 2017 14:07:00 +0100 Subject: [PATCH] [FIX] mrp, purchase_mrp: purchase_line_id also with kits When confirming a move for a kit, it is basically unlinked and replaced by moves for its component. The link to the purchase line was kept in v10, but since rev[1] it is not anymore. Make an helper to get the values and override it in purchase_mrp to add the purchase line link. [1] https://github.com/odoo/odoo/commit/8248f0e153ae5fcc1449d0d05149b61df615ad4f opw 779497 --- addons/mrp/models/stock_move.py | 19 +++++++++++-------- addons/purchase_mrp/models/purchase_mrp.py | 11 +++++++++++ 2 files changed, 22 insertions(+), 8 deletions(-) diff --git a/addons/mrp/models/stock_move.py b/addons/mrp/models/stock_move.py index 8641c6cf8299..670ba2881653 100644 --- a/addons/mrp/models/stock_move.py +++ b/addons/mrp/models/stock_move.py @@ -173,16 +173,19 @@ class StockMove(models.Model): self.sudo().unlink() return processed_moves + def _prepare_phantom_move_values(self, bom_line, quantity): + return { + 'picking_id': self.picking_id.id if self.picking_id else False, + 'product_id': bom_line.product_id.id, + 'product_uom': bom_line.product_uom_id.id, + 'product_uom_qty': quantity, + 'state': 'draft', # will be confirmed below + 'name': self.name, + } + def _generate_move_phantom(self, bom_line, quantity): if bom_line.product_id.type in ['product', 'consu']: - return self.copy(default={ - 'picking_id': self.picking_id.id if self.picking_id else False, - 'product_id': bom_line.product_id.id, - 'product_uom': bom_line.product_uom_id.id, - 'product_uom_qty': quantity, - 'state': 'draft', # will be confirmed below - 'name': self.name, - }) + return self.copy(default=self._prepare_phantom_move_values(bom_line, quantity)) return self.env['stock.move'] def _generate_consumed_move_line(self, qty_to_add, final_lot, lot=False): diff --git a/addons/purchase_mrp/models/purchase_mrp.py b/addons/purchase_mrp/models/purchase_mrp.py index 25bfef78e858..776b1e460467 100644 --- a/addons/purchase_mrp/models/purchase_mrp.py +++ b/addons/purchase_mrp/models/purchase_mrp.py @@ -28,3 +28,14 @@ class PurchaseOrderLine(models.Model): return self.product_qty else: return 0.0 + + +class StockMove(models.Model): + _inherit = 'stock.move' + + def _prepare_phantom_move_values(self, bom_line, quantity): + vals = super(StockMove, self)._prepare_phantom_move_values(bom_line, quantity) + if self.purchase_line_id: + vals['purchase_line_id'] = self.purchase_line_id.id + return vals + -- GitLab