This commit is contained in:
李鹏宇
2026-03-24 11:48:27 +08:00
parent 38f43595e7
commit 4e7acc62a2
2 changed files with 21 additions and 0 deletions
@@ -86,6 +86,19 @@ class ReceivableFlowReport(models.Model):
pay_line_map = {} # {wizard_id: [pay_lines]}
for pl in all_pay_lines:
pay_line_map.setdefault(pl.penalty_id.id, []).append(pl)
# 3. 批量查违约金应收记录(按合同分组)
contract_ids = list(set(rec.contract_id.id for rec in receivables if rec.contract_id))
penalty_type = self.env['yuthon.management.type'].sudo().search([('name', '=', '违约金')], limit=1)
all_penalty_recs = self.env['property.accounts.receivable'].sudo().search([
('contract_id', 'in', contract_ids),
('management_type_id', '=', penalty_type.id),
('is_invalid', '=', False),
], order='due_date asc') if penalty_type else self.env['property.accounts.receivable']
# 按 contract_id 分组 {contract_id: [charging_range, ...]}
penalty_range_map = {} # {contract_id: [charging_range]}
for pr in all_penalty_recs:
if pr.charging_range:
penalty_range_map.setdefault(pr.contract_id.id, []).append(pr.charging_range)
# ===== 预加载结束 =====
rows = []
@@ -149,6 +162,7 @@ class ReceivableFlowReport(models.Model):
"违约金明细": "",
"违约金收款时间": "",
"违约金收款金额": "",
"违约金计算时间": "",
})
# ==== 每条应收记录 ====
@@ -174,6 +188,10 @@ class ReceivableFlowReport(models.Model):
)
penalty_payment_date = latest_penalty_payment[0].date if latest_penalty_payment else None
# 取该合同下所有违约金记录的 charging_range
penalty_ranges = penalty_range_map.get(rec.contract_id.id, []) if rec.contract_id else []
penalty_range_str = "\n".join(penalty_ranges) if penalty_ranges else ""
# ==== 应收租金行 ====
rows.append({
"row_type": "主",
@@ -200,6 +218,7 @@ class ReceivableFlowReport(models.Model):
"收款日期": "",
"收款金额": "",
"收款备注": "",
"违约金计算时间": penalty_range_str,
"违约金明细": {
'model': 'property.accounts.receivable',
'display_name': '违约金明细',
@@ -230,6 +249,7 @@ class ReceivableFlowReport(models.Model):
"违约金明细": "",
"违约金收款时间": "",
"违约金收款金额": "",
"违约金计算时间": "",
})
@@ -24,6 +24,7 @@
{"headerName": "收款日期", "field": "收款日期", "flex": 1},
{"headerName": "收款金额", "field": "收款金额", "flex": 1, "type": "number"},
{"headerName": "收款备注", "field": "收款备注", "flex": 2, "wrapText": true},
{"headerName": "违约金计算时间", "field": "违约金计算时间", "flex": 2.5, "wrapText": true},
{"headerName": "违约金明细", "field": "违约金明细", "flex": 1, "cellRenderer": "linkRender"},
{"headerName": "违约金收款时间", "field": "违约金收款时间", "flex": 1},
{"headerName": "违约金收款金额", "field": "违约金收款金额", "flex": 1, "type": "number"}