Commit b335befb authored by Romain Courteaud's avatar Romain Courteaud

Improve precision in time calculation

git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@13985 20353a03-c40f-0410-a6d1-a30d3c3de9de
parent 0b959525
......@@ -143,9 +143,9 @@ class CalendarPeriod(Movement, PeriodicityMixin):
stop_date = self.getStopDate(start_date)
periodicity_stop_date = self.getPeriodicityStopDate(
start_date)
duration = stop_date - start_date
second_duration = int(stop_date) - int(start_date)
# First date has to respect the periodicity config
next_start_date = self.getNextPeriodicalDate(start_date-1)
next_start_date = self.getNextPeriodicalDate(addToDate(start_date, day=-1))
while (next_start_date is not None) and \
(next_start_date <= periodicity_stop_date):
......@@ -163,7 +163,8 @@ class CalendarPeriod(Movement, PeriodicityMixin):
(current_exception_date < next_start_date.Date()):
# SQL method don't like iterator
# yield (next_start_date, next_start_date+duration)
result.append([next_start_date, next_start_date+duration])
result.append([next_start_date, addToDate(next_start_date,
second=second_duration)])
# Update the next exception date
if len(exception_date_list) != 0:
current_exception_date = exception_date_list.pop(0).Date()
......@@ -172,7 +173,8 @@ class CalendarPeriod(Movement, PeriodicityMixin):
else:
# SQL method don't like iterator
# yield (next_start_date, next_start_date+duration)
result.append([next_start_date, next_start_date+duration])
result.append([next_start_date, addToDate(next_start_date,
second=second_duration)])
next_start_date = self.getNextPeriodicalDate(next_start_date)
return result
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment