添加功能

This commit is contained in:
李鹏宇
2025-10-12 22:22:03 +08:00
parent 7aa1e66d22
commit de75fa0401
+39 -39
View File
@@ -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):