[IMP] hr_work_entry_contract: Add method to ease inheritance
This commit is contained in:
@@ -90,6 +90,16 @@ class HrContract(models.Model):
|
||||
))
|
||||
return result
|
||||
|
||||
def _get_interval_work_entry_type(self, interval):
|
||||
self.ensure_one()
|
||||
if 'work_entry_type_id' in interval[2] and interval[2].work_entry_type_id[:1]:
|
||||
return interval[2].work_entry_type_id[:1]
|
||||
return self._get_default_work_entry_type()
|
||||
|
||||
def _get_valid_leave_intervals(self, attendances, interval):
|
||||
self.ensure_one()
|
||||
return [interval]
|
||||
|
||||
def _get_contract_work_entries_values(self, date_start, date_stop):
|
||||
start_dt = pytz.utc.localize(date_start) if not date_start.tzinfo else date_start
|
||||
end_dt = pytz.utc.localize(date_stop) if not date_stop.tzinfo else date_stop
|
||||
@@ -138,7 +148,12 @@ class HrContract(models.Model):
|
||||
tz_dates[(tz, end_dt)] = end
|
||||
dt0 = string_to_datetime(leave.date_from).astimezone(tz)
|
||||
dt1 = string_to_datetime(leave.date_to).astimezone(tz)
|
||||
result[resource.id].append((max(start, dt0), min(end, dt1), leave))
|
||||
leave_start_dt = max(start, dt0)
|
||||
leave_end_dt = min(end, dt1)
|
||||
leave_interval = (leave_start_dt, leave_end_dt, leave)
|
||||
leave_interval = contract._get_valid_leave_intervals(attendances, leave_interval)
|
||||
if leave_interval:
|
||||
result[resource.id] += leave_interval
|
||||
mapped_leaves = {r.id: Intervals(result[r.id]) for r in resources_list}
|
||||
leaves = mapped_leaves[resource.id]
|
||||
|
||||
@@ -175,10 +190,8 @@ class HrContract(models.Model):
|
||||
leaves = split_leaves
|
||||
|
||||
# Attendances
|
||||
default_work_entry_type = contract._get_default_work_entry_type()
|
||||
for interval in real_attendances:
|
||||
work_entry_type = 'work_entry_type_id' in interval[2] and interval[2].work_entry_type_id[:1]\
|
||||
or default_work_entry_type
|
||||
work_entry_type = contract._get_interval_work_entry_type(interval)
|
||||
# All benefits generated here are using datetimes converted from the employee's timezone
|
||||
contract_vals += [dict([
|
||||
('name', "%s: %s" % (work_entry_type.name, employee.name)),
|
||||
|
||||
Reference in New Issue
Block a user