From 65951945877e691b1bb45fbd79edc343d76d40b1 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: Tue, 23 Sep 2025 10:50:59 +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 --- .../wizard/property_reconciliation_wizard.py | 50 +++++++++---------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/yuthon_property_approval/wizard/property_reconciliation_wizard.py b/yuthon_property_approval/wizard/property_reconciliation_wizard.py index 07ca5f8fa..aa5c84372 100644 --- a/yuthon_property_approval/wizard/property_reconciliation_wizard.py +++ b/yuthon_property_approval/wizard/property_reconciliation_wizard.py @@ -127,31 +127,31 @@ class PropertyReconciliationWizard(models.Model): 'remake': f'违约金({start_date_str}至{end_date_str},共{late_days}天)', }) - # 查找应收是否有未交全的租金 - unpaid_rent_recs = self.env['property.accounts.receivable'].search([ - ('management_type_id.name', '=', '租金'), - ('contract_id', '=', contract_id.id), - ('submitted', '!=', 0), - ('payout_date', '!=', None), - ]) - if unpaid_rent_recs: - if (unpaid_rent_recs.payout_date + relativedelta(months=1)).month != self.actual_date.month: - first_day = (unpaid_rent_recs.payout_date + timedelta(days=1)) - last_month_rent = unpaid_rent_recs.submitted - penalty_days = self.actual_date - first_day - penalty_amount = (penalty_days.days + 1) * round( - last_month_rent * float(contract_id.percentage_liquidated_damages.name), 2 - ) if contract_id else 0.0 - if penalty_amount > 0: - new_lines.append((0, 0, { - 'contract_id': contract_id.id if contract_id else None, - 'rent_month': 0, - 'due_date': fields.Date.to_string(first_day), - 'rent': penalty_amount, - 'amount': 0, - 'collection_type': 'penalty', - 'remake': f'违约金({fields.Date.to_string(first_day)}至{fields.Date.to_string(self.actual_date)},共{penalty_days.days + 1}天)', - })) + # 查找应收是否有未交全的租金 + unpaid_rent_recs = self.env['property.accounts.receivable'].search([ + ('management_type_id.name', '=', '租金'), + ('contract_id', '=', contract_id.id), + ('submitted', '!=', 0), + ('payout_date', '!=', None), + ]) + if unpaid_rent_recs: + if (unpaid_rent_recs.payout_date + relativedelta(months=1)).month != self.actual_date.month: + first_day = (unpaid_rent_recs.payout_date + timedelta(days=1)) + last_month_rent = unpaid_rent_recs.submitted + penalty_days = self.actual_date - first_day + penalty_amount = (penalty_days.days + 1) * round( + last_month_rent * float(contract_id.percentage_liquidated_damages.name), 2 + ) if contract_id else 0.0 + if penalty_amount > 0: + new_lines.append((0, 0, { + 'contract_id': contract_id.id if contract_id else None, + 'rent_month': 0, + 'due_date': fields.Date.to_string(first_day), + 'rent': penalty_amount, + 'amount': 0, + 'collection_type': 'penalty', + 'remake': f'违约金({fields.Date.to_string(first_day)}至{fields.Date.to_string(self.actual_date)},共{penalty_days.days + 1}天)', + })) # 3. 添加到总列表 for vals in contract_penalties: