From e02a55b188a328fe791675b8b666ab78767dbea8 Mon Sep 17 00:00:00 2001 From: Rohit Waghchaure Date: Tue, 7 Oct 2025 12:00:41 +0530 Subject: [PATCH 1/2] refactor: old serial nos filter (cherry picked from commit 6a8bd0ae9e95dad94683ba112d10255614c8c053) # Conflicts: # erpnext/stock/deprecated_serial_batch.py --- erpnext/stock/deprecated_serial_batch.py | 29 ++++++++++-------------- erpnext/stock/serial_batch_bundle.py | 2 ++ 2 files changed, 14 insertions(+), 17 deletions(-) diff --git a/erpnext/stock/deprecated_serial_batch.py b/erpnext/stock/deprecated_serial_batch.py index 8d1b76148d6..44d5b8fd625 100644 --- a/erpnext/stock/deprecated_serial_batch.py +++ b/erpnext/stock/deprecated_serial_batch.py @@ -13,10 +13,10 @@ from pypika.functions import Coalesce class DeprecatedSerialNoValuation: @deprecated 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 @@ -26,6 +26,7 @@ class DeprecatedSerialNoValuation: self.stock_value_change += flt(stock_value_change) +<<<<<<< HEAD def get_filterd_serial_nos(self): serial_nos = [] non_filtered_serial_nos = self.get_serial_nos() @@ -38,6 +39,14 @@ class DeprecatedSerialNoValuation: return serial_nos @deprecated +======= + @deprecated( + "erpnext.stock.serial_batch_bundle.SerialNoValuation.get_incoming_value_for_serial_nos", + "unknown", + "v16", + "No known instructions.", + ) +>>>>>>> 6a8bd0ae9e (refactor: old serial nos filter) def get_incoming_value_for_serial_nos(self, serial_nos): from erpnext.stock.utils import get_combine_datetime @@ -82,20 +91,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 def calculate_avg_rate_from_deprecarated_ledgers(self): diff --git a/erpnext/stock/serial_batch_bundle.py b/erpnext/stock/serial_batch_bundle.py index 4c30f249ccf..2408c178f2b 100644 --- a/erpnext/stock/serial_batch_bundle.py +++ b/erpnext/stock/serial_batch_bundle.py @@ -580,11 +580,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 From 6ea07ba56dc1f838fc29fa4d7bd639fe325337c4 Mon Sep 17 00:00:00 2001 From: rohitwaghchaure Date: Tue, 7 Oct 2025 16:02:30 +0530 Subject: [PATCH 2/2] chore: fix conflicts --- erpnext/stock/deprecated_serial_batch.py | 20 -------------------- 1 file changed, 20 deletions(-) diff --git a/erpnext/stock/deprecated_serial_batch.py b/erpnext/stock/deprecated_serial_batch.py index 44d5b8fd625..69443e3a608 100644 --- a/erpnext/stock/deprecated_serial_batch.py +++ b/erpnext/stock/deprecated_serial_batch.py @@ -26,27 +26,7 @@ class DeprecatedSerialNoValuation: self.stock_value_change += flt(stock_value_change) -<<<<<<< HEAD - 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 -======= - @deprecated( - "erpnext.stock.serial_batch_bundle.SerialNoValuation.get_incoming_value_for_serial_nos", - "unknown", - "v16", - "No known instructions.", - ) ->>>>>>> 6a8bd0ae9e (refactor: old serial nos filter) def get_incoming_value_for_serial_nos(self, serial_nos): from erpnext.stock.utils import get_combine_datetime