fix: Add party account validation for journal entry
diff --git a/erpnext/accounts/doctype/journal_entry/journal_entry.py b/erpnext/accounts/doctype/journal_entry/journal_entry.py
index 937597b..44a0182 100644
--- a/erpnext/accounts/doctype/journal_entry/journal_entry.py
+++ b/erpnext/accounts/doctype/journal_entry/journal_entry.py
@@ -37,6 +37,7 @@
self.validate_party()
self.validate_entries_for_advance()
self.validate_multi_currency()
+ self.validate_party_account_currency()
self.set_amounts_in_company_currency()
self.validate_debit_credit_amount()
@@ -433,6 +434,18 @@
self.set_exchange_rate()
+ def validate_party_account_currency(self):
+ for d in self.get("accounts"):
+ if self.party_type not in ('Customer', 'Supplier'):
+ continue
+
+ party_gle_currency = get_party_gle_currency(self.party_type, self.party, self.company)
+ party_account_currency = get_account_currency(d.account)
+
+ if not party_gle_currency and (party_account_currency != self.currency):
+ frappe.throw(_("Row {0}: Party Account {1} currency and document currency should be same").format(
+ frappe.bold(d.idx), frappe.bold(d.account)))
+
def set_amounts_in_company_currency(self):
for d in self.get("accounts"):
d.debit_in_account_currency = flt(d.debit_in_account_currency, d.precision("debit_in_account_currency"))