Merge branch 'develop' into taxjar-nexus-display-condition
diff --git a/erpnext/accounts/doctype/pos_profile/pos_profile.js b/erpnext/accounts/doctype/pos_profile/pos_profile.js
index efdeb1a..813d20d 100755
--- a/erpnext/accounts/doctype/pos_profile/pos_profile.js
+++ b/erpnext/accounts/doctype/pos_profile/pos_profile.js
@@ -3,22 +3,20 @@
 
 {% include "erpnext/public/js/controllers/accounts.js" %}
 
-frappe.ui.form.on("POS Profile", "onload", function(frm) {
-	frm.set_query("selling_price_list", function() {
-		return { filters: { selling: 1 } };
-	});
-
-	frm.set_query("tc_name", function() {
-		return { filters: { selling: 1 } };
-	});
-
-	erpnext.queries.setup_queries(frm, "Warehouse", function() {
-		return erpnext.queries.warehouse(frm.doc);
-	});
-});
-
 frappe.ui.form.on('POS Profile', {
 	setup: function(frm) {
+		frm.set_query("selling_price_list", function() {
+			return { filters: { selling: 1 } };
+		});
+
+		frm.set_query("tc_name", function() {
+			return { filters: { selling: 1 } };
+		});
+
+		erpnext.queries.setup_queries(frm, "Warehouse", function() {
+			return erpnext.queries.warehouse(frm.doc);
+		});
+
 		frm.set_query("print_format", function() {
 			return {
 				filters: [
@@ -27,10 +25,16 @@
 			};
 		});
 
-		frm.set_query("account_for_change_amount", function() {
+		frm.set_query("account_for_change_amount", function(doc) {
+			if (!doc.company) {
+				frappe.throw(__('Please set Company'));
+			}
+
 			return {
 				filters: {
-					account_type: ['in', ["Cash", "Bank"]]
+					account_type: ['in', ["Cash", "Bank"]],
+					is_group: 0,
+					company: doc.company
 				}
 			};
 		});
@@ -45,7 +49,7 @@
 		});
 
 		frm.set_query('company_address', function(doc) {
-			if(!doc.company) {
+			if (!doc.company) {
 				frappe.throw(__('Please set Company'));
 			}
 
@@ -58,11 +62,79 @@
 			};
 		});
 
+		frm.set_query('income_account', function(doc) {
+			if (!doc.company) {
+				frappe.throw(__('Please set Company'));
+			}
+
+			return {
+				filters: {
+					'is_group': 0,
+					'company': doc.company,
+					'account_type': "Income Account"
+				}
+			};
+		});
+
+		frm.set_query('cost_center', function(doc) {
+			if (!doc.company) {
+				frappe.throw(__('Please set Company'));
+			}
+
+			return {
+				filters: {
+					'company': doc.company,
+					'is_group': 0
+				}
+			};
+		});
+
+		frm.set_query('expense_account', function(doc) {
+			if (!doc.company) {
+				frappe.throw(__('Please set Company'));
+			}
+
+			return {
+				filters: {
+					"report_type": "Profit and Loss",
+					"company": doc.company,
+					"is_group": 0
+				}
+			};
+		});
+
+		frm.set_query("select_print_heading", function() {
+			return {
+				filters: [
+					['Print Heading', 'docstatus', '!=', 2]
+				]
+			};
+		});
+
+		frm.set_query("write_off_account", function(doc) {
+			return {
+				filters: {
+					'report_type': 'Profit and Loss',
+					'is_group': 0,
+					'company': doc.company
+				}
+			};
+		});
+
+		frm.set_query("write_off_cost_center", function(doc) {
+			return {
+				filters: {
+					'is_group': 0,
+					'company': doc.company
+				}
+			};
+		});
+
 		erpnext.accounts.dimensions.setup_dimension_filters(frm, frm.doctype);
 	},
 
 	refresh: function(frm) {
-		if(frm.doc.company) {
+		if (frm.doc.company) {
 			frm.trigger("toggle_display_account_head");
 		}
 	},
@@ -76,71 +148,4 @@
 		frm.toggle_display('expense_account',
 			erpnext.is_perpetual_inventory_enabled(frm.doc.company));
 	}
-})
-
-// Income Account
-// --------------------------------
-cur_frm.fields_dict['income_account'].get_query = function(doc,cdt,cdn) {
-	return{
-		filters:{
-			'is_group': 0,
-			'company': doc.company,
-			'account_type': "Income Account"
-		}
-	};
-};
-
-
-// Cost Center
-// -----------------------------
-cur_frm.fields_dict['cost_center'].get_query = function(doc,cdt,cdn) {
-	return{
-		filters:{
-			'company': doc.company,
-			'is_group': 0
-		}
-	};
-};
-
-
-// Expense Account
-// -----------------------------
-cur_frm.fields_dict["expense_account"].get_query = function(doc) {
-	return {
-		filters: {
-			"report_type": "Profit and Loss",
-			"company": doc.company,
-			"is_group": 0
-		}
-	};
-};
-
-// ------------------ Get Print Heading ------------------------------------
-cur_frm.fields_dict['select_print_heading'].get_query = function(doc, cdt, cdn) {
-	return{
-		filters:[
-			['Print Heading', 'docstatus', '!=', 2]
-		]
-	};
-};
-
-cur_frm.fields_dict.write_off_account.get_query = function(doc) {
-	return{
-		filters:{
-			'report_type': 'Profit and Loss',
-			'is_group': 0,
-			'company': doc.company
-		}
-	};
-};
-
-// Write off cost center
-// -----------------------
-cur_frm.fields_dict.write_off_cost_center.get_query = function(doc) {
-	return{
-		filters:{
-			'is_group': 0,
-			'company': doc.company
-		}
-	};
-};
+});
diff --git a/erpnext/setup/doctype/company/company.js b/erpnext/setup/doctype/company/company.js
index 95ca386..91f60fb 100644
--- a/erpnext/setup/doctype/company/company.js
+++ b/erpnext/setup/doctype/company/company.js
@@ -12,6 +12,10 @@
 				}
 			});
 		}
