diff options
Diffstat (limited to 'addons/resource/models/resource.py')
| -rw-r--r-- | addons/resource/models/resource.py | 14 |
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( |
