添加功能

This commit is contained in:
李鹏宇
2026-06-02 18:07:06 +08:00
parent d37fb1afeb
commit 7afb55fdbc
2 changed files with 41 additions and 3 deletions
+1 -1
View File
@@ -365,7 +365,7 @@
<field name="res_model">issue.library</field>
<field name="view_mode">tree,form</field>
<field name="search_view_id" ref="view_issue_library_filter"/>
<field name="domain">[('issue_state', 'not in', ['draft', 'to_draft', 'to_do']), ('is_meeting', '=', False)]</field>
<field name="domain">[('issue_state', 'not in', ['draft', 'to_draft', 'to_do'])]</field>
<field name="view_ids" eval="[(5, 0, 0),
(0, 0, {'view_mode': 'tree', 'view_id': ref('yuthon_issue.view_issue_library_tree')}),
(0, 0, {'view_mode': 'form', 'view_id': ref('yuthon_issue.view_issue_library_form')})]"/>
@@ -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'