fix: GSTR-1 Report B2B fixes (#17751)

* fix: GSTR-1 Report fixes

* fix: Simply add tax if item tax is not specified
diff --git a/erpnext/regional/report/gstr_1/gstr_1.py b/erpnext/regional/report/gstr_1/gstr_1.py
index f6c4782..5aa2441 100644
--- a/erpnext/regional/report/gstr_1/gstr_1.py
+++ b/erpnext/regional/report/gstr_1/gstr_1.py
@@ -67,7 +67,8 @@
 						row.append("Y" if invoice_details.posting_date <= date(2017, 7, 1) else "N")
 						row.append("C" if invoice_details.return_against else "R")
 
-					self.data.append(row)
+					if taxable_value:
+						self.data.append(row)
 
 	def get_b2cs_data(self):
 		b2cs_output = {}
@@ -113,9 +114,14 @@
 				row.append(export_type)
 			else:
 				row.append(invoice_details.get(fieldname))
+		taxable_value = 0
+		for item_code, net_amount in self.invoice_items.get(invoice).items():
+				if item_code in items:
+					if self.item_tax_rate.get(invoice) and tax_rate == self.item_tax_rate.get(invoice, {}).get(item_code):
+						taxable_value += abs(net_amount)
+					elif not self.item_tax_rate.get(invoice):
+						taxable_value += abs(net_amount)
 
-		taxable_value = sum([abs(net_amount)
-			for item_code, net_amount in self.invoice_items.get(invoice).items() if item_code in items])
 		row += [tax_rate or 0, taxable_value]
 
 		return row, taxable_value
@@ -184,8 +190,10 @@
 
 	def get_invoice_items(self):
 		self.invoice_items = frappe._dict()
+		self.item_tax_rate = frappe._dict()
+
 		items = frappe.db.sql("""
-			select item_code, parent, base_net_amount
+			select item_code, parent, base_net_amount, item_tax_rate
 			from `tab%s Item`
 			where parent in (%s)
 		""" % (self.doctype, ', '.join(['%s']*len(self.invoices))), tuple(self.invoices), as_dict=1)
@@ -196,6 +204,12 @@
 					sum(i.get('base_net_amount', 0) for i in items
 					    if i.item_code == d.item_code and i.parent == d.parent))
 
+				item_tax_rate = json.loads(d.item_tax_rate)
+
+				if item_tax_rate:
+					for account, rate in item_tax_rate.items():
+						self.item_tax_rate.setdefault(d.parent, {}).setdefault(d.item_code, rate)
+
 	def get_items_based_on_tax_rate(self):
 		self.tax_details = frappe.db.sql("""
 			select