From 476394c58005fdcdf48db37a66cbcdedd868a4ec Mon Sep 17 00:00:00 2001 From: Arnold Moyaux Date: Tue, 18 Jan 2022 17:14:20 +0000 Subject: [PATCH] [FIX] purchase_stock: propagate supplier in multi steps X-original-commit: 1e550be1cc968940dd5c263160b8cc38e9d4e72b Part-of: odoo/odoo#83430 --- addons/purchase_stock/models/stock.py | 7 +++++++ addons/purchase_stock/models/stock_rule.py | 9 +++++++++ 2 files changed, 16 insertions(+) diff --git a/addons/purchase_stock/models/stock.py b/addons/purchase_stock/models/stock.py index 9093d91a402..add61c99a2d 100644 --- a/addons/purchase_stock/models/stock.py +++ b/addons/purchase_stock/models/stock.py @@ -89,6 +89,13 @@ class StockMove(models.Model): vals['purchase_line_id'] = self.purchase_line_id.id return vals + def _prepare_procurement_values(self): + proc_values = super()._prepare_procurement_values() + if self.restrict_partner_id: + proc_values['supplierinfo_name'] = self.restrict_partner_id + self.restrict_partner_id = False + return proc_values + def _clean_merged(self): super(StockMove, self)._clean_merged() self.write({'created_purchase_line_id': False}) diff --git a/addons/purchase_stock/models/stock_rule.py b/addons/purchase_stock/models/stock_rule.py index e81ebcec8e1..d9e659fb669 100644 --- a/addons/purchase_stock/models/stock_rule.py +++ b/addons/purchase_stock/models/stock_rule.py @@ -317,3 +317,12 @@ class StockRule(models.Model): res = super(StockRule, self)._push_prepare_move_copy_values(move_to_copy, new_date) res['purchase_line_id'] = None return res + + def _get_stock_move_values(self, product_id, product_qty, product_uom, location_id, name, origin, company_id, values): + move_values = super()._get_stock_move_values(product_id, product_qty, product_uom, location_id, name, origin, company_id, values) + if values.get('supplierinfo_name'): + move_values['restrict_partner_id'] = values['supplierinfo_name'].id + elif values.get('supplierinfo_id'): + partner = values['supplierinfo_id'].name + move_values['restrict_partner_id'] = partner.id + return move_values