diff --git a/hr/doctype/employee/employee.py b/hr/doctype/employee/employee.py index f1646f7265c..e28e02d81bb 100644 --- a/hr/doctype/employee/employee.py +++ b/hr/doctype/employee/employee.py @@ -156,20 +156,23 @@ class DocType: 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 6e8481d0d6b..00000000000 --- 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 00000000000..9ad0c99151d --- /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 9e6938b44e9..13a80f42fcf 100644 --- a/patches/patch_list.py +++ b/patches/patch_list.py @@ -254,5 +254,5 @@ patch_list = [ "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