From b356a21dfc22d3cca8e2a1f00f3c0358b3a17132 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: Mon, 15 Sep 2025 18:28:41 +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_property/models/yuthon_property.py | 32 ++++++++++++++++++++--- 1 file changed, 28 insertions(+), 4 deletions(-) diff --git a/yuthon_property/models/yuthon_property.py b/yuthon_property/models/yuthon_property.py index f51f7bd12..d7b20ab3a 100644 --- a/yuthon_property/models/yuthon_property.py +++ b/yuthon_property/models/yuthon_property.py @@ -168,17 +168,41 @@ class YuthonProperty(models.Model): @api.onchange('energy_meter_ids') def _onchange_energy_meter_ids(self): + if not hasattr(self.id, 'origin') or not self.id.origin: + return + target_property_id = self.id.origin + meter_model = self.env['property.meter.archives'] + related_meters = meter_model.search([ + ('yuthon_property_ids', 'in', [target_property_id]) + ]) + if related_meters: + related_meters.write({ + 'yuthon_property_ids': [(6, 0, [])] + }) for rec in self.energy_meter_ids: - meter_id = self.env['property.meter.archives'].search([('id', '=', rec.property_meter_archives_id.id)]) + meter_id = meter_model.browse(rec.property_meter_archives_id.id) meter_id.write({ - 'yuthon_property_ids': [(6, 0, [self.id.origin])]}) + 'yuthon_property_ids': [(6, 0, [target_property_id])] + }) @api.onchange('water_meter_ids') def _onchange_water_meter_idss(self): + if not hasattr(self.id, 'origin') or not self.id.origin: + return + target_property_id = self.id.origin + water_meter_model = self.env['property.meter.water'] + related_water_meters = water_meter_model.search([ + ('yuthon_property_ids', 'in', [target_property_id]) + ]) + if related_water_meters: + related_water_meters.write({ + 'yuthon_property_ids': [(6, 0, [])] + }) for rec in self.water_meter_ids: - meter_id = self.env['property.meter.water'].search([('id', '=', rec.property_meter_water_id.id)]) + meter_id = water_meter_model.browse(rec.property_meter_water_id.id) meter_id.write({ - 'yuthon_property_ids': [(6, 0, [self.id.origin])]}) + 'yuthon_property_ids': [(6, 0, [target_property_id])] + }) @api.onchange('building_area') def _onchange_building_area(self):