From 79e4d5fbe0822ce2d1a47e6901158ca88601b90e 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: Fri, 19 Sep 2025 14:56:10 +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 --- .../models/property_lease_contract.py | 26 ++++++++++++++----- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/yuthon_property_approval/models/property_lease_contract.py b/yuthon_property_approval/models/property_lease_contract.py index d913d759f..5ba869d54 100644 --- a/yuthon_property_approval/models/property_lease_contract.py +++ b/yuthon_property_approval/models/property_lease_contract.py @@ -335,7 +335,13 @@ class PropertyLeaseContract(models.Model): if rec.lease_ids: rec.admin_id = rec.lease_ids[0].admin_line_id.id - @api.depends("lease_ids") + @api.depends( + 'lease_ids', + 'lease_ids.address_id', + 'lease_ids.admin_line_id', + 'lease_ids.admin_line_id.employee_ids', + 'lease_ids.admin_line_id.employee_ids.department_id' + ) def _compute_lease_ids(self): for rec in self: # 初始化值 @@ -343,9 +349,11 @@ class PropertyLeaseContract(models.Model): rec.is_electricity = False rec.water_fee_ids = [(5, 0, 0)] rec.electricity_fee_ids = [(5, 0, 0)] - rec.department_id = None + rec.department_id = False # 初始化为False而非None + rec.admin_id = False # 初始化admin_id water_fee_values = [] electricity_fee_values = [] + if rec.lease_ids: # 处理每个租赁记录 for lease in rec.lease_ids: @@ -356,7 +364,6 @@ class PropertyLeaseContract(models.Model): lambda m: not m.demolition_date or m.demolition_date > fields.Date.today() ) for meter in active_water_meters: - # 确保meter记录有效 if meter.property_meter_water_id: water_fee_values.append([0, 0, { 'contract_id': rec.id, @@ -370,22 +377,27 @@ class PropertyLeaseContract(models.Model): lambda m: not m.demolition_date or m.demolition_date > fields.Date.today() ) for meter in active_electric_meters: - # 确保meter记录有效 if meter.property_meter_archives_id: electricity_fee_values.append([0, 0, { 'contract_id': rec.id, 'property_meter_archives_id': meter.property_meter_archives_id.id, }]) + # 更新水电费用记录 rec.is_water = bool(water_fee_values) rec.is_electricity = bool(electricity_fee_values) if water_fee_values: rec.water_fee_ids = water_fee_values if electricity_fee_values: rec.electricity_fee_ids = electricity_fee_values - rec.admin_id = rec.lease_ids[0].admin_line_id.id - # rec.users_id = rec.lease_ids[0].admin_line_id.id - rec.department_id = rec.lease_ids[0].admin_line_id.employee_ids.department_id.id + + first_lease = rec.lease_ids[0] + rec.admin_id = first_lease.admin_line_id.id if first_lease.admin_line_id else False + + if first_lease.admin_line_id and first_lease.admin_line_id.employee_ids: + # 取第一个关联员工的部门 + employee = first_lease.admin_line_id.employee_ids[:1] + rec.department_id = employee.department_id if employee.department_id else False def all_end_approval(self): contract_ids = self.env["property.lease.contract"].browse(