fix: Get data when grouped by invoice and otherwise
diff --git a/erpnext/accounts/report/gross_profit/gross_profit.py b/erpnext/accounts/report/gross_profit/gross_profit.py
index 056b56b..386c9c7 100644
--- a/erpnext/accounts/report/gross_profit/gross_profit.py
+++ b/erpnext/accounts/report/gross_profit/gross_profit.py
@@ -42,37 +42,43 @@
 	columns = get_columns(group_wise_columns, filters)
 
 	if filters.group_by == 'Invoice':
-		column_names = get_column_names()
-
-		# to display item as Item Code: Item Name
-		columns[0] = 'Sales Invoice:Link/Item:300'
-		# removing Item Code and Item Name columns
-		del columns[4:6]
-
-		for src in gross_profit_data.si_list:	
-			row = frappe._dict()
-			row.indent = src.indent
-			row.parent_invoice = src.parent_invoice
-			row.currency = filters.currency
-
-			for col in group_wise_columns.get(scrub(filters.group_by)):
-				row[column_names[col]] = src.get(col)
-
-			data.append(row)
+		get_data_when_grouped_by_invoice(columns, gross_profit_data, filters, group_wise_columns, data)
 
 	else:
-		for idx, src in enumerate(gross_profit_data.grouped_data):
-			row = []
-			for col in group_wise_columns.get(scrub(filters.group_by)):
-				row.append(src.get(col))
-
-			row.append(filters.currency)
-			if idx == len(gross_profit_data.grouped_data)-1:
-				row[0] = frappe.bold("Total")
-			data.append(row)
+		get_data_when_not_grouped_by_invoice(gross_profit_data, filters, group_wise_columns, data)
 	
 	return columns, data
 
+def get_data_when_grouped_by_invoice(columns, gross_profit_data, filters, group_wise_columns, data):
+	column_names = get_column_names()
+
+	# to display item as Item Code: Item Name
+	columns[0] = 'Sales Invoice:Link/Item:300'
+	# removing Item Code and Item Name columns
+	del columns[4:6]
+
+	for src in gross_profit_data.si_list:	
+		row = frappe._dict()
+		row.indent = src.indent
+		row.parent_invoice = src.parent_invoice
+		row.currency = filters.currency
+
+		for col in group_wise_columns.get(scrub(filters.group_by)):
+			row[column_names[col]] = src.get(col)
+
+		data.append(row)
+
+def get_data_when_not_grouped_by_invoice(gross_profit_data, filters, group_wise_columns, data):
+	for idx, src in enumerate(gross_profit_data.grouped_data):
+		row = []
+		for col in group_wise_columns.get(scrub(filters.group_by)):
+			row.append(src.get(col))
+
+		row.append(filters.currency)
+		if idx == len(gross_profit_data.grouped_data)-1:
+			row[0] = frappe.bold("Total")
+		data.append(row)
+
 def get_columns(group_wise_columns, filters):
 	columns = []
 	column_map = frappe._dict({