diff --git a/erpnext/accounts/doctype/journal_entry/journal_entry.py b/erpnext/accounts/doctype/journal_entry/journal_entry.py
index ddf6460..79f1ab0 100644
--- a/erpnext/accounts/doctype/journal_entry/journal_entry.py
+++ b/erpnext/accounts/doctype/journal_entry/journal_entry.py
@@ -1031,10 +1031,6 @@
 
 	def build_gl_map(self):
 		gl_map = []
-		conversion_rate_map = self.get_conversion_rate_map()
-		transaction_currency_map = self.get_transaction_currency_map()
-		company_currency = erpnext.get_company_currency(self.company)
-
 		self.get_against_accounts()
 		for d in self.get("accounts"):
 			if d.debit or d.credit or (self.voucher_type == "Exchange Gain Or Loss"):
@@ -1064,12 +1060,6 @@
 						"cost_center": d.cost_center,
 						"project": d.project,
 						"finance_book": self.finance_book,
-						"conversion_rate": conversion_rate_map.get(d.against_account_link, 1)
-						if d.account_currency == company_currency
-						else 1,
-						"currency": transaction_currency_map.get(d.against_account_link, d.account_currency)
-						if d.account_currency == company_currency
-						else d.account_currency,
 					},
 					item=d,
 				)
@@ -1119,20 +1109,6 @@
 
 		return gl_map
 
-	def get_transaction_currency_map(self):
-		transaction_currency_map = {}
-		for account in self.get("accounts"):
-			transaction_currency_map.setdefault(account.party or account.account, account.account_currency)
-
-		return transaction_currency_map
-
-	def get_conversion_rate_map(self):
-		conversion_rate_map = {}
-		for account in self.get("accounts"):
-			conversion_rate_map.setdefault(account.party or account.account, account.exchange_rate)
-
-		return conversion_rate_map
-
 	def make_gl_entries(self, cancel=0, adv_adj=0):
 		from erpnext.accounts.general_ledger import make_gl_entries
 
diff --git a/erpnext/controllers/accounts_controller.py b/erpnext/controllers/accounts_controller.py
index dfc1cb7..aef3d31 100644
--- a/erpnext/controllers/accounts_controller.py
+++ b/erpnext/controllers/accounts_controller.py
@@ -930,7 +930,7 @@
 		# Update details in transaction currency
 		gl_dict.update(
 			{
-				"transaction_currency": args.get("currency") or self.get("currency") or self.company_currency,
+				"transaction_currency": self.get("currency") or self.company_currency,
 				"transaction_exchange_rate": self.get("conversion_rate", 1),
 				"debit_in_transaction_currency": self.get_value_in_transaction_currency(
 					account_currency, args, "debit"
@@ -969,10 +969,10 @@
 		return self.doctype
 
 	def get_value_in_transaction_currency(self, account_currency, args, field):
-		if account_currency == args.get("currency") or self.get("currency"):
+		if account_currency == self.get("currency"):
 			return args.get(field + "_in_account_currency")
 		else:
-			return flt(args.get(field, 0) / (args.get("conversion_rate") or self.get("conversion_rate", 1)))
+			return flt(args.get(field, 0) / self.get("conversion_rate", 1))
 
 	def validate_qty_is_not_zero(self):
 		for item in self.items:
