feature to set / unset birthday reminders webnotes/erpnext#851
diff --git a/hr/doctype/employee/employee.py b/hr/doctype/employee/employee.py
index e8396eb..b46123a 100644
--- a/hr/doctype/employee/employee.py
+++ b/hr/doctype/employee/employee.py
@@ -4,7 +4,7 @@
from __future__ import unicode_literals
import webnotes
-from webnotes.utils import getdate, validate_email_add, cstr
+from webnotes.utils import getdate, validate_email_add, cstr, cint
from webnotes.model.doc import make_autoname
from webnotes import msgprint, _
@@ -39,12 +39,12 @@
self.validate_email()
self.validate_status()
self.validate_employee_leave_approver()
+ self.update_dob_event()
def on_update(self):
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)
@@ -155,10 +155,11 @@
raise_exception=InvalidLeaveApproverError)
def update_dob_event(self):
- if self.doc.status == "Active" and self.doc.date_of_birth:
+ if self.doc.status == "Active" and self.doc.date_of_birth \
+ and not cint(webnotes.conn.get_value("HR Settings", None, "stop_birthday_reminders")):
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"
diff --git a/hr/doctype/hr_settings/hr_settings.py b/hr/doctype/hr_settings/hr_settings.py
index 784339d..101905c 100644
--- a/hr/doctype/hr_settings/hr_settings.py
+++ b/hr/doctype/hr_settings/hr_settings.py
@@ -6,6 +6,24 @@
from __future__ import unicode_literals
import webnotes
+from webnotes.utils import cint
+
class DocType:
def __init__(self, d, dl):
- self.doc, self.doclist = d, dl
\ No newline at end of file
+ self.doc, self.doclist = d, dl
+
+ def validate(self):
+ self.original_stop_birthday_reminders = cint(webnotes.conn.get_value("HR Settings",
+ None, "stop_birthday_reminders"))
+
+ def on_update(self):
+ # reset birthday reminders
+ if cint(self.doc.stop_birthday_reminders) != self.original_stop_birthday_reminders:
+ webnotes.conn.sql("""delete from `tabEvent` where repeat_on='Every Year' and ref_type='Employee'""")
+
+ if not self.doc.stop_birthday_reminders:
+ for employee in webnotes.conn.sql_list("""select name from `tabEmployee` where status='Active' and
+ ifnull(date_of_birth, '')!=''"""):
+ webnotes.get_obj("Employee", employee).update_dob_event()
+
+ webnotes.msgprint(webnotes._("Updated Birthday Reminders"))
\ No newline at end of file
diff --git a/hr/doctype/hr_settings/hr_settings.txt b/hr/doctype/hr_settings/hr_settings.txt
index e3694d0..bf4b011 100644
--- a/hr/doctype/hr_settings/hr_settings.txt
+++ b/hr/doctype/hr_settings/hr_settings.txt
@@ -2,7 +2,7 @@
{
"creation": "2013-08-02 13:45:23",
"docstatus": 0,
- "modified": "2013-08-02 14:22:26",
+ "modified": "2013-10-02 15:44:38",
"modified_by": "Administrator",
"owner": "Administrator"
},
@@ -39,6 +39,12 @@
"name": "HR Settings"
},
{
+ "doctype": "DocField",
+ "fieldname": "employee_settings",
+ "fieldtype": "Section Break",
+ "label": "Employee Settings"
+ },
+ {
"description": "Employee record is created using selected field. ",
"doctype": "DocField",
"fieldname": "emp_created_by",
@@ -47,6 +53,19 @@
"options": "Naming Series\nEmployee Number"
},
{
+ "description": "Don't send Employee Birthday Reminders",
+ "doctype": "DocField",
+ "fieldname": "stop_birthday_reminders",
+ "fieldtype": "Check",
+ "label": "Stop Birthday Reminders"
+ },
+ {
+ "doctype": "DocField",
+ "fieldname": "payroll_settings",
+ "fieldtype": "Section Break",
+ "label": "Payroll Settings"
+ },
+ {
"description": "If checked, Total no. of Working Days will include holidays, and this will reduce the value of Salary Per Day",
"doctype": "DocField",
"fieldname": "include_holidays_in_total_working_days",