fix: fetch acc dimension fieldname
diff --git a/erpnext/accounts/report/profitability_analysis/profitability_analysis.py b/erpnext/accounts/report/profitability_analysis/profitability_analysis.py
index c05aa94..3d6e9b5 100644
--- a/erpnext/accounts/report/profitability_analysis/profitability_analysis.py
+++ b/erpnext/accounts/report/profitability_analysis/profitability_analysis.py
@@ -6,6 +6,7 @@
 from frappe import _
 from frappe.utils import cstr, flt
 
+from erpnext.accounts.doctype.accounting_dimension.accounting_dimension import get_dimensions
 from erpnext.accounts.report.financial_statements import (
 	filter_accounts,
 	filter_out_zero_value_rows,
@@ -19,7 +20,9 @@
 	if filters.get("based_on") == "Accounting Dimension" and not filters.get("accounting_dimension"):
 		frappe.throw(_("Select Accounting Dimension."))
 
-	based_on = filters.based_on.replace(" ", "_").lower()
+	based_on = (
+		filters.based_on if filters.based_on != "Accounting Dimension" else filters.accounting_dimension
+	)
 	validate_filters(filters)
 	accounts = get_accounts_data(based_on, filters.get("company"))
 	data = get_data(accounts, filters, based_on)
@@ -28,17 +31,15 @@
 
 
 def get_accounts_data(based_on, company):
-	if based_on == "cost_center":
+	if based_on == "Cost Center":
 		return frappe.db.sql(
 			"""select name, parent_cost_center as parent_account, cost_center_name as account_name, lft, rgt
 			from `tabCost Center` where company=%s order by name""",
 			company,
 			as_dict=True,
 		)
-	elif based_on == "project":
+	elif based_on == "Project":
 		return frappe.get_all("Project", fields=["name"], filters={"company": company}, order_by="name")
-	elif based_on == "accounting_dimension":
-		return frappe.get_all("Accounting Dimension", fields=["name"], order_by="name")
 	else:
 		filters = {}
 		doctype = frappe.unscrub(based_on)
@@ -58,13 +59,17 @@
 
 	gl_entries_by_account = {}
 
+	accounting_dimensions = get_dimensions(with_cost_center_and_project=True)[0]
+	fieldname = ""
+	for dimension in accounting_dimensions:
+		if dimension["document_type"] == based_on:
+			fieldname = dimension["fieldname"]
+
 	set_gl_entries_by_account(
 		filters.get("company"),
 		filters.get("from_date"),
 		filters.get("to_date"),
-		based_on
-		if based_on != "accounting_dimension"
-		else filters.accounting_dimension.replace(" ", "_").lower(),
+		fieldname,
 		gl_entries_by_account,
 		ignore_closing_entries=not flt(filters.get("with_period_closing_entry")),
 	)