diff --git a/erpnext/accounts/doctype/accounting_dimension/accounting_dimension.js b/erpnext/accounts/doctype/accounting_dimension/accounting_dimension.js
index 9a6ea73..f928b0a 100644
--- a/erpnext/accounts/doctype/accounting_dimension/accounting_dimension.js
+++ b/erpnext/accounts/doctype/accounting_dimension/accounting_dimension.js
@@ -6,5 +6,11 @@
 	document_type: function(frm){
 		frm.set_value('label', frm.doc.document_type);
 		frm.set_value('fieldname', frappe.scrub(frm.doc.document_type))
-	}
+
+		frappe.db.get_value('Accounting Dimension', {'document_type': frm.doc.document_type}, 'document_type', (r) => {
+			if (r.document_type) {
+				frm.set_df_property('document_type', 'description', "Document type is already set as dimension");
+			}
+		});
+	},
 });
diff --git a/erpnext/accounts/doctype/accounting_dimension/accounting_dimension.json b/erpnext/accounts/doctype/accounting_dimension/accounting_dimension.json
index 0e9ab9e..daa1004 100644
--- a/erpnext/accounts/doctype/accounting_dimension/accounting_dimension.json
+++ b/erpnext/accounts/doctype/accounting_dimension/accounting_dimension.json
@@ -7,7 +7,8 @@
   "document_type",
   "label",
   "fieldname",
-  "is_mandatory"
+  "is_mandatory",
+  "disable"
  ],
  "fields": [
   {
@@ -30,12 +31,19 @@
    "reqd": 1
   },
   {
+   "default": "0",
    "fieldname": "is_mandatory",
    "fieldtype": "Check",
    "label": "Is Mandatory"
+  },
+  {
+   "default": "0",
+   "fieldname": "disable",
+   "fieldtype": "Check",
+   "label": "Disable"
   }
  ],
- "modified": "2019-05-16 13:37:04.240148",
+ "modified": "2019-05-17 20:35:31.014495",
  "modified_by": "Administrator",
  "module": "Accounts",
  "name": "Accounting Dimension",
diff --git a/erpnext/accounts/doctype/accounting_dimension/accounting_dimension.py b/erpnext/accounts/doctype/accounting_dimension/accounting_dimension.py
index 147b808..51388ec 100644
--- a/erpnext/accounts/doctype/accounting_dimension/accounting_dimension.py
+++ b/erpnext/accounts/doctype/accounting_dimension/accounting_dimension.py
@@ -4,19 +4,23 @@
 
 from __future__ import unicode_literals
 import frappe
+import json
 from frappe.model.document import Document
 from frappe.custom.doctype.custom_field.custom_field import create_custom_field
 from frappe import scrub
 from frappe.utils import cstr
+from frappe.utils.background_jobs import enqueue
 
 class AccountingDimension(Document):
+	def on_update(self):
+		frappe.enqueue(disable_dimension, doc=self)
 
 	def before_insert(self):
 		self.set_fieldname_and_label()
-		self.make_accounting_dimension_in_accounting_doctypes()
+		frappe.enqueue(make_accounting_dimension_in_accounting_doctypes, doc=self)
 
 	def on_trash(self):
-		self.delete_accounting_dimension()
+		frappe.enqueue(delete_accounting_dimension, doc=self)
 
 	def set_fieldname_and_label(self):
 		if not self.label:
@@ -25,90 +29,109 @@
 		if not self.fieldname:
 			self.fieldname = scrub(self.label)
 
-	def make_accounting_dimension_in_accounting_doctypes(self):
+def make_accounting_dimension_in_accounting_doctypes(doc):
+	doclist = get_doclist()
 
