changed doctype name userrole to has role
diff --git a/erpnext/hr/doctype/employee_leave_approver/employee_leave_approver.py b/erpnext/hr/doctype/employee_leave_approver/employee_leave_approver.py
index fb58d75..04e2692 100755
--- a/erpnext/hr/doctype/employee_leave_approver/employee_leave_approver.py
+++ b/erpnext/hr/doctype/employee_leave_approver/employee_leave_approver.py
@@ -17,7 +17,7 @@
 
 def get_approver_list(name):
 	return frappe.db.sql("""select user.name, user.first_name, user.last_name from
-		tabUser user, tabUserRole user_role where
+		tabUser user, `tabHas Role` user_role where
 		user_role.role = "Leave Approver"
 		and user_role.parent = user.name and
 		user.name != %s 
diff --git a/erpnext/hr/doctype/expense_claim/expense_claim.py b/erpnext/hr/doctype/expense_claim/expense_claim.py
index 957753a..01dc341 100644
--- a/erpnext/hr/doctype/expense_claim/expense_claim.py
+++ b/erpnext/hr/doctype/expense_claim/expense_claim.py
@@ -194,7 +194,7 @@
 def get_expense_approver(doctype, txt, searchfield, start, page_len, filters):
 	return frappe.db.sql("""
 		select u.name, concat(u.first_name, ' ', u.last_name)
-		from tabUser u, tabUserRole r
+		from tabUser u, `tabHas Role` r
 		where u.name = r.parent and r.role = 'Expense Approver' 
 		and u.enabled = 1 and u.name like %s
 	""", ("%" + txt + "%"))
diff --git a/erpnext/hr/doctype/leave_application/leave_application.py b/erpnext/hr/doctype/leave_application/leave_application.py
index c53c230..2a282e1 100755
--- a/erpnext/hr/doctype/leave_application/leave_application.py
+++ b/erpnext/hr/doctype/leave_application/leave_application.py
@@ -215,7 +215,7 @@
 			frappe.throw(_("Leave approver must be one of {0}")
 				.format(comma_or(leave_approvers)), InvalidLeaveApproverError)
 
-		elif self.leave_approver and not frappe.db.sql("""select name from `tabUserRole`
+		elif self.leave_approver and not frappe.db.sql("""select name from `tabHas Role`
 			where parent=%s and role='Leave Approver'""", self.leave_approver):
 			frappe.throw(_("{0} ({1}) must have role 'Leave Approver'")\
 				.format(get_fullname(self.leave_approver), self.leave_approver), InvalidLeaveApproverError)
diff --git a/erpnext/hr/doctype/leave_application/test_leave_application.py b/erpnext/hr/doctype/leave_application/test_leave_application.py
index f7a996b..0ec3efb 100644
--- a/erpnext/hr/doctype/leave_application/test_leave_application.py
+++ b/erpnext/hr/doctype/leave_application/test_leave_application.py
@@ -53,7 +53,7 @@
 		frappe.db.sql("""delete from `tabEmployee Leave Approver`""")
 
 	def _clear_roles(self):
-		frappe.db.sql("""delete from `tabUserRole` where parent in
+		frappe.db.sql("""delete from `tabHas Role` where parent in
 			("test@example.com", "test1@example.com", "test2@example.com")""")
 
 	def _clear_applications(self):
diff --git a/erpnext/hr/doctype/salary_slip/test_salary_slip.py b/erpnext/hr/doctype/salary_slip/test_salary_slip.py
index f2d1ec9..f136cb5 100644
--- a/erpnext/hr/doctype/salary_slip/test_salary_slip.py
+++ b/erpnext/hr/doctype/salary_slip/test_salary_slip.py
@@ -176,7 +176,7 @@
 				"email": user,
 				"first_name": user,
 				"new_password": "password",
-				"roles": [{"doctype": "UserRole", "role": "Employee"}]
+				"roles": [{"doctype": "Has Role", "role": "Employee"}]
 			}).insert()
 
 		if not frappe.db.get_value("Employee", {"user_id": user}):
diff --git a/erpnext/hr/doctype/salary_structure/test_salary_structure.py b/erpnext/hr/doctype/salary_structure/test_salary_structure.py
index 266165b..3abdaf3 100644
--- a/erpnext/hr/doctype/salary_structure/test_salary_structure.py
+++ b/erpnext/hr/doctype/salary_structure/test_salary_structure.py
@@ -52,7 +52,7 @@
 			"email": user,
 			"first_name": user,
 			"new_password": "password",
-			"roles": [{"doctype": "UserRole", "role": "Employee"}]
+			"roles": [{"doctype": "Has Role", "role": "Employee"}]
 		}).insert()
 		
 
diff --git a/erpnext/patches/v4_0/remove_employee_role_if_no_employee.py b/erpnext/patches/v4_0/remove_employee_role_if_no_employee.py
index 29a6e61..8766ace 100644
--- a/erpnext/patches/v4_0/remove_employee_role_if_no_employee.py
+++ b/erpnext/patches/v4_0/remove_employee_role_if_no_employee.py
@@ -6,7 +6,7 @@
 import frappe.permissions
 
 def execute():
-	for user in frappe.db.sql_list("select distinct parent from `tabUserRole` where role='Employee'"):
+	for user in frappe.db.sql_list("select distinct parent from `tabHas Role` where role='Employee'"):
 		# if employee record does not exists, remove employee role!
 		if not frappe.db.get_value("Employee", {"user_id": user}):
 			try:
diff --git a/erpnext/patches/v5_0/newsletter.py b/erpnext/patches/v5_0/newsletter.py
index b5e4de0..fcf95ca 100644
--- a/erpnext/patches/v5_0/newsletter.py
+++ b/erpnext/patches/v5_0/newsletter.py
@@ -19,11 +19,11 @@
 	if not frappe.db.exists("Role", "Newsletter Manager"):
 		frappe.get_doc({"doctype": "Role", "role": "Newsletter Manager"}).insert()
 
-	for userrole in frappe.get_all("UserRole", "parent", {"role": "Sales Manager"}):
+	for userrole in frappe.get_all("Has Role", "parent", {"role": "Sales Manager", "parenttype": "User"}):
 		if frappe.db.exists("User", userrole.parent):
 			user = frappe.get_doc("User", userrole.parent)
 			user.append("roles", {
-				"doctype": "UserRole",
+				"doctype": "Has Role",
 				"role": "Newsletter Manager"
 			})
 			user.flags.ignore_mandatory = True
diff --git a/erpnext/patches/v6_20x/remove_customer_supplier_roles.py b/erpnext/patches/v6_20x/remove_customer_supplier_roles.py
index eb69845..a651576 100644
--- a/erpnext/patches/v6_20x/remove_customer_supplier_roles.py
+++ b/erpnext/patches/v6_20x/remove_customer_supplier_roles.py
@@ -8,10 +8,10 @@
 	frappe.reload_doc("projects", "doctype", "timesheet")
 	
 	for role in ('Customer', 'Supplier'):
-		frappe.db.sql('''delete from `tabUserRole`
+		frappe.db.sql('''delete from `tabHas Role`
 			where role=%s and parent in ("Administrator", "Guest")''', role)
 
-		if not frappe.db.sql('select name from `tabUserRole` where role=%s', role):
+		if not frappe.db.sql('select name from `tabHas Role` where role=%s', role):
 
 			# delete DocPerm
 			for doctype in frappe.db.sql('select parent from tabDocPerm where role=%s', role):
diff --git a/erpnext/setup/doctype/authorization_control/authorization_control.py b/erpnext/setup/doctype/authorization_control/authorization_control.py
index f1c198c..7d5e80b 100644
--- a/erpnext/setup/doctype/authorization_control/authorization_control.py
+++ b/erpnext/setup/doctype/authorization_control/authorization_control.py
@@ -213,7 +213,7 @@
 							app_specific_user.append(m['approving_user'])
 						elif m['approving_role']:
 							user_lst = [z[0] for z in frappe.db.sql("""select distinct t1.name
-								from `tabUser` t1, `tabUserRole` t2 where t2.role=%s
+								from `tabUser` t1, `tabHas Role` t2 where t2.role=%s
 								and t2.parent=t1.name and t1.name !='Administrator'
 								and t1.name != 'Guest' and t1.docstatus !=2""", m['approving_role'])]
 
diff --git a/erpnext/setup/setup_wizard/domainify.py b/erpnext/setup/setup_wizard/domainify.py
index 14e2f33..5963675 100644
--- a/erpnext/setup/setup_wizard/domainify.py
+++ b/erpnext/setup/setup_wizard/domainify.py
@@ -96,7 +96,7 @@
 def setup_roles(data):
 	'''Add, remove roles from `data.allow_roles` or `data.remove_roles`'''
 	def remove_role(role):
-		frappe.db.sql('delete from tabUserRole where role=%s', role)
+		frappe.db.sql('delete from `tabHas Role` where role=%s', role)
 		frappe.set_value('Role', role, 'disabled', 1)
 
 	if data.remove_roles:
diff --git a/erpnext/stock/reorder_item.py b/erpnext/stock/reorder_item.py
index 5131381..01a6a6d 100644
--- a/erpnext/stock/reorder_item.py
+++ b/erpnext/stock/reorder_item.py
@@ -164,7 +164,7 @@
 	""" Notify user about auto creation of indent"""
 
 	email_list = frappe.db.sql_list("""select distinct r.parent
-		from tabUserRole r, tabUser p
+		from `tabHas Role` r, tabUser p
 		where p.name = r.parent and p.enabled = 1 and p.docstatus < 2
 		and r.role in ('Purchase Manager','Stock Manager')
 		and p.name not in ('Administrator', 'All', 'Guest')""")
diff --git a/erpnext/utilities/transaction_base.py b/erpnext/utilities/transaction_base.py
index 3cc79ef..2d6cbc0 100644
--- a/erpnext/utilities/transaction_base.py
+++ b/erpnext/utilities/transaction_base.py
@@ -35,9 +35,6 @@
 			frappe.db.sql("delete from `tabEvent` where name in (%s)"
 				.format(", ".join(['%s']*len(events))), tuple(events))
 
-			frappe.db.sql("delete from `tabEvent Role` where parent in (%s)"
-				.format(", ".join(['%s']*len(events))), tuple(events))
-
 	def _add_calendar_event(self, opts):
 		opts = frappe._dict(opts)