@@ -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"/>
|
||||
|
||||
Reference in New Issue
Block a user