fix: gross depends upon now report type
diff --git a/erpnext/accounts/doctype/account/account.json b/erpnext/accounts/doctype/account/account.json
index 876a392..460c025 100644
--- a/erpnext/accounts/doctype/account/account.json
+++ b/erpnext/accounts/doctype/account/account.json
@@ -640,7 +640,7 @@
"bold": 0,
"collapsible": 0,
"columns": 0,
- "depends_on": "eval:(((doc.account_type==\"Income Account\") || (doc.account_type==\"Expense Account\")) && (doc.is_group != 1))",
+ "depends_on": "eval:(doc.report_type == 'Profit and Loss' && !doc.is_group)",
"fieldname": "include_in_gross",
"fieldtype": "Check",
"hidden": 0,
@@ -678,7 +678,7 @@
"issingle": 0,
"istable": 0,
"max_attachments": 0,
- "modified": "2019-02-08 11:30:46.790603",
+ "modified": "2019-03-04 14:42:07.208893",
"modified_by": "Administrator",
"module": "Accounts",
"name": "Account",
diff --git a/erpnext/accounts/report/gross_and_net_profit_report/gross_and_net_profit_report.py b/erpnext/accounts/report/gross_and_net_profit_report/gross_and_net_profit_report.py
index a0432db..6550981 100644
--- a/erpnext/accounts/report/gross_and_net_profit_report/gross_and_net_profit_report.py
+++ b/erpnext/accounts/report/gross_and_net_profit_report/gross_and_net_profit_report.py
@@ -26,9 +26,9 @@
columns = get_columns(filters.periodicity, period_list, filters.accumulated_values, filters.company)
- gross_income = get_revenue(income, period_list, 'gross')
+ gross_income = get_revenue(income, period_list)
- gross_expense = get_revenue(expense, period_list, 'gross')
+ gross_expense = get_revenue(expense, period_list)
if(len(gross_income)==0 and len(gross_expense)== 0):
data.append({"account_name": "'" + _("Nothing is included in gross") + "'",
@@ -49,11 +49,11 @@
gross_profit = get_profit(gross_income, gross_expense, period_list, filters.company, 'Gross Profit',filters.presentation_currency)
data.append(gross_profit)
- non_gross_income = get_revenue(income, period_list, 'non_gross')
+ non_gross_income = get_revenue(income, period_list, 0)
data.append({})
data.extend(non_gross_income or [])
- non_gross_expense = get_revenue(expense, period_list, 'non_gross')
+ non_gross_expense = get_revenue(expense, period_list, 0)
data.append({})
data.extend(non_gross_expense or [])
@@ -63,21 +63,17 @@
return columns, data
-def get_revenue(data, period_list, revenue_type):
+def get_revenue(data, period_list, include_in_gross=1):
+ revenue = [item for item in data if item['include_in_gross']==include_in_gross or item['is_group']==1]
- if revenue_type == 'gross':
- revenue = [item for item in data if item['include_in_gross']==1 or item['is_group']==1]
- elif revenue_type == 'non_gross':
- revenue = [item for item in data if item['include_in_gross']==0 or item['is_group']==1]
-
- revenue, status = remove_parent_with_no_child(revenue, period_list)
- while status == "data to be removed":
- revenue, status = remove_parent_with_no_child(revenue, period_list)
+ data_to_be_removed =True
+ while data_to_be_removed:
+ revenue, data_to_be_removed = remove_parent_with_no_child(revenue, period_list)
revenue = adjust_account(revenue, period_list)
return copy.deepcopy(revenue)
def remove_parent_with_no_child(data, period_list):
- status = "nothing to remove"
+ data_to_be_removed = False
for parent in data:
if 'is_group' in parent and parent.get("is_group") == 1:
have_child = False
@@ -87,10 +83,10 @@
break
if not have_child:
- status = "data to be removed"
+ data_to_be_removed = True
data.remove(parent)
- return data, status
+ return data, data_to_be_removed
def adjust_account(data, period_list, consolidated= False):
leaf_nodes = [item for item in data if item['is_group'] == 0]
@@ -127,7 +123,7 @@
for period in period_list:
key = period if consolidated else period.key
- profit_loss[key] = flt(gross_income[0][key] if len(gross_income) else 0) - flt(gross_expense[0][key] if len(gross_expense) else 0)
+ profit_loss[key] = flt(gross_income[0].get(key, 0)) - flt(gross_expense[0].get(key, 0))
if profit_loss[key]:
has_value=True
@@ -147,8 +143,8 @@
for period in period_list:
key = period if consolidated else period.key
- total_income = flt(gross_income[0][key] if len(gross_income) else 0) + flt(non_gross_income[0][key] if len(non_gross_income) else 0)
- total_expense = flt(gross_expense[0][key] if len(gross_expense) else 0) + flt(non_gross_expense[0][key] if len(non_gross_expense) else 0)
+ total_income = flt(gross_income[0].get(key, 0)) + flt(non_gross_income[0].get(key, 0))
+ total_expense = flt(gross_expense[0].get(key, 0)) + flt(non_gross_expense[0].get(key, 0))
profit_loss[key] = flt(total_income) - flt(total_expense)
if profit_loss[key]: