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 a5d6ec9..9096c25 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
@@ -25,14 +25,23 @@
 
 	columns = get_columns(filters.periodicity, period_list, filters.accumulated_values, filters.company)
 
+
+	gross_income = get_revenue(income, period_list, 'gross')
+
+	gross_expense = get_revenue(expense, period_list, 'gross')
+
+	if(len(gross_income)==0 and len(gross_expense)== 0):
+		data.append({"account_name": "'" + _("Nothing is included in gross") + "'",
+		"account": "'" + _("Nothing is included in gross") + "'"})
+
+		return columns, data
+
 	data.append({"account_name": "'" + _("Included in Gross Profit") + "'",
 		"account": "'" + _("Included in Gross Profit") + "'"})
 
-	gross_income = get_revenue(income, period_list, 'gross')
 	data.append({})
 	data.extend(gross_income or [])
 
-	gross_expense = get_revenue(expense, period_list, 'gross')
 	data.append({})
 	data.extend(gross_expense or [])
 
@@ -48,7 +57,7 @@
 	data.append({})
 	data.extend(non_gross_expense or [])
 
-	net_profit =get_net_profit(non_gross_income, gross_income, gross_expense, non_gross_expense, period_list, filters.company,filters.presentation_currency)
+	net_profit = get_net_profit(non_gross_income, gross_income, gross_expense, non_gross_expense, period_list, filters.company,filters.presentation_currency)
 	data.append({})
 	data.append(net_profit)
 
@@ -124,7 +133,7 @@
 
 	for period in period_list:
 		key = period if consolidated else period.key
-		profit_loss[key] = flt(gross_income[0][key]) - flt(gross_expense[0][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)
 
 		if profit_loss[key]:
 			has_value=True
@@ -148,8 +157,8 @@
 
 	for period in period_list:
 		key = period if consolidated else period.key
-		total_income = flt(gross_income[0][key]) + flt(non_gross_income[0][key])
-		total_expense = flt(gross_expense[0][key]) + flt(non_gross_expense[0][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)
 		profit_loss[key] = flt(total_income) - flt(total_expense)
 
 		if profit_loss[key]:
