From 11e2a37c095e5319e78e2bd8564fb89bb7b29a97 Mon Sep 17 00:00:00 2001 From: zhou <123@> Date: Mon, 21 Jul 2025 16:11:54 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- yuthon_salary/wizard/salary_compute_wizard.py | 21 ++++++------------- 1 file changed, 6 insertions(+), 15 deletions(-) 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})