From d37b12f38586b030db4eb86c29a4c86dbd06bdb4 Mon Sep 17 00:00:00 2001 From: rohitwaghchaure Date: Tue, 27 May 2025 13:23:40 +0530 Subject: [PATCH] fix: incorrect status in the serial no (#47740) --- erpnext/stock/doctype/serial_no/serial_no.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/erpnext/stock/doctype/serial_no/serial_no.py b/erpnext/stock/doctype/serial_no/serial_no.py index 654f28e661c..bc4d4998d0b 100644 --- a/erpnext/stock/doctype/serial_no/serial_no.py +++ b/erpnext/stock/doctype/serial_no/serial_no.py @@ -178,13 +178,13 @@ class SerialNo(StockController): entries = {} sle_dict = self.get_stock_ledger_entries(serial_no) if sle_dict: + last_sle = sle_dict.get("last_sle") or {} + entries["last_sle"] = last_sle + if sle_dict.get("incoming", []): entries["purchase_sle"] = sle_dict["incoming"][-1] - if len(sle_dict.get("incoming", [])) - len(sle_dict.get("outgoing", [])) > 0: - entries["last_sle"] = sle_dict["incoming"][0] - else: - entries["last_sle"] = sle_dict["outgoing"][0] + if last_sle.get("actual_qty") < 0 and sle_dict.get("outgoing", []): entries["delivery_sle"] = sle_dict["outgoing"][0] return entries @@ -221,6 +221,9 @@ class SerialNo(StockController): as_dict=1, ): if serial_no.upper() in get_serial_nos(sle.serial_no): + if "last_sle" not in sle_dict: + sle_dict["last_sle"] = sle + if cint(sle.actual_qty) > 0: sle_dict.setdefault("incoming", []).append(sle) else: