Trends Analyzer cleanup finished
diff --git a/controllers/trends.py b/controllers/trends.py
index bbab01e..acbc744 100644
--- a/controllers/trends.py
+++ b/controllers/trends.py
@@ -23,18 +23,20 @@
 	validate_filters(filters)
 	
 	# get conditions for based_on filter cond
-	based_on_cols, based_on_select, based_on_group_by, addl_tables = based_wise_colums_query(filters.get("based_on"), trans)
+	based_on_details = based_wise_colums_query(filters.get("based_on"), trans)
 	# get conditions for periodic filter cond
 	period_cols, period_select = period_wise_colums_query(filters, trans)
 	# get conditions for grouping filter cond
 	group_by_cols = group_wise_column(filters.get("group_by"))
 
-	columns = based_on_cols + period_cols + ["Total(Qty):Float:120", "Total(Amt):Currency:120"]
+	columns = based_on_details["based_on_cols"] + period_cols + ["Total(Qty):Float:120", "Total(Amt):Currency:120"]
 	if group_by_cols:	
-		columns = based_on_cols + group_by_cols + period_cols +["Total(Qty):Float:120", "Total(Amt):Currency:120"] 
+		columns = based_on_details["based_on_cols"] + group_by_cols + period_cols + \
+			["Total(Qty):Float:120", "Total(Amt):Currency:120"] 
 
-	conditions = {"based_on_select": based_on_select, "period_wise_select": period_select, "columns": columns, 
-		"group_by": based_on_group_by, "grbc": group_by_cols, "sup_tab": addl_tables, "trans": trans}
+	conditions = {"based_on_select": based_on_details["based_on_select"], "period_wise_select": period_select, 
+		"columns": columns, "group_by": based_on_details["based_on_group_by"], "grbc": group_by_cols, "trans": trans, 
+		"addl_tables": based_on_details["addl_tables"]}
 
 	return conditions
 
@@ -73,7 +75,7 @@
 					where t2.parent = t1.name and t1.company = %s 
 					and t1.fiscal_year = %s and t1.docstatus = 1 %s 
 					group by %s 
-				""" % (query_details,  conditions["trans"],  conditions["trans"], conditions["sup_tab"], "%s", 
+				""" % (query_details,  conditions["trans"],  conditions["trans"], conditions["addl_tables"], "%s", 
 					"%s", cond, conditions["group_by"]), (filters.get("company"), 
 					filters["fiscal_year"]),as_list=1)
 
@@ -87,7 +89,7 @@
 			row = webnotes.conn.sql("""select DISTINCT(%s) from `tab%s` t1, `tab%s Item` t2 %s
 						where t2.parent = t1.name and t1.company = %s and t1.fiscal_year = %s 
 						and t1.docstatus = 1 and %s = %s 
-					"""%(sel_col,  conditions["trans"],  conditions["trans"], conditions["sup_tab"], "%s", "%s",
+					"""%(sel_col,  conditions["trans"],  conditions["trans"], conditions["addl_tables"], "%s", "%s",
 				 	conditions["group_by"], "%s"),	(filters.get("company"), filters.get("fiscal_year"), 
 				 	data1[d][0]), as_list=1)
 
@@ -99,7 +101,7 @@
 							where t2.parent = t1.name and t1.company = %s and t1.fiscal_year = %s 
 							and t1.docstatus = 1 and %s = %s and %s = %s 
 						""" % (sel_col, conditions["period_wise_select"], conditions["trans"],  conditions["trans"], 
-						conditions["sup_tab"], "%s", "%s", sel_col, "%s", conditions["group_by"], "%s"), 
+						conditions["addl_tables"], "%s", "%s", sel_col, "%s", conditions["group_by"], "%s"), 
 						(filters.get("company"), filters.get("fiscal_year"), row[i][0], data1[d][0]), as_list=1)
 
 				des[ind] = row[i]
@@ -108,12 +110,12 @@
 					
 				data.append(des)
 	else:
