[fix] return exchange rate as 1 if no account is specified
diff --git a/erpnext/accounts/doctype/journal_entry/journal_entry.py b/erpnext/accounts/doctype/journal_entry/journal_entry.py
index ff5b37c..33192bd 100644
--- a/erpnext/accounts/doctype/journal_entry/journal_entry.py
+++ b/erpnext/accounts/doctype/journal_entry/journal_entry.py
@@ -826,17 +826,20 @@
if account_currency != company_currency:
if reference_type in ("Sales Invoice", "Purchase Invoice") and reference_name:
exchange_rate = frappe.db.get_value(reference_type, reference_name, "conversion_rate")
- elif account_details.account_type == "Bank" and \
+
+ elif account_details and account_details.account_type == "Bank" and \
((account_details.root_type == "Asset" and flt(credit) > 0) or
(account_details.root_type == "Liability" and debit)):
exchange_rate = get_average_exchange_rate(account)
- if not exchange_rate:
+ if not exchange_rate and account_currency:
exchange_rate = get_exchange_rate(account_currency, company_currency)
+
else:
exchange_rate = 1
- return exchange_rate
+ # don't return None or 0 as it is multipled with a value and that value could be lost
+ return exchange_rate or 1
def get_average_exchange_rate(account):
exchange_rate = 0