[fix] [minor] create birthday event only for active employees, else delete it
diff --git a/hr/doctype/employee/employee.py b/hr/doctype/employee/employee.py
index f1646f7..e28e02d 100644
--- a/hr/doctype/employee/employee.py
+++ b/hr/doctype/employee/employee.py
@@ -156,20 +156,23 @@
raise_exception=InvalidLeaveApproverError)
def update_dob_event(self):
- if self.doc.date_of_birth:
- get_events = webnotes.conn.sql("""select name from `tabEvent` where repeat_on='Every Year'
+ if self.doc.status == "Active" and self.doc.date_of_birth:
+ birthday_event = webnotes.conn.sql("""select name from `tabEvent` where repeat_on='Every Year'
and ref_type='Employee' and ref_name=%s""", self.doc.name)
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""", (starts_on, ends_on, get_events[0][0]))
+ if birthday_event:
+ event = webnotes.bean("Event", birthday_event[0][0])
+ event.doc.starts_on = starts_on
+ event.doc.ends_on = ends_on
+ event.save()
else:
webnotes.bean({
"doctype": "Event",
"subject": _("Birthday") + ": " + self.doc.employee_name,
+ "description": _("Happy Birthday!") + " " + self.doc.employee_name,
"starts_on": starts_on,
"ends_on": ends_on,
"event_type": "Public",
diff --git a/patches/august_2013/p04_employee_birthdays.py b/patches/august_2013/p04_employee_birthdays.py
deleted file mode 100644
index 6e8481d..0000000
--- a/patches/august_2013/p04_employee_birthdays.py
+++ /dev/null
@@ -1,11 +0,0 @@
-# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
-# License: GNU General Public License v3. See license.txt
-
-from __future__ import unicode_literals
-import webnotes
-
-def execute():
- for employee in webnotes.conn.sql_list("""select name from `tabEmployee` where ifnull(date_of_birth, '')!=''"""):
- obj = webnotes.get_obj("Employee", employee)
- obj.update_dob_event()
-
\ No newline at end of file
diff --git a/patches/august_2013/p05_employee_birthdays.py b/patches/august_2013/p05_employee_birthdays.py
new file mode 100644
index 0000000..9ad0c99
--- /dev/null
+++ b/patches/august_2013/p05_employee_birthdays.py
@@ -0,0 +1,13 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
+from __future__ import unicode_literals
+import webnotes
+
+def execute():
+ webnotes.conn.sql("""delete from `tabEvent` where repeat_on='Every Year' and ref_type='Employee'""")
+ for employee in webnotes.conn.sql_list("""select name from `tabEmployee` where status='Active' and
+ ifnull(date_of_birth, '')!=''"""):
+ obj = webnotes.get_obj("Employee", employee)
+ obj.update_dob_event()
+
\ No newline at end of file
diff --git a/patches/patch_list.py b/patches/patch_list.py
index 9e6938b..13a80f4 100644
--- a/patches/patch_list.py
+++ b/patches/patch_list.py
@@ -254,5 +254,5 @@
"patches.august_2013.p01_hr_settings",
"patches.august_2013.p02_rename_price_list",
"patches.august_2013.p03_pos_setting_replace_customer_account",
- "patches.august_2013.p04_employee_birthdays",
+ "patches.august_2013.p05_employee_birthdays",
]
\ No newline at end of file