Get Weekly Off dates now gets dates dynamically
Fixed Holiday List test records
diff --git a/erpnext/hr/doctype/holiday_list/holiday_list.py b/erpnext/hr/doctype/holiday_list/holiday_list.py
index a796403..de4f876 100644
--- a/erpnext/hr/doctype/holiday_list/holiday_list.py
+++ b/erpnext/hr/doctype/holiday_list/holiday_list.py
@@ -4,7 +4,7 @@
from __future__ import unicode_literals
import frappe
-from frappe.utils import cint
+from frappe.utils import cint, get_datetime
from frappe import throw, _
from frappe.model.document import Document
@@ -18,7 +18,6 @@
def get_weekly_off_dates(self):
self.validate_values()
- self.validate_weekly_days()
date_list = self.get_weekly_off_date_list(self.from_date, self.to_date)
last_idx = max([cint(d.idx) for d in self.get("holidays")] or [0,])
for i, d in enumerate(date_list):
@@ -65,18 +64,23 @@
def get_weekly_off_date_list(self, start_date, end_date):
from frappe.utils import getdate
- year_start_date, year_end_date = getdate(start_date), getdate(end_date)
+ start_date, end_date = getdate(start_date), getdate(end_date)
from dateutil import relativedelta
from datetime import timedelta
import calendar
date_list = []
+ existing_date_list = []
weekday = getattr(calendar, (self.weekly_off).upper())
- reference_date = year_start_date + relativedelta.relativedelta(weekday=weekday)
+ reference_date = start_date + relativedelta.relativedelta(weekday=weekday)
+
+ for holiday in self.get("holidays"):
+ existing_date_list.append(get_datetime(holiday.holiday_date).date())
- while reference_date <= year_end_date:
- date_list.append(reference_date)
+ while reference_date <= end_date:
+ if reference_date not in existing_date_list:
+ date_list.append(reference_date)
reference_date += timedelta(days=7)
return date_list
diff --git a/erpnext/hr/doctype/holiday_list/test_records.json b/erpnext/hr/doctype/holiday_list/test_records.json
index a8cf56b..0a0afe8 100644
--- a/erpnext/hr/doctype/holiday_list/test_records.json
+++ b/erpnext/hr/doctype/holiday_list/test_records.json
@@ -1,7 +1,8 @@
[
{
"doctype": "Holiday List",
- "fiscal_year": "_Test Fiscal Year 2013",
+ "from_date": "2013-01-01",
+ "to_date":"2013-12-31",
"holidays": [
{
"description": "New Year",