Validate currency of default receivable/payable accounts
diff --git a/erpnext/accounts/party.py b/erpnext/accounts/party.py
index 381e4d4..fa65335 100644
--- a/erpnext/accounts/party.py
+++ b/erpnext/accounts/party.py
@@ -217,10 +217,18 @@
for account in doc.get("accounts"):
if account.company in companies:
- frappe.throw(_("There can only be 1 Account per Company in {0} {1}").format(doc.doctype, doc.name),
- DuplicatePartyAccountError)
+ frappe.throw(_("There can only be 1 Account per Company in {0} {1}")
+ .format(doc.doctype, doc.name), DuplicatePartyAccountError)
else:
companies.append(account.company)
+
+ party_account_currency = frappe.db.get_value("Account", account.account, "account_currency")
+ existing_gle_currency = get_party_gle_currency(doc.doctype, doc.name, account.company)
+
+ if party_account_currency != existing_gle_currency:
+ frappe.throw(_("Accounting Entry against company: {0} can only be made in currency: {1}, please check default {2} account")
+ .format(account.company, existing_gle_currency,
+ "receivable" if doc.doctype=="Customer" else "payable"))
@frappe.whitelist()
def get_due_date(posting_date, party_type, party, company):