diff --git a/addons/delivery/models/stock_move.py b/addons/delivery/models/stock_move.py index c5b81f1cd51..49ace8ec7ef 100644 --- a/addons/delivery/models/stock_move.py +++ b/addons/delivery/models/stock_move.py @@ -25,3 +25,19 @@ class StockMove(models.Model): def _key_assign_picking(self): keys = super(StockMove, self)._key_assign_picking() return keys + (self.sale_line_id.order_id.carrier_id,) + +class StockMoveLine(models.Model): + _inherit = 'stock.move.line' + + sale_price = fields.Float(compute='_compute_sale_price') + + @api.depends('qty_done', 'product_uom_id', 'product_id', 'move_id.sale_line_id', 'move_id.sale_line_id.price_reduce_taxinc', 'move_id.sale_line_id.product_uom') + def _compute_sale_price(self): + for move_line in self: + if move_line.move_id.sale_line_id: + unit_price = move_line.move_id.sale_line_id.price_reduce_taxinc + qty = move_line.product_uom_id._compute_quantity(move_line.qty_done, move_line.move_id.sale_line_id.product_uom) + else: + unit_price = move_line.product_id.list_price + qty = move_line.product_uom_id._compute_quantity(move_line.qty_done, move_line.product_id.uom_id) + move_line.sale_price = unit_price * qty diff --git a/addons/delivery/models/stock_picking.py b/addons/delivery/models/stock_picking.py index 46af527b1aa..199f2fa9695 100644 --- a/addons/delivery/models/stock_picking.py +++ b/addons/delivery/models/stock_picking.py @@ -63,7 +63,7 @@ class StockPicking(models.Model): weight += move_line.product_uom_id._compute_quantity(move_line.qty_done, move_line.product_id.uom_id) * move_line.product_id.weight picking.weight_bulk = weight - @api.depends('package_ids', 'package_ids.shipping_weight', 'weight_bulk') + @api.depends('move_line_ids.result_package_id', 'move_line_ids.result_package_id.shipping_weight', 'weight_bulk') def _compute_shipping_weight(self): for picking in self: picking.shipping_weight = picking.weight_bulk + sum([pack.shipping_weight for pack in picking.package_ids])