Get Weekly Off dates now gets dates dynamically

Fixed Holiday List test records
This commit is contained in:
Valmik Jangla 2016-03-09 14:58:46 +05:30 committed by Anand Doshi
parent 3085186182
commit c666030f34
2 changed files with 12 additions and 7 deletions

View File

@ -4,7 +4,7 @@
from __future__ import unicode_literals from __future__ import unicode_literals
import frappe import frappe
from frappe.utils import cint from frappe.utils import cint, get_datetime
from frappe import throw, _ from frappe import throw, _
from frappe.model.document import Document from frappe.model.document import Document
@ -18,7 +18,6 @@ class HolidayList(Document):
def get_weekly_off_dates(self): def get_weekly_off_dates(self):
self.validate_values() self.validate_values()
self.validate_weekly_days()
date_list = self.get_weekly_off_date_list(self.from_date, self.to_date) 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,]) last_idx = max([cint(d.idx) for d in self.get("holidays")] or [0,])
for i, d in enumerate(date_list): for i, d in enumerate(date_list):
@ -65,18 +64,23 @@ class HolidayList(Document):
def get_weekly_off_date_list(self, start_date, end_date): def get_weekly_off_date_list(self, start_date, end_date):
from frappe.utils import getdate 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 dateutil import relativedelta
from datetime import timedelta from datetime import timedelta
import calendar import calendar
date_list = [] date_list = []
existing_date_list = []
weekday = getattr(calendar, (self.weekly_off).upper()) 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: while reference_date <= end_date:
date_list.append(reference_date) if reference_date not in existing_date_list:
date_list.append(reference_date)
reference_date += timedelta(days=7) reference_date += timedelta(days=7)
return date_list return date_list

View File

@ -1,7 +1,8 @@
[ [
{ {
"doctype": "Holiday List", "doctype": "Holiday List",
"fiscal_year": "_Test Fiscal Year 2013", "from_date": "2013-01-01",
"to_date":"2013-12-31",
"holidays": [ "holidays": [
{ {
"description": "New Year", "description": "New Year",