diff --git a/yuthon_hr_attendance/controllers/applet_attendance.py b/yuthon_hr_attendance/controllers/applet_attendance.py
index a88cedd2a..f9a5302f0 100644
--- a/yuthon_hr_attendance/controllers/applet_attendance.py
+++ b/yuthon_hr_attendance/controllers/applet_attendance.py
@@ -427,8 +427,7 @@ class AppletAttendance(Controller):
"shift_days_list": shift_days_list,
}
- # 水电表接口
-
+ # 水电表接口
@route('/yuthon/meter/reading', methods=['POST'], type='http', auth='none', cors='*', csrf=False)
def yuthon_meter_reading(self, **kw):
"""
@@ -444,19 +443,19 @@ class AppletAttendance(Controller):
}
"""
_logger.info("----------------/yuthon/meter/reading---------接口收到响应-------------------------------")
- electric_records = request.env(user=SUPERUSER_ID)['property.electric.reading'].search(
- [('reading_state', '=', 'wait')])
- water_records = request.env(user=SUPERUSER_ID)['property.water.reading'].search(
- [('reading_state', '=', 'wait')])
+ electric_records = request.env(user=SUPERUSER_ID)['property.meter.archives'].search(
+ [('is_push', '=', 'True')])
+ water_records = request.env(user=SUPERUSER_ID)['property.meter.water'].search(
+ [('is_push', '=', 'True')])
result_list = []
# 处理电表记录
for record in electric_records:
record_data = {
- 'code': record.code,
+ 'code': record.name,
'last_dosage': record.last_dosage,
'current_meter': record.current_meter,
'dosage': record.dosage,
- 'employee_name': record.employee_ids[0].name,
+ 'employee_name': record.employee_ids[0].name if record.employee_ids else '',
'meter_type': 'electric', # 添加仪表类型
}
@@ -468,7 +467,7 @@ class AppletAttendance(Controller):
'last_dosage': record.last_dosage,
'current_meter': record.current_meter,
'dosage': record.dosage,
- 'employee_list': record.employee_ids[0].name,
+ 'employee_list': record.employee_ids[0].name if record.employee_ids else '',
'meter_type': 'water',
}
result_list.append(record_data)
diff --git a/yuthon_property/models/property_meter_archives.py b/yuthon_property/models/property_meter_archives.py
index 022883c07..0739e77ea 100644
--- a/yuthon_property/models/property_meter_archives.py
+++ b/yuthon_property/models/property_meter_archives.py
@@ -24,7 +24,7 @@ class PropertyMeterArchives(models.Model):
last_meter = fields.Date(string='上次抄表日期')
current_meter = fields.Float(string='本次用量', tracking=True)
ratio = fields.Float(string='倍率')
- archives_state = fields.Selection([('stop', '停用'), ('use', '使用'), ('rent', '出租')], string='状态')
+ archives_state = fields.Selection([('stop', '停用'), ('use', '正常'), ('rent', '出租')], string='状态', compute='_compute_archives_state', store=True, default='use')
dosage = fields.Float(string='用量')
is_push = fields.Boolean(string='已推送')
start_time = fields.Date(string="安装日期")
@@ -33,6 +33,36 @@ class PropertyMeterArchives(models.Model):
standards_id = fields.Many2one('yuthon.electricity.setting', string='标准')
yuthon_property_id = fields.Many2one('yuthon.property', string='关联物业信息')
+ @api.depends('lessee_id')
+ def _compute_archives_state(self):
+ for record in self:
+ if record.lessee_id:
+ record.archives_state = 'rent'
+ else:
+ record.archives_state = 'use'
+
+ @api.model
+ def create(self, vals):
+ record = super().create(vals)
+ if record.lessee_id:
+ record.archives_state = 'rent'
+ else:
+ record.archives_state = 'use'
+ return record
+
+ def button_archives_state(self):
+ archives_ids = self.env["property.meter.archives"].browse(self._context.get('active_ids', self._context.get('active_id')))
+ for record in archives_ids:
+ record.archives_state = 'stop'
+
+ def update_meter(self):
+ meter_ids = self.env["property.meter.archives"].browse(self._context.get('active_ids', self._context.get('active_id')))
+ for record in meter_ids:
+ if record.lessee_id:
+ record.archives_state = 'rent'
+ else:
+ record.archives_state = 'use'
+
@api.onchange('current_meter')
def _onchange_current_meter(self):
current_date = fields.Date.today()
diff --git a/yuthon_property/models/property_meter_water.py b/yuthon_property/models/property_meter_water.py
index ba7f715f3..c21cd7b52 100644
--- a/yuthon_property/models/property_meter_water.py
+++ b/yuthon_property/models/property_meter_water.py
@@ -28,10 +28,41 @@ class PropertyMeterWater(models.Model):
start_time = fields.Date(string="安装日期")
end_time = fields.Date(string="拆除日期")
last_reading_time = fields.Date(string="最后读数时间")
- water_state = fields.Selection([('stop', '停用'), ('use', '使用'), ('rent', '出租')], string='状态')
+ water_state = fields.Selection([('stop', '停用'), ('use', '使用'), ('rent', '出租')], string='状态', compute='_compute_water_state', store=True)
standards_id = fields.Many2one('yuthon.electricity.setting', string='标准')
yuthon_property_id = fields.Many2one('yuthon.property', string='关联物业信息')
+ @api.depends('lessee_id')
+ def _compute_water_state(self):
+ for record in self:
+ if record.lessee_id:
+ record.water_state = 'rent'
+ else:
+ record.water_state = 'use'
+
+ @api.model
+ def create(self, vals):
+ record = super().create(vals)
+ if record.lessee_id:
+ record.water_state = 'rent'
+ else:
+ record.water_state = 'use'
+ return record
+
+ def button_water_state(self):
+ archives_ids = self.env["property.meter.water"].browse(
+ self._context.get('active_ids', self._context.get('active_id')))
+ for record in archives_ids:
+ record.water_state = 'stop'
+
+ def update_meter(self):
+ meter_ids = self.env["property.meter.water"].browse(self._context.get('active_ids', self._context.get('active_id')))
+ for record in meter_ids:
+ if record.lessee_id:
+ record.water_state = 'rent'
+ else:
+ record.water_state = 'use'
+
@api.onchange('current_meter')
def _onchange_current_meter(self):
current_date = fields.Date.today()
diff --git a/yuthon_property/views/menuitem.xml b/yuthon_property/views/menuitem.xml
index fe5dc5e3d..a5d20bb56 100644
--- a/yuthon_property/views/menuitem.xml
+++ b/yuthon_property/views/menuitem.xml
@@ -100,26 +100,26 @@
sequence="99"
name="配置"
parent="yuthon_property_meter_menu"/>
-
-
-
+
+
diff --git a/yuthon_property/views/property_meter_archives_views.xml b/yuthon_property/views/property_meter_archives_views.xml
index 2cda2b4fa..d7097ca3a 100644
--- a/yuthon_property/views/property_meter_archives_views.xml
+++ b/yuthon_property/views/property_meter_archives_views.xml
@@ -4,9 +4,11 @@
property.meter.archives.tree
property.meter.archives
-
+
@@ -24,8 +26,8 @@
+
-
@@ -44,6 +46,7 @@
+
@@ -80,4 +83,11 @@
code
action = model.action_property_meter_wizard()
+
+ 更新状态
+
+
+ code
+ action = model.update_meter()
+
\ No newline at end of file
diff --git a/yuthon_property/views/property_meter_water_views.xml b/yuthon_property/views/property_meter_water_views.xml
index 5ac3c66a0..f3d51dc33 100644
--- a/yuthon_property/views/property_meter_water_views.xml
+++ b/yuthon_property/views/property_meter_water_views.xml
@@ -5,9 +5,11 @@
property.meter.water
+ decoration-danger="water_state == 'stop'">
+ decoration-success="is_push">
@@ -25,6 +27,7 @@
+
@@ -44,7 +47,7 @@
-
+
@@ -80,4 +83,11 @@
code
+
+ 更新状态
+
+
+ code
+ action = model.update_meter()
+
\ No newline at end of file
diff --git a/yuthon_property_approval/models/inherit_yuthon_property.py b/yuthon_property_approval/models/inherit_yuthon_property.py
index 5c5aa5533..bb2c5887e 100644
--- a/yuthon_property_approval/models/inherit_yuthon_property.py
+++ b/yuthon_property_approval/models/inherit_yuthon_property.py
@@ -24,6 +24,18 @@ class YuthonProperty(models.Model):
else:
continue
+ def update_lessee_id(self):
+ property_ids = self.env["yuthon.property"].browse(
+ self._context.get('active_ids', self._context.get('active_id')))
+ for rec in property_ids:
+ if rec.property_contract_ids:
+ rec.lessee_id = rec.property_contract_ids[-1].lessee_id
+
+ @api.onchange('property_contract_ids')
+ def _onchange_property_contract_ids(self):
+ if self.property_contract_ids:
+ self.lessee_id = self.property_contract_ids[-1].lessee_id
+
# 银行流水
class PropertyBankStatements(models.Model):
_inherit = 'property.bank.statements'
diff --git a/yuthon_property_approval/views/inherit_yuthon_property_views.xml b/yuthon_property_approval/views/inherit_yuthon_property_views.xml
index 93c6cfff9..e39818fb6 100644
--- a/yuthon_property_approval/views/inherit_yuthon_property_views.xml
+++ b/yuthon_property_approval/views/inherit_yuthon_property_views.xml
@@ -21,6 +21,13 @@
+
+ 更新承租方
+
+
+ code
+ action = model.update_lessee_id()
+
property.rent.list.search
diff --git a/yuthon_property_approval/views/property_menu_all.xml b/yuthon_property_approval/views/property_menu_all.xml
index e097a1967..ff3e26381 100644
--- a/yuthon_property_approval/views/property_menu_all.xml
+++ b/yuthon_property_approval/views/property_menu_all.xml
@@ -271,12 +271,12 @@