diff --git a/erpnext/hr/doctype/employee_onboarding/employee_onboarding.py b/erpnext/hr/doctype/employee_onboarding/employee_onboarding.py
index 9262a06..e22fbc9 100644
--- a/erpnext/hr/doctype/employee_onboarding/employee_onboarding.py
+++ b/erpnext/hr/doctype/employee_onboarding/employee_onboarding.py
@@ -8,6 +8,7 @@
 from erpnext.hr.utils import EmployeeBoardingController
 from frappe.model.mapper import get_mapped_doc
 
+class IncompleteTaskError(frappe.ValidationError): pass
 
 class EmployeeOnboarding(EmployeeBoardingController):
 	def validate(self):
@@ -23,7 +24,7 @@
 				else:
 					task_status = frappe.db.get_value("Task", activity.task, "status")
 					if task_status not in ["Closed", "Cancelled"]:
-						frappe.throw(_("All the mandatory Task for employee creation hasn't been done yet."))
+						frappe.throw(_("All the mandatory Task for employee creation hasn't been done yet."), IncompleteTaskError)
 
 	def on_submit(self):
 		super(EmployeeOnboarding, self).on_submit()
diff --git a/erpnext/hr/doctype/employee_onboarding/test_employee_onboarding.py b/erpnext/hr/doctype/employee_onboarding/test_employee_onboarding.py
index b37ae88..8bf6957 100644
--- a/erpnext/hr/doctype/employee_onboarding/test_employee_onboarding.py
+++ b/erpnext/hr/doctype/employee_onboarding/test_employee_onboarding.py
@@ -5,6 +5,61 @@
 
 import frappe
 import unittest
+from frappe.utils import nowdate
+from erpnext.hr.doctype.employee_onboarding.employee_onboarding import make_employee
+from erpnext.hr.doctype.employee_onboarding.employee_onboarding import IncompleteTaskError
 
 class TestEmployeeOnboarding(unittest.TestCase):
