diff --git a/stock_picking_return_lot/wizards/stock_return_picking_line.py b/stock_picking_return_lot/wizards/stock_return_picking_line.py index a7ccbb10609a..6b70db14d103 100644 --- a/stock_picking_return_lot/wizards/stock_return_picking_line.py +++ b/stock_picking_return_lot/wizards/stock_return_picking_line.py @@ -1,4 +1,5 @@ # Copyright 2024 ACSONE SA/NV +# Copyright 2026 Tecnativa - Víctor Martínez # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). from odoo import api, fields, models @@ -17,12 +18,20 @@ class StockReturnPickingLine(models.TransientModel): ) ] + lot_id_domain = fields.Binary(compute="_compute_lot_id_domain") lot_id = fields.Many2one( - "stock.lot", - string="Lot/Serial Number", - domain="[('product_id', '=', product_id)]", + "stock.lot", string="Lot/Serial Number", domain="lot_id_domain" ) + @api.depends("move_id") + def _compute_lot_id_domain(self): + for rec in self: + smls = rec.move_id.move_line_ids.filtered( + lambda x: x.state == "done" and x.lot_id + ) + domain = [("id", "in", smls.lot_id.ids)] + rec.lot_id_domain = domain + def _prepare_move_default_values(self, picking): # Set the wizard line lot as the move's restricted lot vals = super()._prepare_move_default_values(picking)