@@ -167,12 +167,12 @@ class MeterWaterLine(models.Model):
|
||||
epitope_values_id = fields.Many2one("yuthon.epitope.values", string="表位置")
|
||||
lessee_id = fields.Many2one("property.tenant.information", string="承租方")
|
||||
yuthon_property_ids = fields.Many2many("yuthon.property", string="物业信息")
|
||||
last_meter = fields.Date(string="上次抄表日期", compute="_compute_last")
|
||||
last_meter = fields.Date(string="上次抄表日期")
|
||||
last_dosage = fields.Float(
|
||||
string="上次用量", store=True, group_operator=None, compute="_compute_last"
|
||||
string="上次用量", store=True, group_operator=None
|
||||
)
|
||||
last_read = fields.Float(
|
||||
string="上次读数", store=True, group_operator=None, compute="_compute_last"
|
||||
string="上次读数", store=True, group_operator=None
|
||||
)
|
||||
meter_date = fields.Date(string="任务日期")
|
||||
|
||||
@@ -238,51 +238,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):
|
||||
|
||||
Reference in New Issue
Block a user