-	pass
+	def test_employee_onboarding_incomplete_task(self):
+		if frappe.db.exists('Employee Onboarding', {'employee_name': 'Test Applicant'}):
+			return frappe.get_doc('Employee Onboarding', {'employee_name': 'Test Applicant'})
+		_set_up()
+		applicant = get_job_applicant()
+		onboarding = frappe.new_doc('Employee Onboarding')
+		onboarding.job_applicant = applicant.name
+		onboarding.employee_name = 'Test Applicant'
+		onboarding.company = '_Test Company'
+		onboarding.designation = 'Researcher'
+		onboarding.append('activities', {
+			'activity_name': 'Assign ID Card',
+			'role': 'HR User',
+			'required_for_employee_creation': 1
+		})
+		onboarding.append('activities', {
+			'activity_name': 'Assign a laptop',
+			'role': 'HR User'
+		})
+		onboarding.status = 'Pending'
+		onboarding.insert()
+		onboarding.submit()
+		self.assertEqual(onboarding.project, 'Employee Onboarding : Test Researcher - test@researcher.com')
+		self.assertRaises(IncompleteTaskError, make_employee, onboarding.name)
+		return onboarding
+
+	def test_employee_onboarding_completed_task(self):
+		doc = self.test_employee_onboarding_incomplete_task()
+		project = frappe.get_doc('Project', doc.project)
+		project.tasks[0].status = 'Closed'
+		project.save()
+		doc.reload()
+		employee = make_employee(doc.name)
+		employee.date_of_joining = nowdate()
+		employee.date_of_birth = '1990-05-08'
+		employee.gender = 'Female'
+		employee.insert()
+		self.assertEqual(employee.employee_name, 'Test Applicant')
+
+def get_job_applicant():
+	if frappe.db.exists('Job Applicant', 'Test Researcher - test@researcher.com'):
+		return frappe.get_doc('Job Applicant', 'Test Researcher - test@researcher.com')
+	applicant = frappe.new_doc('Job Applicant')
+	applicant.applicant_name = 'Test Researcher'
+	applicant.email_id = 'test@researcher.com'
+	applicant.status = 'Open'
+	applicant.cover_letter = 'I am a great Researcher.'
+	applicant.insert()
+	return applicant
+
+def _set_up():
+	for doctype in ["Employee Onboarding"]:
+		frappe.db.sql("delete from `tab{doctype}`".format(doctype=doctype))
\ No newline at end of file
diff --git a/erpnext/hr/doctype/employee_onboarding_template/employee_onboarding_template.js b/erpnext/hr/doctype/employee_onboarding_template/employee_onboarding_template.js
index 2a531f3..5e1b6e9 100644
--- a/erpnext/hr/doctype/employee_onboarding_template/employee_onboarding_template.js
+++ b/erpnext/hr/doctype/employee_onboarding_template/employee_onboarding_template.js
@@ -2,7 +2,13 @@
 // For license information, please see license.txt
 
 frappe.ui.form.on('Employee Onboarding Template', {
-	refresh: function(frm) {
-
+	setup: function(frm) {
+		frm.set_query("department", function() {
+			return {
+				filters: {
+					company: frm.doc.company
+				}
+			};
+		});
 	}
 });
diff --git a/erpnext/hr/doctype/employee_separation/employee_separation.json b/erpnext/hr/doctype/employee_separation/employee_separation.json
index 7941576..2b281dc 100644
--- a/erpnext/hr/doctype/employee_separation/employee_separation.json
+++ b/erpnext/hr/doctype/employee_separation/employee_separation.json
@@ -15,6 +15,7 @@
  "fields": [
   {
    "allow_bulk_edit": 0, 
+   "allow_in_quick_entry": 0, 
    "allow_on_submit": 0, 
    "bold": 0, 
    "collapsible": 0, 
@@ -42,16 +43,17 @@
    "reqd": 0, 
    "search_index": 0, 
    "set_only_once": 0, 
-   "translatable": 0,
+   "translatable": 0, 
    "unique": 0
   }, 
   {
    "allow_bulk_edit": 0, 
+   "allow_in_quick_entry": 0, 
    "allow_on_submit": 0, 
    "bold": 0, 
    "collapsible": 0, 
    "columns": 0, 
-   "fetch_from": "employee.employee_name",
+   "fetch_from": "employee.employee_name", 
    "fieldname": "employee_name", 
    "fieldtype": "Data", 
    "hidden": 0, 
@@ -75,15 +77,17 @@
    "reqd": 0, 
    "search_index": 0, 
    "set_only_once": 0, 
-   "translatable": 0,
+   "translatable": 0, 
    "unique": 0
   }, 
   {
    "allow_bulk_edit": 0, 
+   "allow_in_quick_entry": 0, 
    "allow_on_submit": 0, 
    "bold": 0, 
    "collapsible": 0, 
    "columns": 0, 
+   "fetch_from": "employee.resignation_letter_date", 
    "fieldname": "resignation_letter_date", 
    "fieldtype": "Date", 
    "hidden": 0, 
@@ -106,11 +110,12 @@
    "reqd": 0, 
    "search_index": 0, 
    "set_only_once": 0, 
-   "translatable": 0,
+   "translatable": 0, 
    "unique": 0
   }, 
   {
    "allow_bulk_edit": 0, 
+   "allow_in_quick_entry": 0, 
    "allow_on_submit": 1, 
    "bold": 0, 
    "collapsible": 0, 
@@ -138,11 +143,12 @@
    "reqd": 0, 
    "search_index": 0, 
    "set_only_once": 0, 
-   "translatable": 0,
+   "translatable": 0, 
    "unique": 0
   }, 
   {
    "allow_bulk_edit": 0, 
+   "allow_in_quick_entry": 0, 
    "allow_on_submit": 0, 
    "bold": 0, 
    "collapsible": 0, 
@@ -170,11 +176,12 @@
    "reqd": 0, 
    "search_index": 0, 
    "set_only_once": 0, 
-   "translatable": 0,
+   "translatable": 0, 
    "unique": 0
   }, 
   {
    "allow_bulk_edit": 0, 
+   "allow_in_quick_entry": 0, 
    "allow_on_submit": 0, 
    "bold": 0, 
    "collapsible": 0, 
@@ -200,11 +207,12 @@
    "reqd": 0, 
    "search_index": 0, 
    "set_only_once": 0, 
-   "translatable": 0,
+   "translatable": 0, 
    "unique": 0
   }, 
   {
    "allow_bulk_edit": 0, 
+   "allow_in_quick_entry": 0, 
    "allow_on_submit": 0, 
    "bold": 0, 
    "collapsible": 0, 
@@ -232,15 +240,17 @@
    "reqd": 0, 
    "search_index": 0, 
    "set_only_once": 0, 
-   "translatable": 0,
+   "translatable": 0, 
    "unique": 0
   }, 
   {
    "allow_bulk_edit": 0, 
+   "allow_in_quick_entry": 0, 
    "allow_on_submit": 0, 
    "bold": 0, 
    "collapsible": 0, 
    "columns": 0, 
+   "fetch_from": "employee.company", 
    "fieldname": "company", 
    "fieldtype": "Link", 
    "hidden": 0, 
@@ -264,15 +274,17 @@
    "reqd": 0, 
    "search_index": 0, 
    "set_only_once": 0, 
-   "translatable": 0,
+   "translatable": 0, 
    "unique": 0
   }, 
   {
    "allow_bulk_edit": 0, 
+   "allow_in_quick_entry": 0, 
    "allow_on_submit": 0, 
    "bold": 0, 
    "collapsible": 0, 
    "columns": 0, 
+   "fetch_from": "employee.department", 
    "fieldname": "department", 
    "fieldtype": "Link", 
    "hidden": 0, 
@@ -296,15 +308,17 @@
    "reqd": 0, 
    "search_index": 0, 
    "set_only_once": 0, 
-   "translatable": 0,
+   "translatable": 0, 
    "unique": 0
   }, 
   {
    "allow_bulk_edit": 0, 
+   "allow_in_quick_entry": 0, 
    "allow_on_submit": 0, 
    "bold": 0, 
    "collapsible": 0, 
    "columns": 0, 
+   "fetch_from": "employee.designation", 
    "fieldname": "designation", 
    "fieldtype": "Link", 
    "hidden": 0, 
@@ -328,15 +342,17 @@
    "reqd": 0, 
    "search_index": 0, 
    "set_only_once": 0, 
-   "translatable": 0,
+   "translatable": 0, 
    "unique": 0
   }, 
   {
    "allow_bulk_edit": 0, 
+   "allow_in_quick_entry": 0, 
    "allow_on_submit": 0, 
    "bold": 0, 
    "collapsible": 0, 
    "columns": 0, 
+   "fetch_from": "employee.grade", 
    "fieldname": "employee_grade", 
    "fieldtype": "Link", 
    "hidden": 0, 
@@ -360,11 +376,12 @@
    "reqd": 0, 
    "search_index": 0, 
    "set_only_once": 0, 
-   "translatable": 0,
+   "translatable": 0, 
    "unique": 0
   }, 
   {
    "allow_bulk_edit": 0, 
+   "allow_in_quick_entry": 0, 
    "allow_on_submit": 0, 
    "bold": 0, 
    "collapsible": 0, 
@@ -391,11 +408,12 @@
    "reqd": 0, 
    "search_index": 0, 
    "set_only_once": 0, 
-   "translatable": 0,
+   "translatable": 0, 
    "unique": 0
   }, 
   {
    "allow_bulk_edit": 0, 
+   "allow_in_quick_entry": 0, 
    "allow_on_submit": 1, 
    "bold": 0, 
    "collapsible": 0, 
@@ -423,11 +441,12 @@
    "reqd": 0, 
    "search_index": 0, 
    "set_only_once": 0, 
-   "translatable": 0,
+   "translatable": 0, 
    "unique": 0
   }, 
   {
    "allow_bulk_edit": 0, 
+   "allow_in_quick_entry": 0, 
    "allow_on_submit": 0, 
    "bold": 0, 
    "collapsible": 0, 
@@ -453,11 +472,12 @@
    "reqd": 0, 
    "search_index": 0, 
    "set_only_once": 0, 
-   "translatable": 0,
+   "translatable": 0, 
    "unique": 0
   }, 
   {
    "allow_bulk_edit": 0, 
+   "allow_in_quick_entry": 0, 
    "allow_on_submit": 0, 
    "bold": 0, 
    "collapsible": 0, 
@@ -484,11 +504,12 @@
    "reqd": 0, 
    "search_index": 0, 
    "set_only_once": 0, 
-   "translatable": 0,
+   "translatable": 0, 
    "unique": 0
   }, 
   {
    "allow_bulk_edit": 0, 
+   "allow_in_quick_entry": 0, 
    "allow_on_submit": 0, 
    "bold": 0, 
    "collapsible": 0, 
@@ -515,7 +536,7 @@
    "reqd": 0, 
    "search_index": 0, 
    "set_only_once": 0, 
-   "translatable": 0,
+   "translatable": 0, 
    "unique": 0
   }
  ], 
@@ -529,7 +550,7 @@
  "issingle": 0, 
  "istable": 0, 
  "max_attachments": 0, 
- "modified": "2018-05-16 22:42:46.734328",
+ "modified": "2018-06-20 14:21:54.707831", 
  "modified_by": "Administrator", 
  "module": "HR", 
  "name": "Employee Separation", 
diff --git a/erpnext/hr/doctype/employee_separation/test_employee_separation.py b/erpnext/hr/doctype/employee_separation/test_employee_separation.py
index 0773fb6..6ae90df 100644
--- a/erpnext/hr/doctype/employee_separation/test_employee_separation.py
+++ b/erpnext/hr/doctype/employee_separation/test_employee_separation.py
@@ -6,5 +6,24 @@
 import frappe
 import unittest
 
+test_dependencies = ["Employee Onboarding"]
+
 class TestEmployeeSeparation(unittest.TestCase):
-	pass
+	def test_employee_separation(self):
+		employee = get_employee()
+		separation = frappe.new_doc('Employee Separation')
+		separation.employee = employee.name
+		separation.company = '_Test Company'
+		separation.append('activities', {
+			'activity_name': 'Deactivate Employee',
+			'role': 'HR User'
+		})
+		separation.status = 'Pending'
+		separation.insert()
+		separation.submit()
+		self.assertEqual(separation.docstatus, 1)
+		separation.cancel()
+		self.assertEqual(separation.project, "")
+
+def get_employee():
+	return frappe.get_doc('Employee', {'employee_name': 'Test Applicant'})
\ No newline at end of file
diff --git a/erpnext/hr/doctype/staffing_plan/test_staffing_plan.py b/erpnext/hr/doctype/staffing_plan/test_staffing_plan.py
index d95284c..66d9cdd 100644
--- a/erpnext/hr/doctype/staffing_plan/test_staffing_plan.py
+++ b/erpnext/hr/doctype/staffing_plan/test_staffing_plan.py
@@ -15,8 +15,6 @@
 	def test_staffing_plan(self):
 		_set_up()
 		frappe.db.set_value("Company", "_Test Company", "is_group", 1)
-		make_company()
-		set_employees()
 		if frappe.db.exists("Staffing Plan", "Test"):
 			return
 		staffing_plan = frappe.new_doc("Staffing Plan")
@@ -25,15 +23,16 @@
 		staffing_plan.from_date = nowdate()
 		staffing_plan.to_date = add_days(nowdate(), 10)
 		staffing_plan.append("staffing_details", {
-			"designation": "Researcher",
+			"designation": "Designer",
 			"number_of_positions": 6,
 			"estimated_cost_per_position": 50000
 		})
 		staffing_plan.insert()
 		staffing_plan.submit()
-		self.assertEqual(staffing_plan.total_estimated_budget, 250000.00)
+		self.assertEqual(staffing_plan.total_estimated_budget, 300000.00)
 
 	def test_staffing_plan_subsidiary_company(self):
+		self.test_staffing_plan()
 		if frappe.db.exists("Staffing Plan", "Test 1"):
 			return
 		staffing_plan = frappe.new_doc("Staffing Plan")
@@ -42,7 +41,7 @@
 		staffing_plan.from_date = nowdate()
 		staffing_plan.to_date = add_days(nowdate(), 10)
 		staffing_plan.append("staffing_details", {
-			"designation": "Researcher",
+			"designation": "Designer",
 			"number_of_positions": 3,
 			"estimated_cost_per_position": 45000
 		})
@@ -58,13 +57,13 @@
 		staffing_plan.from_date = nowdate()
 		staffing_plan.to_date = add_days(nowdate(), 10)
 		staffing_plan.append("staffing_details", {
-			"designation": "Researcher",
+			"designation": "Designer",
 			"number_of_positions": 7,
 			"estimated_cost_per_position": 50000
 		})
 		staffing_plan.insert()
 		staffing_plan.submit()
-		self.assertEqual(staffing_plan.total_estimated_budget, 250000.00)
+		self.assertEqual(staffing_plan.total_estimated_budget, 350000.00)
 		if frappe.db.exists("Staffing Plan", "Test 1"):
 			return
 		staffing_plan = frappe.new_doc("Staffing Plan")
@@ -73,7 +72,7 @@
 		staffing_plan.from_date = nowdate()
 		staffing_plan.to_date = add_days(nowdate(), 10)
 		staffing_plan.append("staffing_details", {
-			"designation": "Researcher",
+			"designation": "Designer",
 			"number_of_positions": 7,
 			"estimated_cost_per_position": 60000
 		})
@@ -83,6 +82,7 @@
 def _set_up():
 	for doctype in ["Staffing Plan", "Staffing Plan Detail"]:
 		frappe.db.sql("delete from `tab{doctype}`".format(doctype=doctype))
+	make_company()
 
 def make_company():
 	if frappe.db.exists("Company", "_Test Company 3"):
@@ -94,9 +94,3 @@
 	company.default_currency = "INR"
 	company.country = "India"
 	company.insert()
-
-def set_employees():
-	frappe.db.set_value("Employee", "_T-Employee-00001", "designation", "Researcher")
-	frappe.db.set_value("Employee", "_T-Employee-00001", "company", "_Test Company")
-	frappe.db.set_value("Employee", "_T-Employee-00002", "designation", "Researcher")
-	frappe.db.set_value("Employee", "_T-Employee-00002", "company", "_Test Company 3")
