!11390 添加功能

Merge pull request !11390 from 李鹏宇/dev_zhou
This commit is contained in:
李鹏宇
2026-05-09 07:14:59 +00:00
committed by Gitee
2 changed files with 12 additions and 13 deletions
@@ -11,9 +11,8 @@ class YuthonRegularizationPrepareApproval(models.Model):
name = fields.Char(string="名称")
department_id = fields.Many2one(related='users_id.employee_id.department_id', string="部门")
users_id = fields.Many2one('res.users', string="申请人", default=lambda self: self.env.user.id)
confirmation_user_id = fields.Many2one('res.users', string="转正人")
confirmation_department_id = fields.Many2one(related='confirmation_user_id.employee_id.department_id', string="转正人部门")
users_id = fields.Many2one('res.users', string="转正人", default=lambda self: self.env.user.id)
confirmation_user_id = fields.Many2one('res.users', string="申请人")
code = fields.Char(string="编号",
default=lambda self: self.env['ir.sequence'].next_by_code('yuthon_regularization_approval_code'))
structure_type_id = fields.Many2one('hr.payroll.structure.type', string="转正前职级")
@@ -51,22 +50,22 @@ class YuthonRegularizationPrepareApproval(models.Model):
else:
self.is_adjust = False
@api.onchange('confirmation_user_id')
def _onchange_confirmation_user_id(self):
@api.onchange('users_id')
def _onchange_users_id(self):
for rec in self:
rec.end_date = False
if rec.confirmation_user_id:
employee = rec.confirmation_user_id.employee_ids[:1]
if rec.users_id:
employee = rec.users_id.employee_ids[:1]
if employee and employee.contract_id and employee.contract_id.end_date:
rec.end_date = employee.contract_id.end_date + relativedelta(days=1)
def end_approval(self):
for rec in self:
version_str = rec.confirmation_user_id.employee_ids.contract_id.version.lstrip('V')
version_str = rec.users_id.employee_ids.contract_id.version.lstrip('V')
main_version = version_str.split('.')[0]
new_main_version = int(main_version) + 1
new_version = f"V{new_main_version}.0"
original_contract = rec.confirmation_user_id.employee_ids.contract_id
original_contract = rec.users_id.employee_ids.contract_id
original_contract.write({'state': 'cancel'})
new_contract_vals = {
@@ -75,8 +74,8 @@ class YuthonRegularizationPrepareApproval(models.Model):
'state': 'open',
}
new_contract = original_contract.with_context(skip_contract_code_check=True).copy(new_contract_vals)
rec.confirmation_user_id.employee_ids.write({'contract_id': new_contract.id})
employee = rec.confirmation_user_id.employee_ids
rec.users_id.employee_ids.write({'contract_id': new_contract.id})
employee = rec.users_id.employee_ids
if rec.is_leave_year == 'yes':
end_date = rec.end_date
amount_days = rec.amount_days
@@ -127,7 +126,7 @@ class YuthonRegularizationPrepareApproval(models.Model):
if rec.is_leave_year == 'yes':
rec.amount_days = 0
end_date = rec.end_date
employee = rec.confirmation_user_id.employee_ids
employee = rec.users_id.employee_ids
# ---------------------- 1. 正则提取工龄 ----------------------
work_year_str = employee.social_insurance_time or ''
year_match = re.search(r'(\d+)年', work_year_str)
@@ -53,8 +53,8 @@
<field name="state" invisible="1"/>
<field name="name" string="标题"/>
<field name="is_back" invisible="1"/>
<field name="users_id" options="{'no_create': True}"/>
<field name="confirmation_user_id" options="{'no_create': True}"/>
<field name="users_id" options="{'no_create': True}"/>
<field name="department_id" invisible="1"/>
<field name="end_date"/>
<field name="work_end" invisible="1"/>