前期预收
This commit is contained in:
@@ -108,13 +108,20 @@ class PreAdvanceReport(models.Model):
|
||||
|
||||
filtered_lines.append(line)
|
||||
|
||||
# 按应收账单聚合(只累加满足预收条件的 line.amount)
|
||||
# 按应收账单聚合(只累加满足预收条件的 line.amount,记录最早收款日期)
|
||||
rec_map = {}
|
||||
for line in filtered_lines:
|
||||
rid = line.receivable_id.id
|
||||
if rid not in rec_map:
|
||||
rec_map[rid] = {'rec': line.receivable_id, 'amount': 0.0}
|
||||
rec_map[rid] = {'rec': line.receivable_id, 'amount': 0.0, 'earliest_pay_date': None}
|
||||
rec_map[rid]['amount'] += line.amount or 0.0
|
||||
# 收款日期:取 reconciliation_date
|
||||
pay_date = line.reconciliation_date
|
||||
if pay_date:
|
||||
pay_date_val = pay_date.date() if hasattr(pay_date, 'date') else pay_date
|
||||
# 记录最早的收款日期
|
||||
if rec_map[rid]['earliest_pay_date'] is None or pay_date_val < rec_map[rid]['earliest_pay_date']:
|
||||
rec_map[rid]['earliest_pay_date'] = pay_date_val
|
||||
|
||||
rows = []
|
||||
total_amount = 0.0
|
||||
@@ -139,6 +146,9 @@ class PreAdvanceReport(models.Model):
|
||||
# 应收金额 = original_amount - discount_amount
|
||||
receivable_amount = round((rec.original_amount or 0.0) - (rec.discount_amount or 0.0), 2)
|
||||
|
||||
# 收款日期:取最早收款日期
|
||||
earliest_pay_date = data.get('earliest_pay_date')
|
||||
|
||||
rows.append({
|
||||
"序号": idx,
|
||||
"合同编号": {
|
||||
@@ -157,6 +167,7 @@ class PreAdvanceReport(models.Model):
|
||||
"应收结束": rec.due_date_end.strftime('%Y-%m-%d') if rec.due_date_end else '',
|
||||
"金额": amount,
|
||||
"应收金额": receivable_amount,
|
||||
"收款日期": earliest_pay_date.strftime('%Y-%m-%d') if earliest_pay_date else '',
|
||||
"管理员": {
|
||||
'model': 'res.users',
|
||||
'id': rec.admin_id.id,
|
||||
|
||||
@@ -19,6 +19,7 @@
|
||||
{"headerName": "收款类型", "field": "收款类型", "flex": 1},
|
||||
{"headerName": "应收开始", "field": "应收开始", "flex": 1},
|
||||
{"headerName": "应收结束", "field": "应收结束", "flex": 1},
|
||||
{"headerName": "收款日期", "field": "收款日期", "flex": 1},
|
||||
{"headerName": "金额", "field": "金额", "flex": 1, "type": "number"},
|
||||
{"headerName": "应收金额", "field": "应收金额", "flex": 1, "type": "number"},
|
||||
{"headerName": "管理员", "field": "管理员", "flex": 1}
|
||||
|
||||
Reference in New Issue
Block a user