diff --git a/erpnext/regional/doctype/gstr_3b_report/gstr_3b_report.py b/erpnext/regional/doctype/gstr_3b_report/gstr_3b_report.py
index 77b8a3f..090697b 100644
--- a/erpnext/regional/doctype/gstr_3b_report/gstr_3b_report.py
+++ b/erpnext/regional/doctype/gstr_3b_report/gstr_3b_report.py
@@ -334,7 +334,6 @@
 
 	def set_outward_taxable_supplies(self):
 		inter_state_supply_details = {}
-		invoice_list = {}
 		for inv, items_based_on_rate in self.items_based_on_tax_rate.items():
 			gst_category = self.invoice_detail_map.get(inv, {}).get("gst_category")
 			place_of_supply = (
@@ -342,8 +341,6 @@
 			)
 			export_type = self.invoice_detail_map.get(inv, {}).get("export_type")
 
-			invoice_list.setdefault(inv, 0.0)
-
 			for rate, items in items_based_on_rate.items():
 				for item_code, taxable_value in self.invoice_items.get(inv).items():
 					if item_code in items:
@@ -374,12 +371,10 @@
 									inter_state_supply_details[(gst_category, place_of_supply)]["iamt"] += (
 										taxable_value * rate / 100
 									)
-						invoice_list[inv] += taxable_value
 
 			if self.invoice_cess.get(inv):
 				self.report_dict["sup_details"]["osup_det"]["csamt"] += flt(self.invoice_cess.get(inv), 2)
 
-		print({k: v for k, v in sorted(invoice_list.items(), key=lambda item: item[1])})
 		self.set_inter_state_supply(inter_state_supply_details)
 
 	def set_supplies_liable_to_reverse_charge(self):
