From 8d734df63b601fae621cdf2028d9eb10825f920b Mon Sep 17 00:00:00 2001 From: Rohit Waghchaure Date: Tue, 9 Dec 2025 12:15:56 +0530 Subject: [PATCH] fix: performance of the reposting (cherry picked from commit 1bcfad8eb1ba5a917d890fb831db104b1e146a7a) --- erpnext/stock/stock_ledger.py | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/erpnext/stock/stock_ledger.py b/erpnext/stock/stock_ledger.py index 71a7883d644..407040c245c 100644 --- a/erpnext/stock/stock_ledger.py +++ b/erpnext/stock/stock_ledger.py @@ -718,6 +718,13 @@ class update_entries_after: {"item_code": self.item_code, "warehouse": self.args.warehouse} ) + key = (self.item_code, self.args.warehouse) + if key in self.distinct_item_warehouses and self.distinct_item_warehouses[key].get( + "transfer_entry_to_repost" + ): + # only repost stock entries + args["filter_voucher_type"] = "Stock Entry" + return list(self.get_sle_after_datetime(args)) def get_dependent_entries_to_fix(self, entries_to_fix, sle): @@ -751,8 +758,10 @@ class update_entries_after: if getdate(existing_sle.get("posting_date")) > getdate(dependant_sle.posting_date): self.distinct_item_warehouses[key] = val self.new_items_found = True - elif dependant_sle.voucher_type == "Stock Entry" and is_transfer_stock_entry( - dependant_sle.voucher_no + elif ( + dependant_sle.actual_qty > 0 + and dependant_sle.voucher_type == "Stock Entry" + and is_transfer_stock_entry(dependant_sle.voucher_no) ): if self.distinct_item_warehouses[key].get("transfer_entry_to_repost"): return @@ -1839,6 +1848,9 @@ def get_stock_ledger_entries( if operator in (">", "<=") and previous_sle.get("name"): conditions += " and name!=%(name)s" + if previous_sle.get("filter_voucher_type"): + conditions += " and voucher_type = %(filter_voucher_type)s" + if extra_cond: conditions += f"{extra_cond}"