@@ -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)
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -100,26 +100,26 @@
|
||||
sequence="99"
|
||||
name="配置"
|
||||
parent="yuthon_property_meter_menu"/>
|
||||
<menuitem id="yuthon_electricity_setting_menu"
|
||||
parent="yuthon_property_archives_setting_meu"
|
||||
name="电费标准"
|
||||
action="view_yuthon_electricity_setting_action"
|
||||
sequence="1"/>
|
||||
<menuitem id="yuthon_water_setting_menu"
|
||||
parent="yuthon_property_archives_setting_meu"
|
||||
name="水费标准"
|
||||
action="view_yuthon_water_setting_action"
|
||||
sequence="3"/>
|
||||
<menuitem id="yuthon_property_archives_power_menu"
|
||||
sequence="10"
|
||||
<menuitem id="yuthon_property_archives_power_menu"
|
||||
sequence="1"
|
||||
name="电表库"
|
||||
parent="yuthon_property_archives_setting_meu"
|
||||
action="action_property_meter_archives"/>
|
||||
<menuitem id="yuthon_property_archives_water_menu"
|
||||
sequence="15"
|
||||
sequence="5"
|
||||
name="水表库"
|
||||
parent="yuthon_property_archives_setting_meu"
|
||||
action="action_property_meter_water"/>
|
||||
<menuitem id="yuthon_electricity_setting_menu"
|
||||
parent="yuthon_property_archives_setting_meu"
|
||||
name="电费标准"
|
||||
action="view_yuthon_electricity_setting_action"
|
||||
sequence="10"/>
|
||||
<menuitem id="yuthon_water_setting_menu"
|
||||
parent="yuthon_property_archives_setting_meu"
|
||||
name="水费标准"
|
||||
action="view_yuthon_water_setting_action"
|
||||
sequence="15"/>
|
||||
|
||||
<!-- <menuitem id="yuthon_property_science_menu"-->
|
||||
<!-- sequence="13"-->
|
||||
|
||||
@@ -4,9 +4,11 @@
|
||||
<field name="name">property.meter.archives.tree</field>
|
||||
<field name="model">property.meter.archives</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="电表库" limit="20" create="False" editable="bottom" decoration-success="is_push">
|
||||
<tree string="电表库" limit="20" create="False" editable="bottom" decoration-success="is_push"
|
||||
decoration-danger="archives_state == 'stop'">
|
||||
<header>
|
||||
<button class="oe_highlight" name="batch_reading_push" string="推送" type="object"/>
|
||||
<button class="oe_highlight" name="button_archives_state" string="停用" type="object"/>
|
||||
</header>
|
||||
<field name="name"/>
|
||||
<field name="lessee_id" options="{'no_create': True}"/>
|
||||
@@ -24,8 +26,8 @@
|
||||
<field name="dosage"/>
|
||||
<field name="start_time"/>
|
||||
<field name="end_time"/>
|
||||
<field name="archives_state"/>
|
||||
<field name="is_push" column_invisible="1"/>
|
||||
<field name="employee_ids" widget="many2many_tags" options="{'no_create': True}"/>
|
||||
<field name="maximum_count"/>
|
||||
</tree>
|
||||
</field>
|
||||
@@ -44,6 +46,7 @@
|
||||
<field name="current_meter"/>
|
||||
<field name="dosage"/>
|
||||
<field name="archives_state"/>
|
||||
<field name="employee_ids" widget="many2many_tags" options="{'no_create': True}"/>
|
||||
<field name="is_push" column_invisible="1"/>
|
||||
</tree>
|
||||
</field>
|
||||
@@ -80,4 +83,11 @@
|
||||
<field name="state">code</field>
|
||||
<field name="code">action = model.action_property_meter_wizard()</field>
|
||||
</record>
|
||||
<record id="all_update_meter_archives" model="ir.actions.server">
|
||||
<field name="name">更新状态</field>
|
||||
<field name="model_id" ref="yuthon_property.model_property_meter_archives"/>
|
||||
<field name="binding_model_id" ref="yuthon_property.model_property_meter_archives"/>
|
||||
<field name="state">code</field>
|
||||
<field name="code">action = model.update_meter()</field>
|
||||
</record>
|
||||
</odoo>
|
||||
@@ -5,9 +5,11 @@
|
||||
<field name="model">property.meter.water</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="水表库" limit="20" create="False" editable="bottom"
|
||||
decoration-success="is_push">
|
||||
decoration-danger="water_state == 'stop'">
|
||||
decoration-success="is_push">
|
||||
<header>
|
||||
<button class="oe_highlight" name="batch_reading_water_push" string="推送" type="object"/>
|
||||
<button class="oe_highlight" name="button_water_state" string="停用" type="object"/>
|
||||
</header>
|
||||
<field name="name"/>
|
||||
<field name="lessee_id" options="{'no_create': True}"/>
|
||||
@@ -25,6 +27,7 @@
|
||||
<field name="dosage"/>
|
||||
<field name="start_time"/>
|
||||
<field name="end_time"/>
|
||||
<field name="water_state"/>
|
||||
<field name="is_push" column_invisible="1"/>
|
||||
<field name="employee_ids" widget="many2many_tags" options="{'no_create': True}"/>
|
||||
<field name="maximum_count"/>
|
||||
@@ -44,7 +47,7 @@
|
||||
<field name="last_dosage"/>
|
||||
<field name="current_meter"/>
|
||||
<field name="dosage"/>
|
||||
<field name="water_state"/>
|
||||
<field name="employee_ids" widget="many2many_tags" options="{'no_create': True}"/>
|
||||
<field name="is_push" column_invisible="1"/>
|
||||
</tree>
|
||||
</field>
|
||||
@@ -80,4 +83,11 @@
|
||||
<field name="binding_model_id" ref="yuthon_property.model_property_meter_water"/>
|
||||
<field name="state">code</field>
|
||||
</record>
|
||||
<record id="all_update_meter" model="ir.actions.server">
|
||||
<field name="name">更新状态</field>
|
||||
<field name="model_id" ref="yuthon_property.model_property_meter_water"/>
|
||||
<field name="binding_model_id" ref="yuthon_property.model_property_meter_water"/>
|
||||
<field name="state">code</field>
|
||||
<field name="code">action = model.update_meter()</field>
|
||||
</record>
|
||||
</odoo>
|
||||
@@ -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'
|
||||
|
||||
@@ -21,6 +21,13 @@
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
<record id="all_update_lessee_id" model="ir.actions.server">
|
||||
<field name="name">更新承租方</field>
|
||||
<field name="model_id" ref="yuthon_property.model_yuthon_property"/>
|
||||
<field name="binding_model_id" ref="yuthon_property.model_yuthon_property"/>
|
||||
<field name="state">code</field>
|
||||
<field name="code">action = model.update_lessee_id()</field>
|
||||
</record>
|
||||
<!--租金-->
|
||||
<record id="view_property_rent_list_search" model="ir.ui.view">
|
||||
<field name="name">property.rent.list.search</field>
|
||||
|
||||
@@ -271,12 +271,12 @@
|
||||
|
||||
<menuitem id="yuthon_property_electric_reading_menu"
|
||||
sequence="1"
|
||||
name="电表抄表任务"
|
||||
name="电表任务"
|
||||
parent="yuthon_property.yuthon_property_meter_menu"
|
||||
action="yuthon_property.action_property_meter_archives1"/>
|
||||
<menuitem id="yuthon_property_water_reading_menu"
|
||||
sequence="3"
|
||||
name="水表抄表任务"
|
||||
name="水表任务"
|
||||
parent="yuthon_property.yuthon_property_meter_menu"
|
||||
action="yuthon_property.action_property_meter_water1"/>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user