+
+		frm.call('check_if_transactions_exist').then(r => {
+			frm.toggle_enable("default_currency", (!r.message));
+		});
 	},
 	setup: function(frm) {
 		erpnext.company.setup_queries(frm);
@@ -87,9 +91,6 @@
 
 			frappe.dynamic_link = {doc: frm.doc, fieldname: 'name', doctype: 'Company'}
 
-			frm.toggle_enable("default_currency", (frm.doc.__onload &&
-				!frm.doc.__onload.transactions_exist));
-
 			if (frappe.perm.has_perm("Cost Center", 0, 'read')) {
 				frm.add_custom_button(__('Cost Centers'), function() {
 					frappe.set_route('Tree', 'Cost Center', {'company': frm.doc.name});
diff --git a/erpnext/setup/doctype/company/company.py b/erpnext/setup/doctype/company/company.py
index dedd2d3..e739739 100644
--- a/erpnext/setup/doctype/company/company.py
+++ b/erpnext/setup/doctype/company/company.py
@@ -22,8 +22,8 @@
 
 	def onload(self):
 		load_address_and_contact(self, "company")
-		self.get("__onload")["transactions_exist"] = self.check_if_transactions_exist()
 
+	@frappe.whitelist()
 	def check_if_transactions_exist(self):
 		exists = False
 		for doctype in ["Sales Invoice", "Delivery Note", "Sales Order", "Quotation",
diff --git a/erpnext/stock/doctype/delivery_note/delivery_note.json b/erpnext/stock/doctype/delivery_note/delivery_note.json
index e78d501..55a4c95 100644
--- a/erpnext/stock/doctype/delivery_note/delivery_note.json
+++ b/erpnext/stock/doctype/delivery_note/delivery_note.json
@@ -1315,7 +1315,7 @@
  "idx": 146,
  "is_submittable": 1,
  "links": [],
- "modified": "2021-10-08 14:29:13.428984",
+ "modified": "2021-10-09 14:29:13.428984",
  "modified_by": "Administrator",
  "module": "Stock",
  "name": "Delivery Note",