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