Merge pull request #49945 from frappe/mergify/bp/version-15-hotfix/pr-49935

refactor: old serial nos filter (backport #49935)
This commit is contained in:
rohitwaghchaure
2025-10-07 16:29:16 +05:30
committed by GitHub
2 changed files with 5 additions and 28 deletions

View File

@@ -13,10 +13,10 @@ from pypika.functions import Coalesce
class DeprecatedSerialNoValuation: class DeprecatedSerialNoValuation:
@deprecated @deprecated
def calculate_stock_value_from_deprecarated_ledgers(self): def calculate_stock_value_from_deprecarated_ledgers(self):
if not has_sle_for_serial_nos(self.sle.item_code): serial_nos = []
return if hasattr(self, "old_serial_nos"):
serial_nos = self.old_serial_nos
serial_nos = self.get_filterd_serial_nos()
if not serial_nos: if not serial_nos:
return return
@@ -26,17 +26,6 @@ class DeprecatedSerialNoValuation:
self.stock_value_change += flt(stock_value_change) 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 @deprecated
def get_incoming_value_for_serial_nos(self, serial_nos): def get_incoming_value_for_serial_nos(self, serial_nos):
from erpnext.stock.utils import get_combine_datetime from erpnext.stock.utils import get_combine_datetime
@@ -82,20 +71,6 @@ class DeprecatedSerialNoValuation:
return incoming_values 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: class DeprecatedBatchNoValuation:
@deprecated @deprecated
def calculate_avg_rate_from_deprecarated_ledgers(self): def calculate_avg_rate_from_deprecarated_ledgers(self):

View File

@@ -580,11 +580,13 @@ class SerialNoValuation(DeprecatedSerialNoValuation):
else: else:
self.serial_no_incoming_rate = defaultdict(float) self.serial_no_incoming_rate = defaultdict(float)
self.stock_value_change = 0.0 self.stock_value_change = 0.0
self.old_serial_nos = []
serial_nos = self.get_serial_nos() serial_nos = self.get_serial_nos()
for serial_no in serial_nos: for serial_no in serial_nos:
incoming_rate = self.get_incoming_rate_from_bundle(serial_no) incoming_rate = self.get_incoming_rate_from_bundle(serial_no)
if incoming_rate is None: if incoming_rate is None:
self.old_serial_nos.append(serial_no)
continue continue
self.stock_value_change += incoming_rate self.stock_value_change += incoming_rate