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