Merge pull request #1616 from pdvyas/migrate-3to4

3 to 4 migration fixes
diff --git a/erpnext/hr/doctype/employee/employee.py b/erpnext/hr/doctype/employee/employee.py
index 6846b87..687c6ce 100644
--- a/erpnext/hr/doctype/employee/employee.py
+++ b/erpnext/hr/doctype/employee/employee.py
@@ -155,6 +155,8 @@
 			throw(_("Please enter relieving date."))
 
 	def validate_for_enabled_user_id(self):
+		if not self.status == 'Active':
+			return
 		enabled = frappe.db.sql("""select name from `tabUser` where
 			name=%s and enabled=1""", self.user_id)
 		if not enabled:
diff --git a/erpnext/patches/4_0/customer_discount_to_pricing_rule.py b/erpnext/patches/4_0/customer_discount_to_pricing_rule.py
index a92568e..87aa792 100644
--- a/erpnext/patches/4_0/customer_discount_to_pricing_rule.py
+++ b/erpnext/patches/4_0/customer_discount_to_pricing_rule.py
@@ -23,10 +23,10 @@
 				"item_group": item_group,
 				"applicable_for": "Customer",
 				"customer": d.parent,
-				"price_or_discount": "Discount",
+				"price_or_discount": "Discount Percentage",
 				"discount_percentage": d.discount
 			}).insert()
 	
 	frappe.db.auto_commit_on_many_writes = False		
 	
-	frappe.delete_doc("DocType", "Customer Discount")
\ No newline at end of file
+	frappe.delete_doc("DocType", "Customer Discount")
diff --git a/erpnext/patches/4_0/update_user_properties.py b/erpnext/patches/4_0/update_user_properties.py
index dfec48b..1c746d3 100644
--- a/erpnext/patches/4_0/update_user_properties.py
+++ b/erpnext/patches/4_0/update_user_properties.py
@@ -8,6 +8,7 @@
 
 def execute():
 	frappe.reload_doc("core", "doctype", "docperm")
+	frappe.reload_doc("hr", "doctype", "employee")
 	update_user_properties()
 	update_user_match()
 	add_employee_restrictions_to_leave_approver()
@@ -82,13 +83,11 @@
 	
 	# add Employee restrictions (in on_update method)
 	for employee in frappe.db.sql_list("""select name from `tabEmployee`
-		where exists(select leave_approver from `tabEmployee Leave Approver`
+		where (exists(select leave_approver from `tabEmployee Leave Approver`
 			where `tabEmployee Leave Approver`.parent=`tabEmployee`.name)
-		or ifnull(`reports_to`, '')!=''"""):
+		or ifnull(`reports_to`, '')!='') and docstatus<2 and status='Active'"""):
 		
-		emp = frappe.get_doc("Employee", employee)
-		emp.ignore_links = True
-		emp.save()
+		frappe.get_doc("Employee", employee).save()
 
 def update_permissions():
 	# clear match conditions other than owner
diff --git a/erpnext/support/doctype/support_email_settings/support_email_settings.py b/erpnext/support/doctype/support_email_settings/support_email_settings.py
index 592c1a9..8763c6d 100644
--- a/erpnext/support/doctype/support_email_settings/support_email_settings.py
+++ b/erpnext/support/doctype/support_email_settings/support_email_settings.py
@@ -17,7 +17,7 @@
 			Checks support ticket email settings
 		"""
 		if self.sync_support_mails and self.mail_server:
-			inc_email = frappe.get_doc('Incoming Email Settings')
+			inc_email = frappe._dict(self.as_dict())
 			# inc_email.encode()
 			inc_email.host = self.mail_server
 			inc_email.use_ssl = self.use_ssl