summaryrefslogtreecommitdiff
path: root/addons/resource/models/resource.py
diff options
context:
space:
mode:
Diffstat (limited to 'addons/resource/models/resource.py')
-rw-r--r--addons/resource/models/resource.py14
1 files changed, 11 insertions, 3 deletions
diff --git a/addons/resource/models/resource.py b/addons/resource/models/resource.py
index 32da153366d..c464fada7a1 100644
--- a/addons/resource/models/resource.py
+++ b/addons/resource/models/resource.py
@@ -527,7 +527,9 @@ class ResourceCalendar(models.Model):
backwards = (hours < 0)
intervals = []
remaining_hours, iterations = abs(hours * 1.0), 0
- current_datetime = day_dt
+
+ day_dt_tz = to_naive_user_tz(day_dt, self.env.user)
+ current_datetime = day_dt_tz
call_args = dict(compute_leaves=compute_leaves, resource_id=resource_id)
@@ -562,7 +564,11 @@ class ResourceCalendar(models.Model):
def plan_hours(self, hours, day_dt, compute_leaves=False, resource_id=None):
""" Return datetime after having planned hours """
res = self._schedule_hours(hours, day_dt, compute_leaves, resource_id)
- return res and res[0][0] or False
+ if res and hours < 0.0:
+ return res[0][0]
+ elif res:
+ return res[-1][1]
+ return False
@api.multi
def _schedule_days(self, days, day_dt, compute_leaves=False, resource_id=None):
@@ -582,7 +588,9 @@ class ResourceCalendar(models.Model):
backwards = (days < 0)
intervals = []
planned_days, iterations = 0, 0
- current_datetime = day_dt.replace(hour=0, minute=0, second=0, microsecond=0)
+
+ day_dt_tz = to_naive_user_tz(day_dt, self.env.user)
+ current_datetime = day_dt_tz.replace(hour=0, minute=0, second=0, microsecond=0)
while planned_days < abs(days) and iterations < 100:
working_intervals = self._get_day_work_intervals(