Mode of Payment validate
Error when Same Company is entered multiple times in accounts
Error when Company of Ledger account doesn't match with Company Selected
diff --git a/erpnext/accounts/doctype/mode_of_payment/mode_of_payment.py b/erpnext/accounts/doctype/mode_of_payment/mode_of_payment.py
index e827e48..4a9ea9c 100644
--- a/erpnext/accounts/doctype/mode_of_payment/mode_of_payment.py
+++ b/erpnext/accounts/doctype/mode_of_payment/mode_of_payment.py
@@ -5,6 +5,32 @@
import frappe
from frappe.model.document import Document
+from frappe import _
class ModeofPayment(Document):
- pass
+ def validate(self):
+ self.validate_accounts()
+ self.validate_repeating_companies()
+
+ def validate_repeating_companies(self):
+ """Error when Same Company is entered multiple times in accounts"""
+ accounts_list = []
+ for entry in self.accounts:
+ accounts_list.append(entry.company)
+
+ if len(accounts_list)!= len(set(accounts_list)):
+ frappe.throw(_("Same Company is entered more than once"))
+
+ def validate_accounts(self):
+ for entry in self.accounts:
+ """Error when Company of Ledger account doesn't match with Company Selected"""
+ account = frappe.get_list("Account",
+ fields=["name"],
+ filters = {
+ "company": entry.company,
+ "name": entry.default_account
+ })
+ try:
+ account[0].name
+ except IndexError:
+ frappe.throw(_("Account does not match with Company"))