From 7afb55fdbc0a3e4ae65f451b01c8e9b7edbe61db 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, 2 Jun 2026 18:07:06 +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
---
yuthon_issue/views/issue_library_views.xml | 2 +-
.../models/property_lease_contract.py | 42 ++++++++++++++++++-
2 files changed, 41 insertions(+), 3 deletions(-)
diff --git a/yuthon_issue/views/issue_library_views.xml b/yuthon_issue/views/issue_library_views.xml
index 5f19b06f6..229a28a45 100644
--- a/yuthon_issue/views/issue_library_views.xml
+++ b/yuthon_issue/views/issue_library_views.xml
@@ -365,7 +365,7 @@
issue.library
tree,form
- [('issue_state', 'not in', ['draft', 'to_draft', 'to_do']), ('is_meeting', '=', False)]
+ [('issue_state', 'not in', ['draft', 'to_draft', 'to_do'])]
diff --git a/yuthon_property_approval/models/property_lease_contract.py b/yuthon_property_approval/models/property_lease_contract.py
index 4531646d0..4e9a4754e 100644
--- a/yuthon_property_approval/models/property_lease_contract.py
+++ b/yuthon_property_approval/models/property_lease_contract.py
@@ -79,12 +79,50 @@ class PropertyTenantLine(models.Model):
def create(self, vals):
"""在创建记录时自动关联合同对应的物业"""
if vals.get('lease_contract_id'):
- # 获取合同关联的物业明细行并直接提取物业ID列表
contract = self.env['property.lease.contract'].browse(vals['lease_contract_id'])
property_ids = contract.lease_ids.mapped('address_id.id')
if property_ids:
vals['property_ids'] = [(6, 0, property_ids)]
- return super(PropertyTenantLine, self).create(vals)
+ res = super(PropertyTenantLine, self).create(vals)
+ self.env.flush_all()
+ res._refresh_bank_stmt_by_tenant()
+ return res
+
+ def write(self, vals):
+ res = super().write(vals)
+ self.env.flush_all()
+ if 'tenant_id' in vals:
+ self._refresh_bank_stmt_by_tenant()
+ return res
+
+ def unlink(self):
+ tenants_to_refresh = self.mapped('tenant_id')
+ res = super().unlink()
+ if tenants_to_refresh:
+ self._refresh_bank_stmt_by_tenants(tenants_to_refresh)
+ return res
+
+ def _refresh_bank_stmt_by_tenant(self):
+ """当 property.tenant.line 的 tenant_id 变更时,刷新关联的银行流水计算字段"""
+ tenant_list = self.mapped('tenant_id')
+ self._refresh_bank_stmt_by_tenants(tenant_list)
+
+ def _refresh_bank_stmt_by_tenants(self, tenant_list):
+ """根据承租方列表,找到关联的银行流水并触发计算字段重算"""
+ if not tenant_list:
+ return
+ bank_lines = self.env['property.bank.line'].search([('tenant_id', 'in', tenant_list.ids)])
+ bank_no_list = bank_lines.mapped('bank')
+ if not bank_no_list:
+ return
+ stmt_recs = self.env['property.bank.statements'].search([('name', 'in', bank_no_list)])
+ if stmt_recs:
+ for stmt in stmt_recs:
+ stmt._compute_property_employee_id()
+
+ def _constrain_tenant_refresh_bank(self):
+ """@deprecated: 请使用 _refresh_bank_stmt_by_tenant"""
+ self._refresh_bank_stmt_by_tenant()
class PropertyLeaseContract(models.Model):
_name = 'property.lease.contract'