[FIX] In some cases, the half hours are not considered in intervals computation
This commit is contained in:
parent
1d7c12022d
commit
5e940643a5
|
@ -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)
|
||||||
|
|
Loading…
Reference in New Issue