[FIX] In some cases, the half hours are not considered in intervals computation

This commit is contained in:
Adrien Peiffer (ACSONE) 2016-02-15 16:07:44 +01:00 committed by Goffin Simon
parent 1d7c12022d
commit 5e940643a5
1 changed files with 3 additions and 2 deletions

View File

@ -20,6 +20,7 @@
############################################################################## ##############################################################################
import datetime import datetime
from datetime import timedelta
from dateutil import rrule from dateutil import rrule
from dateutil.relativedelta import relativedelta from dateutil.relativedelta import relativedelta
from operator import itemgetter from operator import itemgetter
@ -338,8 +339,8 @@ class resource_calendar(osv.osv):
working_intervals = [] working_intervals = []
tz_info = fields.datetime.context_timestamp(cr, uid, work_dt, context=context).tzinfo tz_info = fields.datetime.context_timestamp(cr, uid, work_dt, context=context).tzinfo
for calendar_working_day in self.get_attendances_for_weekdays(cr, uid, id, [start_dt.weekday()], context): for calendar_working_day in self.get_attendances_for_weekdays(cr, uid, id, [start_dt.weekday()], context):
x = work_dt.replace(hour=int(calendar_working_day.hour_from)) x = work_dt.replace(hour=0, minute=0, second=0) + timedelta(seconds=(calendar_working_day.hour_from * 3600))
y = work_dt.replace(hour=int(calendar_working_day.hour_to)) y = work_dt.replace(hour=0, minute=0, second=0) + timedelta(seconds=(calendar_working_day.hour_to * 3600))
x = x.replace(tzinfo=tz_info).astimezone(pytz.UTC).replace(tzinfo=None) x = x.replace(tzinfo=tz_info).astimezone(pytz.UTC).replace(tzinfo=None)
y = y.replace(tzinfo=tz_info).astimezone(pytz.UTC).replace(tzinfo=None) y = y.replace(tzinfo=tz_info).astimezone(pytz.UTC).replace(tzinfo=None)
working_interval = (x, y) working_interval = (x, y)