From 71976de79c564bb3d1bbac656275a3d7064c2489 Mon Sep 17 00:00:00 2001 From: Deepesh Garg Date: Thu, 21 Jan 2021 17:54:16 +0530 Subject: [PATCH] fix: Internal Party validation fix --- erpnext/buying/doctype/supplier/supplier.py | 5 ++++- erpnext/public/js/controllers/transaction.js | 8 ++++++-- erpnext/selling/doctype/customer/customer.py | 5 ++++- 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/erpnext/buying/doctype/supplier/supplier.py b/erpnext/buying/doctype/supplier/supplier.py index 0ee9d180d99..edeb135d951 100644 --- a/erpnext/buying/doctype/supplier/supplier.py +++ b/erpnext/buying/doctype/supplier/supplier.py @@ -52,7 +52,10 @@ class Supplier(TransactionBase): self.validate_internal_supplier() def validate_internal_supplier(self): - if self.is_internal_supplier and frappe.db.get_value("Supplier", {"represents_company": self.represents_company}, "name"): + internal_supplier = frappe.db.get_value("Supplier", + {"is_internal_supplier": 1, "represents_company": self.represents_company, "name": ("!=", self.name)}, "name") + + if internal_supplier: frappe.throw(_("Internal Supplier for company {0} already exists").format( frappe.bold(self.represents_company))) diff --git a/erpnext/public/js/controllers/transaction.js b/erpnext/public/js/controllers/transaction.js index f3954e1275c..f89f01fcc09 100644 --- a/erpnext/public/js/controllers/transaction.js +++ b/erpnext/public/js/controllers/transaction.js @@ -235,7 +235,7 @@ erpnext.TransactionController = erpnext.taxes_and_totals.extend({ } }; - this.frm.trigger('set_internal_warehouses'); + this.frm.trigger('set_default_internal_warehouse'); return frappe.run_serially([ () => set_value('currency', currency), @@ -733,7 +733,11 @@ erpnext.TransactionController = erpnext.taxes_and_totals.extend({ this.calculate_taxes_and_totals(false); }, - set_internal_warehouses: function() { + update_stock: function() { + this.frm.trigger('set_default_internal_warehouse'); + }, + + set_default_internal_warehouse: function() { let me = this; if ((this.frm.doc.doctype === 'Sales Invoice' && me.frm.doc.update_stock) || this.frm.doc.doctype == 'Delivery Note') { diff --git a/erpnext/selling/doctype/customer/customer.py b/erpnext/selling/doctype/customer/customer.py index 29214ee06d9..bf8b7fc128a 100644 --- a/erpnext/selling/doctype/customer/customer.py +++ b/erpnext/selling/doctype/customer/customer.py @@ -84,7 +84,10 @@ class Customer(TransactionBase): frappe.throw(_("{0} is not a company bank account").format(frappe.bold(self.default_bank_account))) def validate_internal_customer(self): - if self.is_internal_customer and frappe.db.get_value('Customer', {"represents_company": self.represents_company}, "name"): + internal_customer = frappe.db.get_value("Customer", + {"is_internal_customer": 1, "represents_company": self.represents_company, "name": ("!=", self.name)}, "name") + + if internal_customer: frappe.throw(_("Internal Customer for company {0} already exists").format( frappe.bold(self.represents_company)))