diff --git a/addons/mrp/models/stock_move.py b/addons/mrp/models/stock_move.py index cc1ac61738e..d4e0ca36d5b 100644 --- a/addons/mrp/models/stock_move.py +++ b/addons/mrp/models/stock_move.py @@ -520,8 +520,3 @@ class StockMove(models.Model): self.move_line_ids = self._set_quantity_done_prepare_vals(quantity_done) else: super()._multi_line_quantity_done_set(quantity_done) - - def _prepare_extra_move_vals(self, qty): - vals = super()._prepare_extra_move_vals(qty) - vals['date_deadline'] = self.date_deadline - return vals diff --git a/addons/sale_stock/models/sale_order_line.py b/addons/sale_stock/models/sale_order_line.py index 3ac1fab0e6f..2c63eb0d008 100644 --- a/addons/sale_stock/models/sale_order_line.py +++ b/addons/sale_stock/models/sale_order_line.py @@ -295,6 +295,8 @@ class SaleOrderLine(models.Model): sale order line. procurement group will launch '_run_pull', '_run_buy' or '_run_manufacture' depending on the sale order line product rule. """ + if self._context.get("skip_procurement"): + return True precision = self.env['decimal.precision'].precision_get('Product Unit of Measure') procurements = [] for line in self: diff --git a/addons/sale_stock/models/stock.py b/addons/sale_stock/models/stock.py index 65ce97dc2d2..8660d7b6134 100644 --- a/addons/sale_stock/models/stock.py +++ b/addons/sale_stock/models/stock.py @@ -110,7 +110,7 @@ class StockPicking(models.Model): sale_order_lines_vals.append(so_line_vals) if sale_order_lines_vals: - self.env['sale.order.line'].create(sale_order_lines_vals) + self.env['sale.order.line'].with_context(skip_procurement=True).create(sale_order_lines_vals) return res def _log_less_quantities_than_expected(self, moves): diff --git a/addons/sale_stock/tests/test_sale_stock.py b/addons/sale_stock/tests/test_sale_stock.py index 0bf7bd64bee..0be8b7d80f0 100644 --- a/addons/sale_stock/tests/test_sale_stock.py +++ b/addons/sale_stock/tests/test_sale_stock.py @@ -794,6 +794,7 @@ class TestSaleStock(TestSaleCommon, ValuationReconciliationTestCommon): self.assertEqual(len(sale_order.order_line), 1) self.assertEqual(sale_order.order_line.qty_delivered, 0) picking = sale_order.picking_ids + initial_product = sale_order.order_line.product_id picking_form = Form(picking) with picking_form.move_line_ids_without_package.edit(0) as move: @@ -819,6 +820,12 @@ class TestSaleStock(TestSaleCommon, ValuationReconciliationTestCommon): so_line_2.price_unit, 0, "Shouldn't get the product price as the invoice policy is on qty. ordered") + # Check the picking didn't change + self.assertRecordValues(sale_order.picking_ids.move_ids, [ + {'product_id': initial_product.id, 'quantity_done': 5}, + {'product_id': product_inv_on_order.id, 'quantity_done': 5}, + ]) + # Creates a second sale order for 3 product invoiced on qty. ordered. sale_order = self._get_new_sale_order(product=product_inv_on_order, amount=3) # Confirms the sale order, then increases the delivered qty., adds a new diff --git a/addons/stock/models/stock_move.py b/addons/stock/models/stock_move.py index bba0daa8d2d..f99178db75b 100644 --- a/addons/stock/models/stock_move.py +++ b/addons/stock/models/stock_move.py @@ -1580,6 +1580,7 @@ class StockMove(models.Model): 'product_uom_qty': qty, 'picking_id': self.picking_id.id, 'price_unit': self.price_unit, + 'date_deadline': self.date_deadline, } return vals