diff --git a/erpnext/hr/doctype/employee/employee.py b/erpnext/hr/doctype/employee/employee.py
index 7285e046480..1401a4d465a 100755
--- a/erpnext/hr/doctype/employee/employee.py
+++ b/erpnext/hr/doctype/employee/employee.py
@@ -4,7 +4,7 @@
from __future__ import unicode_literals
import frappe
-from frappe.utils import getdate, validate_email_add, today, add_years
+from frappe.utils import getdate, validate_email_add, today, add_years, format_datetime
from frappe.model.naming import set_name_by_naming_series
from frappe import throw, _, scrub
from frappe.permissions import add_user_permission, remove_user_permission, \
@@ -223,27 +223,63 @@ def send_birthday_reminders():
if int(frappe.db.get_single_value("HR Settings", "stop_birthday_reminders") or 0):
return
- from frappe.utils.user import get_enabled_system_users
- users = None
-
birthdays = get_employees_who_are_born_today()
if birthdays:
- if not users:
- users = [u.email_id or u.name for u in get_enabled_system_users()]
+ employee_list = frappe.get_all('Employee',
+ fields=['name','employee_name'],
+ filters={'status': 'Active',
+ 'company': birthdays[0]['company']
+ }
+ )
+ employee_emails = get_employee_emails(employee_list)
+ birthday_names = [name["employee_name"] for name in birthdays]
+ birthday_emails = [email["user_id"] or email["personal_email"] or email["company_email"] for email in birthdays]
+
+ birthdays.append({'company_email': '','employee_name': '','personal_email': '','user_id': ''})
for e in birthdays:
- frappe.sendmail(recipients=filter(lambda u: u not in (e.company_email, e.personal_email, e.user_id), users),
- subject=_("Birthday Reminder for {0}").format(e.employee_name),
- message=_("""Today is {0}'s birthday!""").format(e.employee_name),
- reply_to=e.company_email or e.personal_email or e.user_id)
+ if e['company_email'] or e['personal_email'] or e['user_id']:
+ if len(birthday_names) == 1:
+ continue
+ recipients = e['company_email'] or e['personal_email'] or e['user_id']
+
+
+ else:
+ recipients = list(set(employee_emails) - set(birthday_emails))
+
+ frappe.sendmail(recipients=recipients,
+ subject=_("Birthday Reminder"),
+ message=get_birthday_reminder_message(e, birthday_names),
+ header=['Birthday Reminder', 'green'],
+ )
+
+def get_birthday_reminder_message(employee, employee_names):
+ """Get employee birthday reminder message"""
+ pattern = "