summaryrefslogtreecommitdiff
path: root/addons/resource
diff options
context:
space:
mode:
authorjbm-odoo <jbm@odoo.com>2020-01-24 10:32:46 +0000
committerYannick Tivisse <yti@odoo.com>2020-01-28 14:16:21 +0000
commit41a465bc869a96b7a4e2b49a691360827019b0ea (patch)
tree4128dd65027b0b3ee36fc42a61c5820e5df7694f /addons/resource
parent9d98c43581e2579f43b35541b43264866dede5a5 (diff)
[FIX] hr_work_entry: Closed contract
When a contract is closed, set the date of the day. In the contract cron, ensure that all closed contracts have an end date if it is followed by a new contract. Add multi-edit on work_entry list closes odoo/odoo#44118 Taskid: 2180263 X-original-commit: 0b5d8ce756eac904a040ca700f44ea860daefcb4 Related: odoo/enterprise#7991 Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
Diffstat (limited to 'addons/resource')
-rw-r--r--addons/resource/models/resource.py20
1 files changed, 10 insertions, 10 deletions
diff --git a/addons/resource/models/resource.py b/addons/resource/models/resource.py
index 24977ae0284..d24820b1c7d 100644
--- a/addons/resource/models/resource.py
+++ b/addons/resource/models/resource.py
@@ -316,9 +316,9 @@ class ResourceCalendar(models.Model):
# --------------------------------------------------
# Computation API
# --------------------------------------------------
- def _attendance_intervals(self, start_dt, end_dt, resource=None, domain=None):
+ def _attendance_intervals(self, start_dt, end_dt, resource=None, domain=None, tz=None):
""" Return the attendance intervals in the given datetime range.
- The returned intervals are expressed in the resource's timezone.
+ The returned intervals are expressed in specified tz or in the resource's timezone.
"""
assert start_dt.tzinfo and end_dt.tzinfo
combine = datetime.combine
@@ -331,8 +331,8 @@ class ResourceCalendar(models.Model):
('display_type', '=', False),
]])
- # express all dates and times in the resource's timezone
- tz = timezone((resource or self).tz)
+ # express all dates and times in specified tz or in the resource's timezone
+ tz = tz if tz else timezone((resource or self).tz)
start_dt = start_dt.astimezone(tz)
end_dt = end_dt.astimezone(tz)
@@ -366,9 +366,9 @@ class ResourceCalendar(models.Model):
return Intervals(result)
- def _leave_intervals(self, start_dt, end_dt, resource=None, domain=None):
+ def _leave_intervals(self, start_dt, end_dt, resource=None, domain=None, tz=None):
""" Return the leave intervals in the given datetime range.
- The returned intervals are expressed in the calendar's timezone.
+ The returned intervals are expressed in specified tz or in the calendar's timezone.
"""
assert start_dt.tzinfo and end_dt.tzinfo
self.ensure_one()
@@ -385,7 +385,7 @@ class ResourceCalendar(models.Model):
]
# retrieve leave intervals in (start_dt, end_dt)
- tz = timezone((resource or self).tz)
+ tz = tz if tz else timezone((resource or self).tz)
start_dt = start_dt.astimezone(tz)
end_dt = end_dt.astimezone(tz)
result = []
@@ -396,10 +396,10 @@ class ResourceCalendar(models.Model):
return Intervals(result)
- def _work_intervals(self, start_dt, end_dt, resource=None, domain=None):
+ def _work_intervals(self, start_dt, end_dt, resource=None, domain=None, tz=None):
""" Return the effective work intervals between the given datetimes. """
- return (self._attendance_intervals(start_dt, end_dt, resource) -
- self._leave_intervals(start_dt, end_dt, resource, domain))
+ return (self._attendance_intervals(start_dt, end_dt, resource, tz=tz) -
+ self._leave_intervals(start_dt, end_dt, resource, domain, tz=tz))
# --------------------------------------------------
# Private Methods / Helpers