feat: Employee reminders (#25735) (#27115)
* feat: Add reminders section to HR Settings
* refactor: Extract generic function for getting Employees
* feat: Employee Work Anniversary Reminder
* feat: Daily Holiday Reminder
* fix: Unnecessary params and replace [] with .get()
* test: Daily Holiday Reminders
* test: is_holiday basic tests
* refactor: Move employee reminders code to separate module
* feat: Add advance reminder to HR settings
* feat: Advance Holiday Reminders
* refactor: get_holidays_for_employee
* feat: Email holiday reminders in advance + tests
* fix: Remove unused import
* refactor: HR Setting Reminder Section
* refactor: Remove Daily Holiday Reminders feat
* feat: Reminder miss warning
* fix: Failing test and function name change
* chore: Add patch for field rename
* chore: Rename frequency label
* fix: Failing patch test
* fix: sider and removed description of fields
* fix: email alignment
Co-authored-by: pateljannat <pateljannat2308@gmail.com>
Co-authored-by: Jannat Patel <31363128+pateljannat@users.noreply.github.com>
(cherry picked from commit 24b2a315818d08ad4cb03347ccf5297df916a5ac)
Co-authored-by: Mohammad Hussain Nagaria <34810212+NagariaHussain@users.noreply.github.com>
Co-authored-by: Jannat Patel <31363128+pateljannat@users.noreply.github.com>
diff --git a/erpnext/templates/emails/anniversary_reminder.html b/erpnext/templates/emails/anniversary_reminder.html
new file mode 100644
index 0000000..ac9f7e4
--- /dev/null
+++ b/erpnext/templates/emails/anniversary_reminder.html
@@ -0,0 +1,25 @@
+<div class="gray-container text-center">
+ <div>
+ {% for person in anniversary_persons %}
+ {% if person.image %}
+ <img
+ class="avatar-frame standard-image"
+ src="{{ person.image }}"
+ style="{{ css_style or '' }}"
+ title="{{ person.name }}">
+ </span>
+ {% else %}
+ <span
+ class="avatar-frame standard-image"
+ style="{{ css_style or '' }}"
+ title="{{ person.name }}">
+ {{ frappe.utils.get_abbr(person.name) }}
+ </span>
+ {% endif %}
+ {% endfor %}
+ </div>
+ <div style="margin-top: 15px">
+ <span>{{ reminder_text }}</span>
+ <p class="text-muted">{{ message }}</p>
+ </div>
+</div>
\ No newline at end of file
diff --git a/erpnext/templates/emails/holiday_reminder.html b/erpnext/templates/emails/holiday_reminder.html
new file mode 100644
index 0000000..e38d27b
--- /dev/null
+++ b/erpnext/templates/emails/holiday_reminder.html
@@ -0,0 +1,16 @@
+<div>
+ <span>{{ reminder_text }}</span>
+ <p class="text-muted">{{ message }}</p>
+</div>
+
+{% if advance_holiday_reminder %}
+ {% if holidays | len > 0 %}
+ <ol>
+ {% for holiday in holidays %}
+ <li>{{ frappe.format(holiday.holiday_date, 'Date') }} - {{ holiday.description }}</li>
+ {% endfor %}
+ </ol>
+ {% else %}
+ <p>You don't have no upcoming holidays this {{ frequency }}.</p>
+ {% endif %}
+{% endif %}