From 05f992a00ffdf8fced76135f495bb28b90de0f7b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=B9=8F=E5=AE=87?= <9664676+pengyuthon@user.noreply.gitee.com> Date: Wed, 31 Dec 2025 19:45:45 +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_property_approval/wizard/penalty_line_wizard.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/yuthon_property_approval/wizard/penalty_line_wizard.py b/yuthon_property_approval/wizard/penalty_line_wizard.py index 5dad54086..a73084d87 100644 --- a/yuthon_property_approval/wizard/penalty_line_wizard.py +++ b/yuthon_property_approval/wizard/penalty_line_wizard.py @@ -187,11 +187,15 @@ class PenaltyLineWizard(models.Model): # 3. 删除所有旧的实时记录 for line in realtime_lines: update_commands.append((2, line.id, 0)) - filtered_lines = non_realtime_lines.filtered(lambda l: l.penalty != 0) + + filtered_lines = non_realtime_lines.filtered(lambda l: l.penalty == 0) if filtered_lines: prev_line = filtered_lines[-1] if round(prev_line.remaining_principal or 0, 2) != 0: - base_date = (prev_line.date + relativedelta(months=1)).replace(day=1) + if (prev_line == filtered_lines[0]): + base_date = (prev_line.date + relativedelta(months=1)).replace(day=1) + else: + base_date = prev_line.date + relativedelta(days=1) days_overdue = (self.calculation_date - base_date).days - 1 days_overdue = max(0, days_overdue) # 计算违约金