From 6a8bd0ae9e95dad94683ba112d10255614c8c053 Mon Sep 17 00:00:00 2001 From: Rohit Waghchaure Date: Tue, 7 Oct 2025 12:00:41 +0530 Subject: [PATCH] refactor: old serial nos filter --- erpnext/stock/deprecated_serial_batch.py | 31 +++--------------------- erpnext/stock/serial_batch_bundle.py | 2 ++ 2 files changed, 5 insertions(+), 28 deletions(-) diff --git a/erpnext/stock/deprecated_serial_batch.py b/erpnext/stock/deprecated_serial_batch.py index 66adb9076b0..bae60c26344 100644 --- a/erpnext/stock/deprecated_serial_batch.py +++ b/erpnext/stock/deprecated_serial_batch.py @@ -19,10 +19,10 @@ class DeprecatedSerialNoValuation: "No known instructions.", ) def calculate_stock_value_from_deprecarated_ledgers(self): - if not has_sle_for_serial_nos(self.sle.item_code): - return + serial_nos = [] + if hasattr(self, "old_serial_nos"): + serial_nos = self.old_serial_nos - serial_nos = self.get_filterd_serial_nos() if not serial_nos: return @@ -32,17 +32,6 @@ class DeprecatedSerialNoValuation: self.stock_value_change += flt(stock_value_change) - def get_filterd_serial_nos(self): - serial_nos = [] - non_filtered_serial_nos = self.get_serial_nos() - - # If the serial no inwarded using the Serial and Batch Bundle, then the serial no should not be considered - for serial_no in non_filtered_serial_nos: - if serial_no and serial_no not in self.serial_no_incoming_rate: - serial_nos.append(serial_no) - - return serial_nos - @deprecated( "erpnext.stock.serial_batch_bundle.SerialNoValuation.get_incoming_value_for_serial_nos", "unknown", @@ -96,20 +85,6 @@ class DeprecatedSerialNoValuation: return incoming_values -@frappe.request_cache -def has_sle_for_serial_nos(item_code): - serial_nos = frappe.db.get_all( - "Stock Ledger Entry", - fields=["name"], - filters={"serial_no": ("is", "set"), "is_cancelled": 0, "item_code": item_code}, - limit=1, - ) - if serial_nos: - return True - - return False - - class DeprecatedBatchNoValuation: @deprecated( "erpnext.stock.serial_batch_bundle.BatchNoValuation.calculate_avg_rate_from_deprecarated_ledgers", diff --git a/erpnext/stock/serial_batch_bundle.py b/erpnext/stock/serial_batch_bundle.py index ac91730bee7..a080fa6cfff 100644 --- a/erpnext/stock/serial_batch_bundle.py +++ b/erpnext/stock/serial_batch_bundle.py @@ -613,11 +613,13 @@ class SerialNoValuation(DeprecatedSerialNoValuation): else: self.serial_no_incoming_rate = defaultdict(float) self.stock_value_change = 0.0 + self.old_serial_nos = [] serial_nos = self.get_serial_nos() for serial_no in serial_nos: incoming_rate = self.get_incoming_rate_from_bundle(serial_no) if incoming_rate is None: + self.old_serial_nos.append(serial_no) continue self.stock_value_change += incoming_rate