fix: Fixed consumed qty based on Stock Ledger Entry (#19305)

* fix: Fixed consumed qty based on Stock Ledger Entry

* Update itemwise_recommended_reorder_level.py
diff --git a/erpnext/stock/report/itemwise_recommended_reorder_level/itemwise_recommended_reorder_level.py b/erpnext/stock/report/itemwise_recommended_reorder_level/itemwise_recommended_reorder_level.py
index c5cf6c4..9a97210 100644
--- a/erpnext/stock/report/itemwise_recommended_reorder_level/itemwise_recommended_reorder_level.py
+++ b/erpnext/stock/report/itemwise_recommended_reorder_level/itemwise_recommended_reorder_level.py
@@ -24,7 +24,7 @@
 
 	data = []
 	for item in items:
-		total_outgoing = consumed_item_map.get(item.name, 0) + delivered_item_map.get(item.name,0)
+		total_outgoing = flt(consumed_item_map.get(item.name, 0)) + flt(delivered_item_map.get(item.name,0))
 		avg_daily_outgoing = flt(total_outgoing / diff, float_preceision)
 		reorder_level = (avg_daily_outgoing * flt(item.lead_time_days)) + flt(item.safety_stock)
 
@@ -55,18 +55,20 @@
 
 
 def get_consumed_items(condition):
-	cn_items = frappe.db.sql("""select se_item.item_code,
-			sum(se_item.transfer_qty) as 'consume_qty'
-		from `tabStock Entry` se, `tabStock Entry Detail` se_item
-		where se.name = se_item.parent and se.docstatus = 1
-		and (ifnull(se_item.t_warehouse, '') = '' or se.purpose = 'Send to Subcontractor') %s
-		group by se_item.item_code""" % (condition), as_dict=1)
+	consumed_items = frappe.db.sql("""
+		select item_code, abs(sum(actual_qty)) as consumed_qty
+		from `tabStock Ledger Entry`
+		where actual_qty < 0
+			and voucher_type not in ('Delivery Note', 'Sales Invoice')
+			%s
+		group by item_code
+	""" % condition, as_dict=1)
 
-	cn_items_map = {}
-	for item in cn_items:
-		cn_items_map.setdefault(item.item_code, item.consume_qty)
+	consumed_items_map = {}
+	for item in consumed_items:
+		consumed_items_map.setdefault(item.item_code, item.consumed_qty)
 
-	return cn_items_map
+	return consumed_items_map
 
 def get_delivered_items(condition):
 	dn_items = frappe.db.sql("""select dn_item.item_code, sum(dn_item.stock_qty) as dn_qty