Merge pull request !679 from 李鹏宇/dev_zhou
This commit is contained in:
李鹏宇
2024-12-07 14:22:04 +00:00
committed by Gitee
3 changed files with 92 additions and 69 deletions
@@ -15,21 +15,21 @@
<field eval="False" name="doall"/>
</record>
</data>
<!-- <data noupdate="1">-->
<!-- <record forcecreate="True" id="card_remind_time_in" model="ir.cron">-->
<!-- <field name="name">定时任务:上班打卡提醒</field>-->
<!-- <field name="model_id" ref="model_hr_attendance"/>-->
<!-- <field name="state">code</field>-->
<!-- <field name="code">model.card_remind()</field>-->
<!-- <field eval="False" name="active"/>-->
<!-- <field name="user_id" ref="base.user_root"/>-->
<!-- <field name="interval_number">1</field>-->
<!-- <field name="interval_type">days</field>-->
<!-- <field name="nextcall" eval="(DateTime.now()).strftime('%Y-%m-%d 8:50:00')"/>-->
<!-- <field name="numbercall">-1</field>-->
<!-- <field eval="False" name="doall"/>-->
<!-- </record>-->
<!-- </data>-->
<data noupdate="1">
<record forcecreate="True" id="card_remind_time_in" model="ir.cron">
<field name="name">定时任务:上班打卡提醒</field>
<field name="model_id" ref="model_hr_attendance"/>
<field name="state">code</field>
<field name="code">model.card_remind()</field>
<field eval="False" name="active"/>
<field name="user_id" ref="base.user_root"/>
<field name="interval_number">1</field>
<field name="interval_type">days</field>
<field name="nextcall" eval="(DateTime.now() + timedelta(days=1)).replace(hour=8, minute=50, second=0, microsecond=0)"/>
<field name="numbercall">-1</field>
<field eval="False" name="doall"/>
</record>
</data>
<data noupdate="1">
<record forcecreate="True" id="card_remind_time_out" model="ir.cron">
<field name="name">定时任务:下班打卡提醒</field>
@@ -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
@@ -12,7 +12,7 @@
<attribute name="column_invisible">1</attribute>
</xpath>
<xpath expr="//field[@name='name']" position="attributes">
<attribute name="string">职级名称</attribute>
<attribute name="optional">hide</attribute>
</xpath>
<xpath expr="//field[@name='name']" position="before">
<field name="sequence"/>