diff options
| author | jbm-odoo <jbm@odoo.com> | 2020-01-24 10:32:46 +0000 |
|---|---|---|
| committer | Yannick Tivisse <yti@odoo.com> | 2020-01-28 14:16:21 +0000 |
| commit | 41a465bc869a96b7a4e2b49a691360827019b0ea (patch) | |
| tree | 4128dd65027b0b3ee36fc42a61c5820e5df7694f /addons/resource | |
| parent | 9d98c43581e2579f43b35541b43264866dede5a5 (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.py | 20 |
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 |
