添加功能
This commit is contained in:
@@ -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):
|
||||
|
||||
Reference in New Issue
Block a user