From 141ba255e0f077f6f3e09fb4a7ba6bea024b5384 Mon Sep 17 00:00:00 2001 From: NIYAZ RAZAK <76736615+niyazrazak@users.noreply.github.com> Date: Tue, 19 Sep 2023 16:20:47 +0300 Subject: [PATCH] feat: validate duplicate date in holiday list (#37022) * feat: validate duplicate date in table * chore: cleanup * chore: linting issues * chore: linting issues --------- Co-authored-by: Deepesh Garg --- erpnext/setup/doctype/holiday_list/holiday_list.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/erpnext/setup/doctype/holiday_list/holiday_list.py b/erpnext/setup/doctype/holiday_list/holiday_list.py index 526bc2ba4a..df5b40762c 100644 --- a/erpnext/setup/doctype/holiday_list/holiday_list.py +++ b/erpnext/setup/doctype/holiday_list/holiday_list.py @@ -19,6 +19,7 @@ class HolidayList(Document): def validate(self): self.validate_days() self.total_holidays = len(self.holidays) + self.validate_dupliacte_date() @frappe.whitelist() def get_weekly_off_dates(self): @@ -124,6 +125,14 @@ class HolidayList(Document): def clear_table(self): self.set("holidays", []) + def validate_dupliacte_date(self): + unique_dates = [] + for row in self.holidays: + if row.holiday_date in unique_dates: + frappe.throw(_("Holiday Date {0} added multiple times").format(frappe.bold(row.holiday_date))) + + unique_dates.append(row.holiday_date) + @frappe.whitelist() def get_events(start, end, filters=None):