diff --git a/yuthon_salary/wizard/salary_compute_wizard.py b/yuthon_salary/wizard/salary_compute_wizard.py index a9898726e..6c62b5c94 100644 --- a/yuthon_salary/wizard/salary_compute_wizard.py +++ b/yuthon_salary/wizard/salary_compute_wizard.py @@ -213,25 +213,16 @@ class SalaryComputeWizard(models.Model): field_name = target_names[line.name] if field_name == 'performance_bonuses': if work_days != days: - result = line.total * work_days / days + result = round(line.total * work_days / days) else: result = 0 elif field_name in ['commuting_allowance', 'seniority_salary']: - if work_days != days: - result = line.total * internship_days / days + line.total * work_days / days - else: - result = line.total * internship_days / days + result = line.total * internship_days / days elif field_name in ['rank_salary', 'base_salary']: - int_value = int(line.total) - ones_digit = int_value % 10 - if ones_digit != 0: - rounded_value = int_value + (10 - ones_digit) - else: - rounded_value = int_value if work_days != days: - result = rounded_value * 0.8 * internship_days / days + rounded_value * work_days / days + result = round(math.ceil(line.total * 0.8) * internship_days / days + line.total * work_days / days) else: - result = rounded_value * 0.8 * internship_days / days + result = line.total * 0.8 * internship_days / days elif field_name == 'union_dues': # 单独处理工会会费 base_salary = getattr(internship_id, 'base_salary', 0) result = base_salary * 0.005 @@ -255,9 +246,9 @@ class SalaryComputeWizard(models.Model): result = 0 else: if work_days != days: - result = line.total * 0.8 * internship_days / days + line.total * work_days / days + result = (math.ceil(line.total * 0.8)) * internship_days / days + line.total * work_days / days else: - result = line.total * 0.8 * internship_days / days + result = (math.ceil(line.total * 0.8)) * internship_days / days setattr(internship_id, field_name, result) line.write({'total': result})