From de75fa0401987c00f97695f735a27e2f44054deb 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: Sun, 12 Oct 2025 22:22:03 +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_meter_water.py | 78 +++++++++---------- 1 file changed, 39 insertions(+), 39 deletions(-) diff --git a/yuthon_property/models/property_meter_water.py b/yuthon_property/models/property_meter_water.py index 8c12e71dd..2e0ce4975 100644 --- a/yuthon_property/models/property_meter_water.py +++ b/yuthon_property/models/property_meter_water.py @@ -182,7 +182,7 @@ class MeterWaterLine(models.Model): store=True, index=True, ) - + current_meter = fields.Float(string="本次用量", store=True, group_operator=None) current_read = fields.Float(string='本次读数', group_operator=None) unit_number = fields.Char(string='单元编号/用途') unit = fields.Float(string='当月单价', group_operator=None) @@ -212,14 +212,14 @@ class MeterWaterLine(models.Model): for line in self.line_ids: line.name = self.name - # @api.depends("line_loss", "current_meter", "unit") - # def _compute_receivables(self): - # for record in self: - # if record.line_loss and record.current_meter and record.unit: - # raw_value = record.current_meter * record.unit * (1 + record.line_loss) * record.gauge_magnification - # record.receivables = round(raw_value, 1) - # else: - # record.receivables = 0.0 + @api.depends("line_loss", "current_meter", "unit") + def _compute_receivables(self): + for record in self: + if record.line_loss and record.current_meter and record.unit: + raw_value = record.current_meter * record.unit * (1 + record.line_loss) * record.gauge_magnification + record.receivables = round(raw_value, 1) + else: + record.receivables = 0.0 def update_meter(self): current_year = datetime.now().year @@ -232,36 +232,36 @@ class MeterWaterLine(models.Model): if unread_meter_lines: unread_meter_lines.write({"state": "reading"}) - # @api.depends('water_id', 'last_dosage', 'last_read', 'last_meter', 'current_meter', 'current_read', - # 'maximum_count') - # def _compute_last(self): - # """ - # 上次用量,读数,超标日期 - # :return: - # """ - # for i in self: - # last_id = self.env['meter.water.line'].search( - # [('meter_date', '<', i.meter_date), ('water_id', '=', i.water_id.id)]).sorted('meter_date') - # if last_id: - # i.last_dosage = last_id[-1].current_meter - # i.last_read = last_id[-1].current_read - # i.last_meter = last_id[-1].meter_date - # if i.current_read >= i.last_read: - # i.current_meter = i.current_read - i.last_read - # else: - # if i.current_read != 0: - # if i.maximum_count > 0: - # max_value = 10 ** i.maximum_count - 1 - # i.current_meter = max_value - i.last_read + i.current_read - # else: - # i.current_meter = 0 - # else: - # i.current_meter = 0 - # else: - # i.last_dosage = 0 - # i.last_read = 0 - # i.last_meter = i.meter_date - # i.current_meter = 0 + @api.depends('water_id', 'last_dosage', 'last_read', 'last_meter', 'current_meter', 'current_read', + 'maximum_count') + def _compute_last(self): + """ + 上次用量,读数,超标日期 + :return: + """ + for i in self: + last_id = self.env['meter.water.line'].search( + [('meter_date', '<', i.meter_date), ('water_id', '=', i.water_id.id)]).sorted('meter_date') + if last_id: + i.last_dosage = last_id[-1].current_meter + i.last_read = last_id[-1].current_read + i.last_meter = last_id[-1].meter_date + if i.current_read >= i.last_read: + i.current_meter = i.current_read - i.last_read + else: + if i.current_read != 0: + if i.maximum_count > 0: + max_value = 10 ** i.maximum_count - 1 + i.current_meter = max_value - i.last_read + i.current_read + else: + i.current_meter = 0 + else: + i.current_meter = 0 + else: + i.last_dosage = 0 + i.last_read = 0 + i.last_meter = i.meter_date + i.current_meter = 0 @api.onchange("yuthon_property_ids") def onchange_lessee_id(self):