-		doclist = ["GL Entry", "Sales Invoice", "Purchase Invoice", "Payment Entry", "BOM", "Sales Order", "Purchase Order", "Asset",
-			"Stock Entry", "Budget", "Payroll Entry", "Delivery Note", "Sales Invoice Item", "Purchase Invoice Item", "Sales Order Item",
-			"Purchase Order Item", "Journal Entry Account", "Material Request Item", "Delivery Note Item", "Purchase Receipt Item",
-			"Purchase Order Item"]
+	if doc.is_mandatory:
+		df.update({
+			"reqd": 1
+		})
 
-		if self.is_mandatory:
+	for doctype in doclist:
+
+		df = {
+			"fieldname": doc.fieldname,
+			"label": doc.label,
+			"fieldtype": "Link",
+			"options": doc.document_type,
+			"insert_after": "cost_center"
+		}
+
+		if doctype == "Budget":
 			df.update({
-				"reqd": 1
+				"depends_on": "eval:doc.budget_against == '{0}'".format(doc.document_type)
 			})
 
-		for doctype in doclist:
+			create_custom_field(doctype, df)
 
-			df = {
-				"fieldname": self.fieldname,
-				"label": self.label,
-				"fieldtype": "Link",
-				"options": self.document_type,
-				"insert_after": "cost_center"
-			}
+			property_setter = frappe.db.exists("Property Setter", "Budget-budget_against-options")
 
-			if doctype == "Budget":
-				df.update({
-					"depends_on": "eval:doc.budget_against == '{0}'".format(self.document_type)
-				})
+			if property_setter:
+				property_setter_doc = frappe.get_doc("Property Setter", "Budget-budget_against-options")
+				property_setter_doc.doc_type = 'Budget'
+				property_setter_doc.doctype_or_field = "DocField"
+				property_setter_doc.fiel_dname = "budget_against"
+				property_setter_doc.property = "options"
+				property_setter_doc.property_type = "Text"
+				property_setter_doc.value = property_setter_doc.value + "\n" + doc.document_type
+				property_setter_doc.save()
 
-				create_custom_field(doctype, df)
-
-				property_setter = frappe.db.exists("Property Setter", "Budget-budget_against-options")
-
-				if property_setter:
-					property_setter_doc = frappe.get_doc("Property Setter", "Budget-budget_against-options")
-					property_setter_doc.doc_type = 'Budget'
-					property_setter_doc.doctype_or_field = "DocField"
-					property_setter_doc.fiel_dname = "budget_against"
-					property_setter_doc.property = "options"
-					property_setter_doc.property_type = "Text"
-					property_setter_doc.value = property_setter_doc.value + "\n" + self.document_type
-					property_setter_doc.save()
-
-					frappe.clear_cache(doctype='Budget')
-				else:
-					frappe.get_doc({
-						"doctype": "Property Setter",
-						"doctype_or_field": "DocField",
-						"doc_type": "Budget",
-						"field_name": "budget_against",
-						"property": "options",
-						"property_type": "Text",
-						"value": "\nCost Center\nProject\n" + self.document_type
-					}).insert(ignore_permissions=True)
-				frappe.clear_cache(doctype=doctype)
+				frappe.clear_cache(doctype='Budget')
 			else:
-				create_custom_field(doctype, df)
-				frappe.clear_cache(doctype=doctype)
+				frappe.get_doc({
+					"doctype": "Property Setter",
+					"doctype_or_field": "DocField",
+					"doc_type": "Budget",
+					"field_name": "budget_against",
+					"property": "options",
+					"property_type": "Text",
+					"value": "\nCost Center\nProject\n" + doc.document_type
+				}).insert(ignore_permissions=True)
+			frappe.clear_cache(doctype=doctype)
+		else:
+			create_custom_field(doctype, df)
+			frappe.clear_cache(doctype=doctype)
 
-	def delete_accounting_dimension(self):
-		doclist = ["GL Entry", "Sales Invoice", "Purchase Invoice", "Payment Entry", "BOM", "Sales Order", "Purchase Order", "Asset",
-			"Stock Entry", "Budget", "Payroll Entry", "Delivery Note", "Sales Invoice Item", "Purchase Invoice Item", "Sales Order Item",
-			"Purchase Order Item", "Journal Entry Account", "Material Request Item", "Delivery Note Item", "Purchase Receipt Item",
-			"Purchase Order Item"]
+def delete_accounting_dimension(doc):
+	doclist = get_doclist()
 
