diff --git a/modules/stock_lot/CHANGELOG b/modules/stock_lot/CHANGELOG index f3bf955f97..80d69509c6 100644 --- a/modules/stock_lot/CHANGELOG +++ b/modules/stock_lot/CHANGELOG @@ -1,3 +1,4 @@ +* Show inventory as document on lot trace Version 7.2.0 - 2024-04-29 -------------------------- diff --git a/modules/stock_lot/stock.py b/modules/stock_lot/stock.py index 2d1bacef12..635be80c99 100644 --- a/modules/stock_lot/stock.py +++ b/modules/stock_lot/stock.py @@ -196,6 +196,7 @@ class LotTrace(ModelSQL, ModelView): company = fields.Many2One('company.company', "Company") date = fields.Date("Date") shipment = fields.Reference("Shipment", 'get_shipments') + origin = fields.Reference("Origin", 'get_origins') document = fields.Function( fields.Reference("Document", 'get_documents'), 'get_document') @@ -240,6 +241,7 @@ class LotTrace(ModelSQL, ModelView): move.company.as_('company'), move.effective_date.as_('date'), move.shipment.as_('shipment'), + move.origin.as_('origin'), ] def get_rec_name(self, name): @@ -251,13 +253,28 @@ class LotTrace(ModelSQL, ModelView): Move = pool.get('stock.move') return Move.get_shipment() + @classmethod + def get_origins(cls): + pool = Pool() + Move = pool.get('stock.move') + return Move.get_origin() + @classmethod def get_documents(cls): - return cls.get_shipments() + pool = Pool() + Model = pool.get('ir.model') + return cls.get_shipments() + [ + ('stock.inventory', Model.get_name('stock.inventory'))] def get_document(self, name): + pool = Pool() + InventoryLine = pool.get('stock.inventory.line') + document = None if self.shipment: - return str(self.shipment) + document = str(self.shipment) + elif isinstance(self.origin, InventoryLine): + document = str(self.origin.inventory) + return str(document) if document else None @classmethod def _is_trace_move(cls, move):