diff --git a/addons/stock_account/models/stock_move.py b/addons/stock_account/models/stock_move.py index a780c316a15..ba89c8ba24c 100644 --- a/addons/stock_account/models/stock_move.py +++ b/addons/stock_account/models/stock_move.py @@ -47,7 +47,7 @@ class StockMove(models.Model): layers = self.origin_returned_move_id.sudo().stock_valuation_layer_ids # dropshipping create additional positive svl to make sure there is no impact on the stock valuation # We need to remove them from the computation of the price unit. - if self.origin_returned_move_id._is_dropshipped(): + if self.origin_returned_move_id._is_dropshipped() or self.origin_returned_move_id._is_dropshipped_returned(): layers = layers.filtered(lambda l: float_compare(l.value, 0, precision_rounding=l.product_id.uom_id.rounding) <= 0) layers |= layers.stock_valuation_layer_ids quantity = sum(layers.mapped("quantity")) diff --git a/addons/stock_dropshipping/tests/test_stockvaluation.py b/addons/stock_dropshipping/tests/test_stockvaluation.py index 8af3002f84c..25f4974179e 100644 --- a/addons/stock_dropshipping/tests/test_stockvaluation.py +++ b/addons/stock_dropshipping/tests/test_stockvaluation.py @@ -323,3 +323,16 @@ class TestStockValuation(ValuationReconciliationTestCommon): self.assertTrue(8 in return_pick.move_ids.stock_valuation_layer_ids.mapped('value')) self.assertTrue(-8 in return_pick.move_ids.stock_valuation_layer_ids.mapped('value')) + + # return again to have a new dropship picking from a dropship return + stock_return_picking_form_2 = Form(self.env['stock.return.picking'] + .with_context(active_ids=return_pick.ids, active_id=return_pick.ids[0], + active_model='stock.picking')) + stock_return_picking_2 = stock_return_picking_form_2.save() + stock_return_picking_action_2 = stock_return_picking_2.create_returns() + return_pick_2 = self.env['stock.picking'].browse(stock_return_picking_action_2['res_id']) + return_pick_2.move_ids[0].move_line_ids[0].qty_done = 1.0 + return_pick_2._action_done() + + self.assertTrue(8 in return_pick_2.move_ids.stock_valuation_layer_ids.mapped('value')) + self.assertTrue(-8 in return_pick_2.move_ids.stock_valuation_layer_ids.mapped('value'))