添加功能
This commit is contained in:
@@ -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'
|
||||
|
||||
Reference in New Issue
Block a user