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}"