From 905b53edf18e1d0ef93cda7d6c4b96e1d1bf3e6a 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: Mon, 15 Sep 2025 10:57:03 +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 | 41 ++++++++++--------- 1 file changed, 22 insertions(+), 19 deletions(-) diff --git a/yuthon_property_approval/wizard/property_reconciliation_wizard.py b/yuthon_property_approval/wizard/property_reconciliation_wizard.py index 525ab3df6..88b2155bd 100644 --- a/yuthon_property_approval/wizard/property_reconciliation_wizard.py +++ b/yuthon_property_approval/wizard/property_reconciliation_wizard.py @@ -144,6 +144,26 @@ class PropertyReconciliationWizard(models.Model): self.receivable_total = total self.create_reconciliation_vals() + not_submitted_list = [] + # 查找应收日期之前的所有未对账的违约金 + unpaid_penalty_recs = self.env['property.accounts.receivable'].search([ + ('contract_id', '=', contract_id.id), + ('collection_type', '=', 'penalty'), + ('is_reconciliation', '=', False), + ('due_date', '<=', fields.Date.to_string(self.actual_date)), + ]) + for unpaid_penalty_rec in unpaid_penalty_recs: + not_submitted_list.append((0, 0, { + 'contract_id': contract_id.id if contract_id else None, + 'rent_month': unpaid_penalty_recs.submitted, + 'due_date': unpaid_penalty_recs.due_date, + 'rent': unpaid_penalty_rec.submitted, + 'collection_type': 'penalty', + 'remake': unpaid_penalty_recs.remark, + })) + self.write({'reconciliation_line_ids': not_submitted_list}) + + all_due_dates = [] for line in self.reconciliation_line_ids: if line.collection_type == 'rent' and line.due_date: @@ -237,6 +257,8 @@ class PropertyReconciliationWizard(models.Model): 'collection_type': 'penalty', 'remake': f'违约金({fields.Date.to_string(first_day)}至{fields.Date.to_string(self.actual_date)},共{penalty_days}天', })) + if missing_penalty_lines: + self.write({ 'reconciliation_line_ids': missing_penalty_lines}) # 查找上个月应收是否有未交全的租金 unpaid_rent_recs = self.env['property.accounts.receivable'].search([ @@ -263,25 +285,6 @@ class PropertyReconciliationWizard(models.Model): 'remake': f'违约金({fields.Date.to_string(first_day)}至{fields.Date.to_string(self.actual_date)},共{penalty_days.days + 1}天)', })) - # 查找应收日期之前的所有未对账的违约金 - unpaid_penalty_recs = self.env['property.accounts.receivable'].search([ - ('contract_id', '=', contract.id), - ('collection_type', '=', 'penalty'), - ('is_reconciliation', '=', False), - ('due_date', '<=', fields.Date.to_string(self.actual_date)), - ]) - for unpaid_penalty_rec in unpaid_penalty_recs: - missing_penalty_lines.append((0, 0, { - 'contract_id': contract.id if contract else None, - 'rent_month': unpaid_penalty_recs.submitted, - 'due_date': unpaid_penalty_recs.due_date, - 'rent': unpaid_penalty_rec.submitted, - 'collection_type': 'penalty', - 'remake': unpaid_penalty_recs.remark, - })) - - if missing_penalty_lines: - self.write({ 'reconciliation_line_ids': missing_penalty_lines}) self.create_reconciliation_vals() def create_reconciliation_vals(self):