[issue] webnotes/erpnext#647 - recurring event for employee birthdays
diff --git a/hr/doctype/employee/employee.py b/hr/doctype/employee/employee.py
index 690bd55..89f9856 100644
--- a/hr/doctype/employee/employee.py
+++ b/hr/doctype/employee/employee.py
@@ -45,6 +45,7 @@
 		if self.doc.user_id:
 			self.update_user_default()
 			self.update_profile()
+		self.update_dob_event()
 				
 	def update_user_default(self):
 		webnotes.conn.set_default("employee", self.doc.name, self.doc.user_id)
@@ -154,6 +155,31 @@
 				msgprint(_("Invalid Leave Approver") + ": \"" + l.leave_approver + "\"",
 					raise_exception=InvalidLeaveApproverError)
 
+	def update_dob_event(self):
+		get_events = webnotes.conn.sql("""select name from `tabEvent` where repeat_on='Every Year' 
+			and ref_type='Employee' and ref_name=%s""", (self.doc.name), as_dict=1)
+
+		starts_on = self.doc.date_of_birth + " 00:00:00"
+		ends_on = self.doc.date_of_birth + " 00:15:00"
+
+		if get_events:
+			webnotes.conn.sql("""update `tabEvent` set starts_on=%s, ends_on=%s 
+				where name=%s""", (get_events[0].name, starts_on, ends_on)
+		else:
+			event_wrapper = webnotes.bean({
+				"doctype": "Event",
+				"subject": _("Birthday") + ": " + self.doc.employee_name,
+				"starts_on": starts_on,
+				"ends_on": ends_on,
+				"event_type": "Public",
+				"all_day": 1,
+				"send_reminder": 1,
+				"repeat_this_event": 1,
+				"repeat_on": "Every Year",
+				"ref_type": "Employee",
+				"ref_name": self.doc.name
+			}).insert()
+
 @webnotes.whitelist()
 def get_retirement_date(date_of_birth=None):
 	import datetime