fixes #9098: don't skip calculation if income or expense is [] (#9267)

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 95085b9..6729d67 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
@@ -34,28 +34,31 @@
 	return columns, data, None, chart
 
 def get_net_profit_loss(income, expense, period_list, company):
-	if income and expense:
-		total = 0
-		net_profit_loss = {
-			"account_name": "'" + _("Net Profit / Loss") + "'",
-			"account": "'" + _("Net Profit / Loss") + "'",
-			"warn_if_negative": True,
-			"currency": frappe.db.get_value("Company", company, "default_currency")
-		}
+	total = 0
+	net_profit_loss = {
+		"account_name": "'" + _("Net Profit / Loss") + "'",
+		"account": "'" + _("Net Profit / Loss") + "'",
+		"warn_if_negative": True,
+		"currency": frappe.db.get_value("Company", company, "default_currency")
+	}
 
-		has_value = False
+	has_value = False
 
-		for period in period_list:
-			net_profit_loss[period.key] = flt(income[-2][period.key] - expense[-2][period.key], 3)
+	for period in period_list:
+		total_income = flt(income[-2][period.key], 3) if income else 0
+		total_expense = flt(expense[-2][period.key], 3) if expense else 0
 
-			if net_profit_loss[period.key]:
-				has_value=True
+		net_profit_loss[period.key] = total_income - total_expense
 
-			total += flt(net_profit_loss[period.key])
-			net_profit_loss["total"] = total
+		if net_profit_loss[period.key]:
+			has_value=True
 
-		if has_value:
-			return net_profit_loss
+		total += flt(net_profit_loss[period.key])
+		net_profit_loss["total"] = total
+
+	if has_value:
+		return 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:]]