Merge pull request #5405 from nabinhait/chart-fix

[fix] Charts in report
This commit is contained in:
Nabin Hait 2016-05-27 12:34:25 +05:30
commit 5b7f6300c8
3 changed files with 39 additions and 17 deletions

View File

@ -259,20 +259,20 @@ class ReceivablePayableReport(object):
def get_chart_data(self, columns, data): def get_chart_data(self, columns, data):
ageing_columns = columns[self.ageing_col_idx_start : self.ageing_col_idx_start+4] 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 d in data:
for i in xrange(4): rows.append(d[self.ageing_col_idx_start : self.ageing_col_idx_start+4])
range_totals[i].append(d[self.ageing_col_idx_start + i])
if rows:
rows.insert(0, [[d.get("label")] for d in ageing_columns])
return { return {
"data": { "data": {
'columns': range_totals 'rows': rows
}, },
"chart_type": 'pie' "chart_type": 'pie'
} }
def execute(filters=None): def execute(filters=None):
args = { args = {
"party_type": "Customer", "party_type": "Customer",

View File

@ -76,16 +76,27 @@ def check_opening_balance(asset, liability, equity):
def get_chart_data(columns, asset, liability, equity): def get_chart_data(columns, asset, liability, equity):
x_intervals = ['x'] + [d.get("label") for d in columns[2:]] 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:]: for p in columns[2:]:
asset_data.append(asset[-2].get(p.get("fieldname"))) if asset:
liability_data.append(liability[-2].get(p.get("fieldname"))) asset_data.append(asset[-2].get(p.get("fieldname")))
equity_data.append(equity[-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 { return {
"data": { "data": {
'x': 'x', 'x': 'x',
'columns': [x_intervals, asset_data, liability_data, equity_data] 'columns': columns
} }
} }

View File

@ -56,17 +56,28 @@ def get_net_profit_loss(income, expense, period_list, company):
def get_chart_data(filters, columns, income, expense, net_profit_loss): def get_chart_data(filters, columns, income, expense, net_profit_loss):
x_intervals = ['x'] + [d.get("label") for d in columns[2:-1]] 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:]: for p in columns[2:]:
income_data.append(income[-2].get(p.get("fieldname"))) if income:
expense_data.append(expense[-2].get(p.get("fieldname"))) income_data.append(income[-2].get(p.get("fieldname")))
net_profit.append(net_profit_loss.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 = { chart = {
"data": { "data": {
'x': 'x', 'x': 'x',
'columns': [x_intervals, income_data, expense_data, net_profit] 'columns': columns
} }
} }