diff --git a/erpnext/accounts/doctype/payment_entry/payment_entry.py b/erpnext/accounts/doctype/payment_entry/payment_entry.py
index 736048f..ac8e707 100644
--- a/erpnext/accounts/doctype/payment_entry/payment_entry.py
+++ b/erpnext/accounts/doctype/payment_entry/payment_entry.py
@@ -482,7 +482,7 @@
 
 		self.received_amount_after_tax = flt(flt(self.received_amount) + flt(applicable_tax),
 			self.precision("paid_amount_after_tax"))
-		self.base_received_amount_after_tax = flt(flt(self.received_amount_after_tax) * flt(self.source_exchange_rate),
+		self.base_received_amount_after_tax = flt(flt(self.received_amount_after_tax) * flt(self.target_exchange_rate),
 			self.precision("base_paid_amount_after_tax"))
 
 	def set_amounts_in_company_currency(self):
@@ -720,8 +720,8 @@
 					"against": self.party if self.payment_type=="Receive" else self.paid_from,
 					dr_or_cr: d.base_tax_amount,
 					dr_or_cr + "_in_account_currency": d.base_tax_amount
-						if account_currency==self.company_currency
-						else d.tax_amount,
+					if account_currency==self.company_currency
+					else d.tax_amount,
 					"cost_center": d.cost_center
 				}, account_currency, item=d))
 
@@ -731,8 +731,8 @@
 					"against": self.party if self.payment_type=="Receive" else self.paid_from,
 					rev_dr_cr: d.base_tax_amount,
 					rev_dr_cr + "_in_account_currency": d.base_tax_amount
-						if account_currency==self.company_currency
-						else d.tax_amount,
+					if account_currency==self.company_currency
+					else d.tax_amount,
 					"cost_center": d.cost_center or self.cost_center
 				}, account_currency, item=d))
 
@@ -804,7 +804,7 @@
 		self.total_taxes_and_charges = 0.0
 		self.base_total_taxes_and_charges = 0.0
 
-		for i, tax in enumerate(self.taxes):
+		for i, tax in enumerate(self.get('taxes')):
 			tax_rate = tax.rate
 
 			# To set row_id by default as previous row.
@@ -821,11 +821,11 @@
 				current_tax_amount = (tax_rate / 100.0) * self.paid_amount
 			elif tax.charge_type == "On Previous Row Amount":
 				current_tax_amount = (tax_rate / 100.0) * \
-					self.taxes[cint(tax.row_id) - 1].tax_amount
+					self.get('taxes')[cint(tax.row_id) - 1].tax_amount
 
 			elif tax.charge_type == "On Previous Row Total":
 				current_tax_amount = (tax_rate / 100.0) * \
-					self.taxes[cint(tax.row_id) - 1].total
+					self.get('taxes')[cint(tax.row_id) - 1].total
 
 			tax.tax_amount = current_tax_amount
 			tax.base_tax_amount = tax.tax_amount * self.source_exchange_rate
@@ -839,7 +839,7 @@
 				if i == 0:
 					tax.total = flt(self.paid_amount + current_tax_amount, self.precision("total", tax))
 				else:
-					tax.total = flt(self.taxes[i-1].total + current_tax_amount, self.precision("total", tax))
+					tax.total = flt(self.get('taxes')[i-1].total + current_tax_amount, self.precision("total", tax))
 
 				tax.base_total = tax.total * self.source_exchange_rate
 
