From 0b6fa018d63fce653a7fb939e789b71957d1f974 Mon Sep 17 00:00:00 2001 From: Anand Doshi Date: Wed, 14 Aug 2013 10:50:19 +0530 Subject: [PATCH] [fix] [minor] create birthday event only for active employees, else delete it --- hr/doctype/employee/employee.py | 13 ++++++++----- ...loyee_birthdays.py => p05_employee_birthdays.py} | 8 +++++--- patches/patch_list.py | 2 +- 3 files changed, 14 insertions(+), 9 deletions(-) rename patches/august_2013/{p04_employee_birthdays.py => p05_employee_birthdays.py} (50%) diff --git a/hr/doctype/employee/employee.py b/hr/doctype/employee/employee.py index f1646f7265..e28e02d81b 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/p05_employee_birthdays.py similarity index 50% rename from patches/august_2013/p04_employee_birthdays.py rename to patches/august_2013/p05_employee_birthdays.py index 6e8481d0d6..9ad0c99151 100644 --- a/patches/august_2013/p04_employee_birthdays.py +++ b/patches/august_2013/p05_employee_birthdays.py @@ -5,7 +5,9 @@ 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() + 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 9e6938b44e..13a80f42fc 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