Merge pull request #5405 from nabinhait/chart-fix

[fix] Charts in report
diff --git a/erpnext/accounts/report/accounts_receivable/accounts_receivable.py b/erpnext/accounts/report/accounts_receivable/accounts_receivable.py
index cce8509..3a594c8 100644
--- a/erpnext/accounts/report/accounts_receivable/accounts_receivable.py
+++ b/erpnext/accounts/report/accounts_receivable/accounts_receivable.py
@@ -259,19 +259,19 @@
 	def get_chart_data(self, columns, data):
 		ageing_columns = columns[self.ageing_col_idx_start : self.ageing_col_idx_start+4]
 		
-		range_totals = [[d.get("label")] for d in ageing_columns]
-		
+		rows = []
 		for d in data:
-			for i in xrange(4):
-				range_totals[i].append(d[self.ageing_col_idx_start + i])
-			
+			rows.append(d[self.ageing_col_idx_start : self.ageing_col_idx_start+4])
+
+		if rows:
+			rows.insert(0, [[d.get("label")] for d in ageing_columns])
+		
 		return {
 			"data": {
-				'columns': range_totals
+				'rows': rows
 			},
 			"chart_type": 'pie'
 		}
-		
 
 def execute(filters=None):
 	args = {
diff --git a/erpnext/accounts/report/balance_sheet/balance_sheet.py b/erpnext/accounts/report/balance_sheet/balance_sheet.py
index c41cffc..d471da6 100644
--- a/erpnext/accounts/report/balance_sheet/balance_sheet.py
+++ b/erpnext/accounts/report/balance_sheet/balance_sheet.py
@@ -76,16 +76,27 @@
 def get_chart_data(columns, asset, liability, equity):
 	x_intervals = ['x'] + [d.get("label") for d in columns[2:]]
 	
-	asset_data, liability_data, equity_data = ["Assets"], ["Liabilities"], ["Equity"]
+	asset_data, liability_data, equity_data = [], [], []
 	
 	for p in columns[2:]:
-		asset_data.append(asset[-2].get(p.get("fieldname")))
-		liability_data.append(liability[-2].get(p.get("fieldname")))
-		equity_data.append(equity[-2].get(p.get("fieldname")))
+		if asset:
+			asset_data.append(asset[-2].get(p.get("fieldname")))
+		if liability:
+			liability_data.append(liability[-2].get(p.get("fieldname")))
+		if equity:
+			equity_data.append(equity[-2].get(p.get("fieldname")))
+		
+	columns = [x_intervals]
+	if asset_data:
+		columns.append(["Assets"] + asset_data)
+	if liability_data:
+		columns.append(["Liabilities"] + liability_data)
+	if equity_data:
+		columns.append(["Equity"] + equity_data)
 
 	return {
 		"data": {
 			'x': 'x',
-			'columns': [x_intervals, asset_data, liability_data, equity_data]
+			'columns': columns
 		}
 	}
\ No newline at end of file
diff --git a/erpnext/accounts/report/profit_and_loss_statement/profit_and_loss_statement.py b/erpnext/accounts/report/profit_and_loss_statement/profit_and_loss_statement.py
index a1ab350..62d6e69 100644
--- a/erpnext/accounts/report/profit_and_loss_statement/profit_and_loss_statement.py
+++ b/erpnext/accounts/report/profit_and_loss_statement/profit_and_loss_statement.py
@@ -56,17 +56,28 @@
 def get_chart_data(filters, columns, income, expense, net_profit_loss):
 	x_intervals = ['x'] + [d.get("label") for d in columns[2:-1]]
 	
-	income_data, expense_data, net_profit = ["Income"], ["Expense"], ["Net Profit/Loss"]
+	income_data, expense_data, net_profit = [], [], []
 	
 	for p in columns[2:]:
-		income_data.append(income[-2].get(p.get("fieldname")))
-		expense_data.append(expense[-2].get(p.get("fieldname")))
-		net_profit.append(net_profit_loss.get(p.get("fieldname")))
+		if income:
+			income_data.append(income[-2].get(p.get("fieldname")))
+		if expense:
+			expense_data.append(expense[-2].get(p.get("fieldname")))
+		if net_profit_loss:
+			net_profit.append(net_profit_loss.get(p.get("fieldname")))
+			
+	columns = [x_intervals]
+	if income_data:
+		columns.append(["Income"] + income_data)
+	if expense_data:
+		columns.append(["Expense"] + expense_data)
+	if net_profit:
+		columns.append(["Net Profit/Loss"] + net_profit)
 		
 	chart = {
 		"data": {
 			'x': 'x',
-			'columns': [x_intervals, income_data, expense_data, net_profit]
+			'columns': columns
 		}
 	}