diff --git a/yuthon_salary/models/inherit_hr_payslip.py b/yuthon_salary/models/inherit_hr_payslip.py index 725ec59a6..792fdff00 100644 --- a/yuthon_salary/models/inherit_hr_payslip.py +++ b/yuthon_salary/models/inherit_hr_payslip.py @@ -399,14 +399,14 @@ class InheritHrPayslip(models.Model): record.position_subsidy + record.safety_subsidy + record.job_performance + + record.minus_att + record.duty + record.monthly_overtime + record.excellent_employees - record.performance_deduction - record.commuting_deduction - record.retroactive_insurance - - record.base_salary_deduction - - record.minus_att + record.base_salary_deduction ) diff --git a/yuthon_salary/wizard/temporary_payslip_wizard.py b/yuthon_salary/wizard/temporary_payslip_wizard.py index d9ade02b5..32c07a5c1 100644 --- a/yuthon_salary/wizard/temporary_payslip_wizard.py +++ b/yuthon_salary/wizard/temporary_payslip_wizard.py @@ -56,16 +56,20 @@ class TemporaryPayslipWizard(models.Model): ('is_push', '=', False), ]) line_vals = {} + existing_line_names = [line.name for line in payslip.line_ids] for col_idx in range(1, len(headers)): header = headers[col_idx] cell_value = row[col_idx].value if cell_value in (None, "", " "): continue - for line in payslip.line_ids.search([('name', '=', header), ('employee_id', '=', employee_id.id), ('slip_id.payslip_run_id.name', '=', f'{self.select_year}年-{month_name}')]): - if not line: - raise ValidationError(f'未识别到存在工资项,请检查是否有该项目和格式名称是否对应\n' - f'员工: {employee_id.name}\n批次: {self.select_year}' - f'年-{month_name}\n薪资结构: {payslip.struct_id.name}\n导入工资项名称: {header}') + if header not in existing_line_names: + raise ValidationError( + f'未识别到存在工资项,请检查是否有该项目和格式名称是否对应\n' + f'员工: {employee_id.name}\n批次: {self.select_year}年-{month_name}\n' + f'薪资结构: {payslip.struct_id.name}\n导入工资项名称: {header}' + ) + for line in payslip.line_ids.search([('name', '=', header), ('employee_id', '=', employee_id.id), + ('slip_id.payslip_run_id.name', '=', f'{self.select_year}年-{month_name}')]): line_vals[line.id] = {"total": float(cell_value)} if line_vals: for line_id, vals in line_vals.items():