Retention Bonus - menu, validate
diff --git a/erpnext/config/hr.py b/erpnext/config/hr.py
index c2ccbd3..ef28ee8 100644
--- a/erpnext/config/hr.py
+++ b/erpnext/config/hr.py
@@ -106,6 +106,10 @@
 					"type": "doctype",
 					"name": "Employee Incentive",
 				},
+				{
+					"type": "doctype",
+					"name": "Retention Bonus",
+				},
 			]
 		},
 		{
diff --git a/erpnext/hr/doctype/retention_bonus/retention_bonus.js b/erpnext/hr/doctype/retention_bonus/retention_bonus.js
index b481af0..58f6b53 100644
--- a/erpnext/hr/doctype/retention_bonus/retention_bonus.js
+++ b/erpnext/hr/doctype/retention_bonus/retention_bonus.js
@@ -2,6 +2,15 @@
 // For license information, please see license.txt
 
 frappe.ui.form.on('Retention Bonus', {
+	setup: function(frm) {
+		frm.set_query("employee", function() {
+			return {
+				filters: {
+					"status": "Active"
+				}
+			};
+		});
+	},
 	refresh: function(frm) {
 
 	}
diff --git a/erpnext/hr/doctype/retention_bonus/retention_bonus.py b/erpnext/hr/doctype/retention_bonus/retention_bonus.py
index 361c9bd..20d4c13 100644
--- a/erpnext/hr/doctype/retention_bonus/retention_bonus.py
+++ b/erpnext/hr/doctype/retention_bonus/retention_bonus.py
@@ -5,10 +5,12 @@
 from __future__ import unicode_literals
 import frappe
 from frappe.model.document import Document
+from frappe import _
+from frappe.utils import getdate
 
 class RetentionBonus(Document):
-	def on_submit(self):
-		pass
-
-	def on_cancel(self):
-		pass
+	def validate(self):
+		if frappe.get_value("Employee", self.employee, "status") == "Left":
+			frappe.throw(_("Cannot create Retention Bonus for left Employees"))
+		if getdate(self.bonus_payment_date) < getdate():
+			frappe.throw(_("Bonus Payment Date cannot be a past date"))