!3453 添加功能

Merge pull request !3453 from 李鹏宇/dev_zhou
This commit is contained in:
李鹏宇
2025-06-22 11:19:30 +00:00
committed by Gitee
3 changed files with 13 additions and 5 deletions
@@ -167,6 +167,13 @@ class YuthonHrEmployee(models.Model):
# 工资计算分组
salary_group_id = fields.Many2one('yuthon.salary.group', string="工资单分组", store=True)
salary_date = fields.Date(string="薪资计算时间", store=True)
salary_year_jin_ids = fields.Many2many(
'hr.employee', # 自关联到hr.employee
relation='hr_employee_salary_year_jin_rel', # 显式指定关联表名
column1='employee_id', # 当前员工ID在关联表中的字段名
column2='related_employee_id', # 关联员工ID在关联表中的字段名
string='薪资计算年金人员'
)
salary_year = fields.Integer(compute='_compute_salary_year', store=True)
last_year_salary = fields.Float(string="年金基数")
converted = fields.Float(string="折算实际系数")
@@ -234,12 +241,11 @@ class YuthonHrEmployee(models.Model):
record.subsidy_amount = amount
@api.depends('converted')
@api.depends('converted', 'salary_year_jin_ids')
def _compute_total_coefficients(self):
for record in self:
company_employees = self.env['hr.employee'].search([])
record.total_coefficients = sum(employee.converted for employee in company_employees)
record.calculation_totals = sum(employee.conversion_factor for employee in company_employees)
record.total_coefficients = sum(employee.converted for employee in self.salary_year_jin_ids)
record.calculation_totals = sum(employee.conversion_factor for employee in self.salary_year_jin_ids)
@api.depends('contract_id')
def _compute_resource_calendar_id(self):
@@ -166,7 +166,8 @@
</group>
<group>
<field name="converted"/>
<field name="total_coefficients"/>
<field name="total_coefficients" column_invisible="1"/>
<field name="salary_year_jin_ids" widget="many2many_tags" column_invisible="1"/>
<field name="conversion_factor"/>
<field name="calculation_totals"/>
</group>
@@ -85,6 +85,7 @@ class SalaryComputeWizard(models.Model):
('date_to', '>=', start_date)
])
employee.salary_date = start_date
employee.salary_year_jin_ids = [(6, 0, self.employee_ids.ids)]
# if existing_payslip:
# raise UserError(f"员工 {employee.name} 在 {start_date} 到 {end_date} 日期范围内已有工资单记录,无法创建新的工资单。")
self.env['hr.payslip'].create({