|
|
|
@@ -33,8 +33,8 @@ class YuthonRunPlanning(models.Model):
|
|
|
|
|
self.env['planning.slot'].create({
|
|
|
|
|
'template_id': self.env['planning.slot.template'].search([('role_id', '=', role_a.id), ('planning_name', '=', '白班')]).id,
|
|
|
|
|
'resource_id': resource_id.id,
|
|
|
|
|
'start_datetime': datetime(current_date.year, current_date.month, current_date.day, start_time) + timedelta(hours=16),
|
|
|
|
|
'end_datetime': datetime(current_date.year, current_date.month, current_date.day, end_time) + timedelta(hours=16),
|
|
|
|
|
'start_datetime': datetime(current_date.year, current_date.month, current_date.day, start_time) + timedelta(hours=16) - timedelta(days=1),
|
|
|
|
|
'end_datetime': datetime(current_date.year, current_date.month, current_date.day, end_time) + timedelta(hours=16) - timedelta(days=1),
|
|
|
|
|
'role_id': role_a.id,
|
|
|
|
|
'allocated_hours': 8,
|
|
|
|
|
})
|
|
|
|
@@ -49,16 +49,23 @@ class YuthonRunPlanning(models.Model):
|
|
|
|
|
while current_date <= last_day_of_month:
|
|
|
|
|
for employee in range(0, len(self.engineering_run_ids)):
|
|
|
|
|
i = i + 1
|
|
|
|
|
slot_id = all_slot.search([('resource_id', '=', self.engineering_run_ids[employee].employee_id.resource_id.id)]).sorted('start_datetime')[i]
|
|
|
|
|
slot_id.sudo().write({
|
|
|
|
|
'template_id': self.env['planning.slot.template'].search([('role_id', '=', role_a.id), ('planning_name', '=', '中值夜班')]).id,
|
|
|
|
|
'start_datetime': datetime(current_date.year, current_date.month, current_date.day,
|
|
|
|
|
start_time2) + timedelta(hours=16) - timedelta(days=1),
|
|
|
|
|
'end_datetime': datetime(current_date.year, current_date.month, current_date.day,
|
|
|
|
|
end_time2) + timedelta(days=1, hours=16) - timedelta(days=1),
|
|
|
|
|
'role_id': role_a.id,
|
|
|
|
|
'allocated_hours': 8,
|
|
|
|
|
})
|
|
|
|
|
slot_id = all_slot.search([('resource_id', '=', self.engineering_run_ids[employee].employee_id.resource_id.id)]).sorted('start_datetime')
|
|
|
|
|
if i < 31:
|
|
|
|
|
slot_id[i].write({
|
|
|
|
|
'template_id': self.env['planning.slot.template'].search([('role_id', '=', role_a.id), ('planning_name', '=', '中值夜班')]).id,
|
|
|
|
|
'start_datetime': datetime(current_date.year, current_date.month, current_date.day,start_time2) + timedelta(hours=16) - timedelta(days=1),
|
|
|
|
|
'end_datetime': datetime(current_date.year, current_date.month, current_date.day,end_time2) + timedelta(days=1, hours=16) - timedelta(days=1),
|
|
|
|
|
'role_id': role_a.id,
|
|
|
|
|
'allocated_hours': 8,
|
|
|
|
|
})
|
|
|
|
|
if i + 1 < len(slot_id):
|
|
|
|
|
slot_id[i + 1].write({
|
|
|
|
|
'template_id': self.env['planning.slot.template'].search([('role_id', '=', role_a.id), ('planning_name', '=', '白班中午值班')]).id,
|
|
|
|
|
'start_datetime': datetime(current_date.year, current_date.month, current_date.day,start_time) + timedelta(days=1, hours=16) - timedelta(days=1),
|
|
|
|
|
'end_datetime': datetime(current_date.year, current_date.month, current_date.day,end_time) + timedelta(days=1, hours=16) - timedelta(days=1),
|
|
|
|
|
'role_id': role_a.id,
|
|
|
|
|
'allocated_hours': 8,
|
|
|
|
|
})
|
|
|
|
|
current_date += timedelta(days=1)
|
|
|
|
|
if current_date > last_day_of_month:
|
|
|
|
|
break
|
|
|
|
@@ -77,19 +84,13 @@ class YuthonRunPlanning(models.Model):
|
|
|
|
|
current_date = first_day_of_month
|
|
|
|
|
while current_date <= last_day_of_month:
|
|
|
|
|
resource_id = employee.employee_id.resource_id
|
|
|
|
|
if other_data[resource_id.id] == datetime(current_date.year, current_date.month,
|
|
|
|
|
current_date.day).weekday():
|
|
|
|
|
pass
|
|
|
|
|
else:
|
|
|
|
|
if not other_data[resource_id.id] == datetime(current_date.year, current_date.month,current_date.day).weekday():
|
|
|
|
|
self.env['planning.slot'].create({
|
|
|
|
|
'template_id': self.env['planning.slot.template'].search([('role_id', '=', role_a.id), ('planning_name', '=', '白班')]).id,
|
|
|
|
|
'resource_id': resource_id.id,
|
|
|
|
|
'start_datetime': datetime(current_date.year, current_date.month, current_date.day,
|
|
|
|
|
start_time) + timedelta(hours=16) - timedelta(days=1),
|
|
|
|
|
'end_datetime': datetime(current_date.year, current_date.month, current_date.day,
|
|
|
|
|
end_time) + timedelta(hours=16) - timedelta(days=1),
|
|
|
|
|
'start_datetime': datetime(current_date.year, current_date.month, current_date.day,start_time) + timedelta(hours=16),
|
|
|
|
|
'end_datetime': datetime(current_date.year, current_date.month, current_date.day,end_time) + timedelta(hours=16),
|
|
|
|
|
'role_id': role_a.id,
|
|
|
|
|
''
|
|
|
|
|
'allocated_hours': 8,
|
|
|
|
|
})
|
|
|
|
|
current_date += timedelta(days=1)
|
|
|
|
@@ -126,9 +127,9 @@ class YuthonRunPlanning(models.Model):
|
|
|
|
|
[('role_id', '=', role_a.id), ('planning_name', '=', '白班')]).id,
|
|
|
|
|
'resource_id': resource_id.id,
|
|
|
|
|
'start_datetime': datetime(current_date.year, current_date.month, current_date.day,
|
|
|
|
|
start_time) + timedelta(hours=16)- timedelta(days=1),
|
|
|
|
|
start_time) + timedelta(hours=16),
|
|
|
|
|
'end_datetime': datetime(current_date.year, current_date.month, current_date.day,
|
|
|
|
|
end_time) + timedelta(hours=16)- timedelta(days=1),
|
|
|
|
|
end_time) + timedelta(hours=16),
|
|
|
|
|
'role_id': role_a.id,
|
|
|
|
|
'allocated_hours': 8,
|
|
|
|
|
})
|
|
|
|
@@ -144,21 +145,33 @@ class YuthonRunPlanning(models.Model):
|
|
|
|
|
current_date = first_day_of_month
|
|
|
|
|
i = -1
|
|
|
|
|
while current_date <= last_day_of_month:
|
|
|
|
|
for employee in range(0, len(self.high_run_ids)):
|
|
|
|
|
for employee in range(0, len(self.engineering_run_ids)):
|
|
|
|
|
i = i + 1
|
|
|
|
|
slot_id = all_slot.search(
|
|
|
|
|
[('resource_id', '=', self.high_run_ids[employee].employee_id.resource_id.id)]).sorted(
|
|
|
|
|
'start_datetime')[i]
|
|
|
|
|
slot_id.sudo().write({
|
|
|
|
|
'template_id': self.env['planning.slot.template'].search(
|
|
|
|
|
[('role_id', '=', role_a.id), ('planning_name', '=', '中值夜班')]).id,
|
|
|
|
|
'start_datetime': datetime(current_date.year, current_date.month, current_date.day,
|
|
|
|
|
start_time2) + timedelta(hours=16)- timedelta(days=1),
|
|
|
|
|
'end_datetime': datetime(current_date.year, current_date.month, current_date.day,
|
|
|
|
|
end_time2) + timedelta(days=1, hours=16)- timedelta(days=1),
|
|
|
|
|
'role_id': role_a.id,
|
|
|
|
|
'allocated_hours': 8,
|
|
|
|
|
})
|
|
|
|
|
[('resource_id', '=', self.engineering_run_ids[employee].employee_id.resource_id.id)]).sorted(
|
|
|
|
|
'start_datetime')
|
|
|
|
|
if i < 31:
|
|
|
|
|
slot_id[i].write({
|
|
|
|
|
'template_id': self.env['planning.slot.template'].search(
|
|
|
|
|
[('role_id', '=', role_a.id), ('planning_name', '=', '中值夜班')]).id,
|
|
|
|
|
'start_datetime': datetime(current_date.year, current_date.month, current_date.day,
|
|
|
|
|
start_time2) + timedelta(hours=16) - timedelta(days=1),
|
|
|
|
|
'end_datetime': datetime(current_date.year, current_date.month, current_date.day,
|
|
|
|
|
end_time2) + timedelta(days=1, hours=16) - timedelta(days=1),
|
|
|
|
|
'role_id': role_a.id,
|
|
|
|
|
'allocated_hours': 8,
|
|
|
|
|
})
|
|
|
|
|
if i + 1 < len(slot_id):
|
|
|
|
|
slot_id[i + 1].write({
|
|
|
|
|
'template_id': self.env['planning.slot.template'].search(
|
|
|
|
|
[('role_id', '=', role_a.id), ('planning_name', '=', '白班中午值班')]).id,
|
|
|
|
|
'start_datetime': datetime(current_date.year, current_date.month, current_date.day,
|
|
|
|
|
start_time) + timedelta(days=1, hours=16) - timedelta(days=1),
|
|
|
|
|
'end_datetime': datetime(current_date.year, current_date.month, current_date.day,
|
|
|
|
|
end_time) + timedelta(days=1, hours=16) - timedelta(days=1),
|
|
|
|
|
'role_id': role_a.id,
|
|
|
|
|
'allocated_hours': 8,
|
|
|
|
|
})
|
|
|
|
|
current_date += timedelta(days=1)
|
|
|
|
|
if current_date > last_day_of_month:
|
|
|
|
|
break
|
|
|
|
@@ -192,10 +205,8 @@ class YuthonRunPlanning(models.Model):
|
|
|
|
|
'template_id': self.env['planning.slot.template'].search(
|
|
|
|
|
[('role_id', '=', role_a.id), ('planning_name', '=', '白班')]).id,
|
|
|
|
|
'resource_id': resource_id.id,
|
|
|
|
|
'start_datetime': datetime(current_date.year, current_date.month, current_date.day,
|
|
|
|
|
start_time) + timedelta(hours=16)- timedelta(days=1),
|
|
|
|
|
'end_datetime': datetime(current_date.year, current_date.month, current_date.day,
|
|
|
|
|
end_time) + timedelta(hours=16)- timedelta(days=1),
|
|
|
|
|
'start_datetime': datetime(current_date.year, current_date.month, current_date.day,start_time) + timedelta(hours=16) - timedelta(days=1),
|
|
|
|
|
'end_datetime': datetime(current_date.year, current_date.month, current_date.day,end_time) + timedelta(hours=16)- timedelta(days=1),
|
|
|
|
|
'role_id': role_a.id,
|
|
|
|
|
'allocated_hours': 8,
|
|
|
|
|
})
|
|
|
|
@@ -211,21 +222,33 @@ class YuthonRunPlanning(models.Model):
|
|
|
|
|
current_date = first_day_of_month
|
|
|
|
|
i = -1
|
|
|
|
|
while current_date <= last_day_of_month:
|
|
|
|
|
for employee in range(0, len(self.all_run_ids)):
|
|
|
|
|
for employee in range(0, len(self.engineering_run_ids)):
|
|
|
|
|
i = i + 1
|
|
|
|
|
slot_id = all_slot.search(
|
|
|
|
|
[('resource_id', '=', self.all_run_ids[employee].employee_id.resource_id.id)]).sorted(
|
|
|
|
|
'start_datetime')[i]
|
|
|
|
|
slot_id.sudo().write({
|
|
|
|
|
'template_id': self.env['planning.slot.template'].search(
|
|
|
|
|
[('role_id', '=', role_a.id), ('planning_name', '=', '中值夜班')]).id,
|
|
|
|
|
'start_datetime': datetime(current_date.year, current_date.month, current_date.day,
|
|
|
|
|
start_time2) + timedelta(hours=16)- timedelta(days=1),
|
|
|
|
|
'end_datetime': datetime(current_date.year, current_date.month, current_date.day,
|
|
|
|
|
end_time2) + timedelta(days=1, hours=16)- timedelta(days=1),
|
|
|
|
|
'role_id': role_a.id,
|
|
|
|
|
'allocated_hours': 8,
|
|
|
|
|
})
|
|
|
|
|
[('resource_id', '=', self.engineering_run_ids[employee].employee_id.resource_id.id)]).sorted(
|
|
|
|
|
'start_datetime')
|
|
|
|
|
if i < 31:
|
|
|
|
|
slot_id[i].write({
|
|
|
|
|
'template_id': self.env['planning.slot.template'].search(
|
|
|
|
|
[('role_id', '=', role_a.id), ('planning_name', '=', '中值夜班')]).id,
|
|
|
|
|
'start_datetime': datetime(current_date.year, current_date.month, current_date.day,
|
|
|
|
|
start_time2) + timedelta(hours=16) - timedelta(days=1),
|
|
|
|
|
'end_datetime': datetime(current_date.year, current_date.month, current_date.day,
|
|
|
|
|
end_time2) + timedelta(days=1, hours=16) - timedelta(days=1),
|
|
|
|
|
'role_id': role_a.id,
|
|
|
|
|
'allocated_hours': 8,
|
|
|
|
|
})
|
|
|
|
|
if i + 1 < len(slot_id):
|
|
|
|
|
slot_id[i + 1].write({
|
|
|
|
|
'template_id': self.env['planning.slot.template'].search(
|
|
|
|
|
[('role_id', '=', role_a.id), ('planning_name', '=', '白班中午值班')]).id,
|
|
|
|
|
'start_datetime': datetime(current_date.year, current_date.month, current_date.day,
|
|
|
|
|
start_time) + timedelta(days=1, hours=16) - timedelta(days=1),
|
|
|
|
|
'end_datetime': datetime(current_date.year, current_date.month, current_date.day,
|
|
|
|
|
end_time) + timedelta(days=1, hours=16) - timedelta(days=1),
|
|
|
|
|
'role_id': role_a.id,
|
|
|
|
|
'allocated_hours': 8,
|
|
|
|
|
})
|
|
|
|
|
current_date += timedelta(days=1)
|
|
|
|
|
if current_date > last_day_of_month:
|
|
|
|
|
break
|
|
|
|
|