添加功能

This commit is contained in:
李鹏宇
2025-12-03 14:43:26 +08:00
parent 4cbb422f42
commit 4960f50df0
3 changed files with 54 additions and 4 deletions
@@ -14,5 +14,18 @@
<field name="numbercall">-1</field>
<field eval="False" name="doall"/>
</record>
<record forcecreate="True" id="yuthon_regularization_time_data" model="ir.cron">
<field name="name">定时任务:自动生成转正审批</field>
<field name="model_id" ref="model_hr_employee"/>
<field name="state">code</field>
<field name="code">model.regularization_task()</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 00:00:00')"/>
<field name="numbercall">-1</field>
<field eval="False" name="doall"/>
</record>
</data>
</odoo>
@@ -189,6 +189,7 @@ class YuthonHrEmployee(models.Model):
string='薪资计算年金人员'
)
salary_year = fields.Integer(compute='_compute_salary_year', store=True)
is_create = fields.Boolean(string='是否已创建转正流程审批')
last_year_salary = fields.Float(string="年金基数")
converted = fields.Float(string="折算实际系数")
conversion_factor = fields.Float(string="上年有效计算")
@@ -911,3 +912,38 @@ class YuthonHrEmployee(models.Model):
'number_of_days': total_days,
})
def regularization_task(self):
today = fields.Date.today()
target_date = today + timedelta(days=15)
eligible_employees = self.search([
('is_create', '=', False),
('contract_id.is_probation', '=', True),
('contract_id.end_date', '=', target_date),
('contract_id', '!=', False)
])
if not eligible_employees:
return
for employee in eligible_employees:
contract_structure_type = employee.contract_id.structure_type_id
approval_name = f"转正申请表-{employee.name}"
self.env['yuthon.regularization.approval'].create({
'name': approval_name,
'users_id': employee.user_id.id,
'create_uid': employee.user_id.id,
'structure_type_id': contract_structure_type.id,
'structure_type_id1': contract_structure_type.id,
'is_adjust': False,
})
menu_id = self.env['ir.ui.menu'].search([('name', '=', '转正申请表')])
url = f'https://oa.thtzjt.com/web#id={self.id}&cids=2&action={menu_id.action.id}&model=yuthon.regularization.approval&view_type=list&menu_id={menu_id.id}'
self.sudo().env["wecom.apps"].sync_send_message_textcard(category='oa',
user_id=employee.wecom_userid,
title="转正申请",
description=f"""您好!近期即将开展您的转正流程,现就转正申请事宜温馨提醒如下,确保流程顺利推进:
待办工作流:已为您生成「转正申请审批单」待办任务,可登录 OA 查看处理;
提交时限:请于试用期截止前 1 周(即{employee.contract_id.end_date.year}年{employee.contract_id.end_date.month}月{employee.contract_id.end_date.day}日)完成审批单提交,逾期可能影响转正进度;
材料准备:需同步上传《转正申请书》(可向人事部门索取,企业微信联系人事对接人)。""",
url=url, btntxt="详细信息")
employee.write({'is_create': True})
@@ -57,16 +57,17 @@ class YuthonRegularizationPrepareApproval(models.Model):
main_version = version_str.split('.')[0]
new_main_version = int(main_version) + 1
new_version = f"V{new_main_version}.0"
original_contract = rec.employee_ids.contract_id
original_contract = rec.users_id.employee_ids.contract_id
original_contract.write({
'state': 'close',
'state': 'cancel',
})
new_contract_vals = {
'structure_type_id': rec.structure_type_id1.id,
'new_version': new_version,
'version': new_version,
'state': 'open',
}
new_contract = original_contract.with_context(skip_contract_code_check=True).copy(new_contract_vals)
rec.employee_id.write({
rec.users_id.employee_ids.write({
'contract_id': new_contract.id,
})