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) # 计算违约金