-		frappe.db.sql("""
-			DELETE FROM `tabCustom Field`
-			WHERE  fieldname = %s
-			AND dt IN (%s)""" %
-			('%s', ', '.join(['%s']* len(doclist))), tuple([self.fieldname] + doclist))
+	frappe.db.sql("""
+		DELETE FROM `tabCustom Field`
+		WHERE  fieldname = %s
+		AND dt IN (%s)""" %
+		('%s', ', '.join(['%s']* len(doclist))), tuple([doc.fieldname] + doclist))
 
-		frappe.db.sql("""
-			DELETE FROM `tabProperty Setter`
-			WHERE  field_name = %s
-			AND doc_type IN (%s)""" %
-			('%s', ', '.join(['%s']* len(doclist))), tuple([self.fieldname] + doclist))
+	frappe.db.sql("""
+		DELETE FROM `tabProperty Setter`
+		WHERE  field_name = %s
+		AND doc_type IN (%s)""" %
+		('%s', ', '.join(['%s']* len(doclist))), tuple([doc.fieldname] + doclist))
 
-		budget_against_property = frappe.get_doc("Property Setter", "Budget-budget_against-options")
-		value_list = budget_against_property.value.split('\n')[3:]
-		value_list.remove(self.document_type)
+	budget_against_property = frappe.get_doc("Property Setter", "Budget-budget_against-options")
+	value_list = budget_against_property.value.split('\n')[3:]
+	value_list.remove(doc.document_type)
 
-		budget_against_property.value = "\nCost Center\nProject\n" + "\n".join(value_list)
-		budget_against_property.save()
+	budget_against_property.value = "\nCost Center\nProject\n" + "\n".join(value_list)
+	budget_against_property.save()
 
-		for doc in doclist:
-			frappe.clear_cache(doctype=doc)
+	for doctype in doclist:
+		frappe.clear_cache(doctype=doctype)
+
+def disable_dimension(doc):
+	if doc.disable:
+		df = {"read_only": 1}
+	else:
+		df = {"read_only": 0}
+
+	doclist = get_doclist()
+
+	for doctype in doclist:
+		field = frappe.db.get_value("Custom Field", {"dt": doctype, "fieldname": doc.fieldname})
+		if field:
+			custom_field = frappe.get_doc("Custom Field", field)
+			custom_field.update(df)
+			custom_field.save()
+
+		frappe.clear_cache(doctype=doctype)
+
+def get_doclist():
+	doclist = ["GL Entry", "Sales Invoice", "Purchase Invoice", "Payment Entry", "Asset",
+		"Expense Claim", "Stock Entry", "Budget", "Payroll Entry", "Delivery Note", "Sales Invoice Item", "Purchase Invoice Item",
+		"Purchase Order Item", "Journal Entry Account", "Material Request Item", "Delivery Note Item", "Purchase Receipt Item",
+		"Stock Entry Detail", "Payment Entry Deduction"]
+
+	return doclist
+
 
 def get_accounting_dimensions():
 	accounting_dimensions = frappe.get_all("Accounting Dimension", fields=["fieldname"])
diff --git a/erpnext/accounts/doctype/accounting_dimension/accounting_dimension_dashboard.py b/erpnext/accounts/doctype/accounting_dimension/accounting_dimension_dashboard.py
deleted file mode 100644
index 62a1291..0000000
--- a/erpnext/accounts/doctype/accounting_dimension/accounting_dimension_dashboard.py
+++ /dev/null
@@ -1,12 +0,0 @@
-from __future__ import unicode_literals
-
-from frappe import _
-
-def get_data():
-	return {
-		'transactions': [
-			{
-				'label': _('Accounting Doctypes')
-			}
-		]
-	}
\ No newline at end of file
