Merge pull request !5245 from 李鹏宇/dev
This commit is contained in:
李鹏宇
2025-09-19 06:56:57 +00:00
committed by Gitee
@@ -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(