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 @@