fix: incorrect balance qty in stock ledger if batch filter set (#19479)
diff --git a/erpnext/stock/report/stock_ledger/stock_ledger.py b/erpnext/stock/report/stock_ledger/stock_ledger.py
index 5bdbca2..db7f6ad 100644
--- a/erpnext/stock/report/stock_ledger/stock_ledger.py
+++ b/erpnext/stock/report/stock_ledger/stock_ledger.py
@@ -19,10 +19,26 @@
if opening_row:
data.append(opening_row)
+ actual_qty = stock_value = 0
+
for sle in sl_entries:
item_detail = item_details[sle.item_code]
sle.update(item_detail)
+
+ if filters.get("batch_no"):
+ actual_qty += sle.actual_qty
+ stock_value += sle.stock_value_difference
+
+ if sle.voucher_type == 'Stock Reconciliation':
+ actual_qty = sle.qty_after_transaction
+ stock_value = sle.stock_value
+
+ sle.update({
+ "qty_after_transaction": actual_qty,
+ "stock_value": stock_value
+ })
+
data.append(sle)
if include_uom:
@@ -67,7 +83,7 @@
return frappe.db.sql("""select concat_ws(" ", posting_date, posting_time) as date,
item_code, warehouse, actual_qty, qty_after_transaction, incoming_rate, valuation_rate,
- stock_value, voucher_type, voucher_no, batch_no, serial_no, company, project
+ stock_value, voucher_type, voucher_no, batch_no, serial_no, company, project, stock_value_difference
from `tabStock Ledger Entry` sle
where company = %(company)s and
posting_date between %(from_date)s and %(to_date)s