添加功能

This commit is contained in:
zhou
2025-05-06 10:47:30 +08:00
parent 4131774bb1
commit 29d64ad042
+51 -50
View File
@@ -93,60 +93,61 @@ class SalaryComputeWizard(models.Model):
})
payslip.compute_sheet()
internship_ids = self.env['hr.payslip'].search([
('employee_id.name', '=', '王鸿怡'),
('employee_id.contract_id.is_probation', '=', True),
('date_from', '<=', end_date),
('date_to', '>=', start_date)
])
# if internship_ids:
# for internship_id in internship_ids:
# start_date = internship_id.date_from
# end_date = internship_id.date_to
# contract_start_date = internship_id.employee_id.contract_id.start_date
# contract_end_date = internship_id.employee_id.contract_id.end_date
# if (contract_end_date <= start_date and contract_start_date >= end_date) or (start_date < contract_start_date <= end_date):
# if internship_id.line_ids:
# target_names = {
# '基本工资': 'base_salary',
# '职级工资': 'rank_salary',
# '岗位工资': 'post_salary',
# '预发绩效奖金': 'performance_bonuses',
# '通讯补贴': 'commuting_allowance',
# '工龄工资': 'seniority_salary'
# }
# for line in internship_id.line_ids:
# if line.name in target_names:
# result = line.total * 0.8
# field_name = target_names[line.name]
# setattr(internship_id, field_name, result)
# line.write({'total': result})
# elif contract_end_date.year == end_date.year and contract_end_date.month == end_date.month:
# leave_days = self._create_leave_record(start_date, end_date)
# days = leave_days.number_of_days
# leave_days.unlink()
# days = self._process_shift_days(days, start_date, end_date) # 总工作日
# leave_internship = self._create_leave_record(start_date, contract_end_date)
# internship_days = leave_internship.number_of_days
# leave_internship.unlink()
# internship_days = self._process_shift_days(internship_days, start_date, contract_end_date) # 实习期工作日
# leave_work = self._create_leave_record(contract_end_date, end_date)
# work_days = leave_work.number_of_days
# leave_work.unlink()
# work_days = self._process_shift_days(work_days, contract_end_date, end_date) # 转正工作日
# if internship_id.line_ids:
# target_names = {
# '基本工资': 'base_salary',
# '职级工资': 'rank_salary',
# '岗位工资': 'post_salary',
# '预发绩效奖金': 'performance_bonuses',
# '通讯补贴': 'commuting_allowance',
# '工龄工资': 'seniority_salary'
# }
# for line in internship_id.line_ids:
# if line.name in target_names:
# result = line.total * 0.8 * internship_days / days + line.total * 0.8 * work_days / days
# field_name = target_names[line.name]
# setattr(internship_id, field_name, result)
# line.write({'total': result})
if internship_ids:
for internship_id in internship_ids:
start_date = internship_id.date_from
end_date = internship_id.date_to
contract_start_date = internship_id.employee_id.contract_id.start_date
contract_end_date = internship_id.employee_id.contract_id.end_date
if (contract_end_date <= start_date and contract_start_date >= end_date) or (start_date < contract_start_date <= end_date):
if internship_id.line_ids:
target_names = {
'基本工资': 'base_salary',
'职级工资': 'rank_salary',
'岗位工资': 'post_salary',
'预发绩效奖金': 'performance_bonuses',
'通讯补贴': 'commuting_allowance',
'工龄工资': 'seniority_salary'
}
for line in internship_id.line_ids:
if line.name in target_names:
result = line.total * 0.8
field_name = target_names[line.name]
setattr(internship_id, field_name, result)
line.write({'total': result})
elif contract_end_date.year == end_date.year and contract_end_date.month == end_date.month:
leave_days = self._create_leave_record(start_date, end_date)
days = leave_days.number_of_days
leave_days.unlink()
days = self._process_shift_days(days, start_date, end_date) # 总工作日
leave_internship = self._create_leave_record(start_date, contract_end_date)
internship_days = leave_internship.number_of_days
leave_internship.unlink()
internship_days = self._process_shift_days(internship_days, start_date, contract_end_date) # 实习期工作日
leave_work = self._create_leave_record(contract_end_date, end_date)
work_days = leave_work.number_of_days
leave_work.unlink()
work_days = self._process_shift_days(work_days, contract_end_date, end_date) # 转正工作日
if internship_id.line_ids:
target_names = {
'基本工资': 'base_salary',
'职级工资': 'rank_salary',
'岗位工资': 'post_salary',
'预发绩效奖金': 'performance_bonuses',
'通讯补贴': 'commuting_allowance',
'工龄工资': 'seniority_salary'
}
for line in internship_id.line_ids:
if line.name in target_names:
result = line.total * 0.8 * internship_days / days + line.total * 0.8 * work_days / days
field_name = target_names[line.name]
setattr(internship_id, field_name, result)
line.write({'total': result})
def _get_chinese_month(self, month):