-		webnotes.errprint(["hii", conditions["sup_tab"]])
+		webnotes.errprint(["hii", conditions["addl_tables"]])
 		data = webnotes.conn.sql(""" select %s from `tab%s` t1, `tab%s Item` t2 %s
 					where t2.parent = t1.name and t1.company = %s 
 					and t1.fiscal_year = %s and t1.docstatus = 1 %s 
 					group by %s	
-				"""%(query_details, conditions["trans"], conditions["trans"], conditions["sup_tab"], "%s", 
+				"""%(query_details, conditions["trans"], conditions["trans"], conditions["addl_tables"], "%s", 
 					"%s", cond,conditions["group_by"]), (filters.get("company"), 
 					filters.get("fiscal_year")), as_list=1)
 
@@ -191,58 +193,66 @@
 	return period_month_ranges
 
 def based_wise_colums_query(based_on, trans):
-	sup_tab = ''
+	based_on_details = {}
 
+	# based_on_cols, based_on_select, based_on_group_by, addl_tables
 	if based_on == "Item":
-		bon = ["Item:Link/Item:120", "Item Name:Data:120"]
-		query_details = "t2.item_code, t2.item_name," 
-		based = 't2.item_code'
+		based_on_details["based_on_cols"] = ["Item:Link/Item:120", "Item Name:Data:120"]
+		based_on_details["based_on_select"] = "t2.item_code, t2.item_name," 
+		based_on_details["based_on_group_by"] = 't2.item_code'
+		based_on_details["addl_tables"] = ''
 
 	elif based_on == "Item Group":
-		bon = ["Item Group:Link/Item Group:120"]
-		query_details = "t2.item_group," 
-		based = 't2.item_group'
+		based_on_details["based_on_cols"] = ["Item Group:Link/Item Group:120"]
+		based_on_details["based_on_select"] = "t2.item_group," 
+		based_on_details["based_on_group_by"] = 't2.item_group'
+		based_on_details["addl_tables"] = ''
 
 	elif based_on == "Customer":
-		bon = ["Customer:Link/Customer:120", "Territory:Link/Territory:120"]
-		query_details = "t1.customer_name, t1.territory, "
-		based = 't1.customer_name'
+		based_on_details["based_on_cols"] = ["Customer:Link/Customer:120", "Territory:Link/Territory:120"]
+		based_on_details["based_on_select"] = "t1.customer_name, t1.territory, "
+		based_on_details["based_on_group_by"] = 't1.customer_name'
+		based_on_details["addl_tables"] = ''
 
 	elif based_on == "Customer Group":
-		bon = ["Customer Group:Link/Customer Group"]
-		query_details = "t1.customer_group,"
-		based = 't1.customer_group'
-	
+		based_on_details["based_on_cols"] = ["Customer Group:Link/Customer Group"]
+		based_on_details["based_on_select"] = "t1.customer_group,"
+		based_on_details["based_on_group_by"] = 't1.customer_group'
+		based_on_details["addl_tables"] = ''
+
 	elif based_on == 'Supplier':
-		bon = ["Supplier:Link/Supplier:120", "Supplier Type:Link/Supplier Type:120"]
-		query_details = "t1.supplier, t3.supplier_type,"
-		based = 't1.supplier'
-		sup_tab = ',`tabSupplier` t3'
+		based_on_details["based_on_cols"] = ["Supplier:Link/Supplier:120", "Supplier Type:Link/Supplier Type:140"]
+		based_on_details["based_on_select"] = "t1.supplier, t3.supplier_type,"
+		based_on_details["based_on_group_by"] = 't1.supplier'
+		based_on_details["addl_tables"] = ',`tabSupplier` t3'
 	
 	elif based_on == 'Supplier Type':
-		bon = ["Supplier Type:Link/Supplier Type:120"]
-		query_details = "t3.supplier_type,"
-		based = 't3.supplier_type'
-		sup_tab =',`tabSupplier` t3'
+		based_on_details["based_on_cols"] = ["Supplier Type:Link/Supplier Type:140"]
+		based_on_details["based_on_select"] = "t3.supplier_type,"
+		based_on_details["based_on_group_by"] = 't3.supplier_type'
+		based_on_details["addl_tables"] =',`tabSupplier` t3'
 
 	elif based_on == "Territory":
-		bon = ["Territory:Link/Territory:120"]
-		query_details = "t1.territory,"
-		based = 't1.territory'
+		based_on_details["based_on_cols"] = ["Territory:Link/Territory:120"]
+		based_on_details["based_on_select"] = "t1.territory,"
+		based_on_details["based_on_group_by"] = 't1.territory'
+		based_on_details["addl_tables"] = ''
 
 	elif based_on == "Project":
 		if trans in ['Sales Invoice', 'Delivery Note', 'Sales Order']:
-			bon = ["Project:Link/Project:120"]
-			query_details = "t1.project_name,"
-			based = 't1.project_name'
+			based_on_details["based_on_cols"] = ["Project:Link/Project:120"]
+			based_on_details["based_on_select"] = "t1.project_name,"
+			based_on_details["based_on_group_by"] = 't1.project_name'
+			based_on_details["addl_tables"] = ''
 		elif trans in ['Purchase Order', 'Purchase Invoice', 'Purchase Receipt']:
-			bon = ["Project:Link/Project:120"]
-			query_details = "t2.project_name,"
-			based = 't2.project_name'
+			based_on_details["based_on_cols"] = ["Project:Link/Project:120"]
+			based_on_details["based_on_select"] = "t2.project_name,"
+			based_on_details["based_on_group_by"] = 't2.project_name'
+			based_on_details["addl_tables"] = ''
 		else:
 			webnotes.msgprint("Project-wise data is not available for Quotation", raise_exception=1)
 
-	return bon, query_details, based, sup_tab
+	return based_on_details
 
 def group_wise_column(group_by):
 	if group_by: