!10150 !10149 Merge branch 'dev' of <a href="https://gitee.com/jinan-pengyuse…

Merge pull request !10150 from 李鹏宇/dev
This commit is contained in:
李鹏宇
2026-03-24 08:24:10 +00:00
committed by Gitee
+11 -5
View File
@@ -82,6 +82,9 @@ class ReceivableFlowReport(models.Model):
# 预先触发 compute 字段,避免循环内惰性计算
all_wizards.mapped('days_overdue')
all_wizards.mapped('total_penalty')
all_wizards.mapped('collected_penalty') # 预加载已收违约金
# 预加载 pay_line management_type_id
all_pay_lines.mapped('management_type_id')
# 按 wizard_id 分组
pay_line_map = {} # {wizard_id: [pay_lines]}
for pl in all_pay_lines:
@@ -168,11 +171,14 @@ class ReceivableFlowReport(models.Model):
penalty_pay_lines = []
for wz in wz_list:
penalty_pay_lines.extend(pay_line_map.get(wz.id, []))
total_penalty_collected = sum(line.amount for line in penalty_pay_lines)
latest_penalty_payment = sorted(
[l for l in penalty_pay_lines if l.date],
key=lambda l: l.date, reverse=True
)
# 违约金收款金额:取 wizard 的 collected_penalty(已 compute)
total_penalty_collected = sum(wz.collected_penalty for wz in wz_list)
# 违约金收款时间:取 pay_line_ids 中类型为“违约金”的记录的最新 date
penalty_type_pay_lines = [
l for l in penalty_pay_lines
if l.management_type_id and l.management_type_id.name == '违约金' and l.date
]
latest_penalty_payment = sorted(penalty_type_pay_lines, key=lambda l: l.date, reverse=True)
penalty_payment_date = latest_penalty_payment[0].date if latest_penalty_payment else None
# 复用 _onchange_calculation_date 逻辑计算违约金时间区间、逆期天数、违约金