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