summaryrefslogtreecommitdiff
path: root/addons/resource/models/resource.py
diff options
context:
space:
mode:
authorChristophe Simonis <chs@odoo.com>2017-06-15 18:44:16 +0200
committerChristophe Simonis <chs@odoo.com>2017-06-15 18:44:16 +0200
commit1b50c829ef383705647d0c2df7c89e9051ec40fb (patch)
tree036df47c7cf94424f04d7ff9dac371fb79e2b1e4 /addons/resource/models/resource.py
parent0c2e018d4c416d0f47a3b64f1c28ce067dbab291 (diff)
parent9713dc2e1f515b1260eaf26ec6bbfd5443f37d65 (diff)
[MERGE] forward port branch saas-15 up to 9713dc2e1f5
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(