fix: Copy previous balance dict object instead of assigning (#26942)
- Due to plain assignment, dict mutation gave wrong monthly values
diff --git a/erpnext/stock/report/stock_analytics/stock_analytics.py b/erpnext/stock/report/stock_analytics/stock_analytics.py
index d446850..fde934b 100644
--- a/erpnext/stock/report/stock_analytics/stock_analytics.py
+++ b/erpnext/stock/report/stock_analytics/stock_analytics.py
@@ -144,7 +144,8 @@
# if period against item does not exist yet, instantiate it
# insert existing balance dict against period, and add/subtract to it
if periodic_data.get(d.item_code) and not periodic_data.get(d.item_code).get(period):
- periodic_data[d.item_code][period] = periodic_data[d.item_code]['balance']
+ previous_balance = periodic_data[d.item_code]['balance'].copy()
+ periodic_data[d.item_code][period] = previous_balance
if d.voucher_type == "Stock Reconciliation":
if periodic_data.get(d.item_code) and periodic_data.get(d.item_code).get('balance').get(d.warehouse):