diff --git a/yuthon_property/__manifest__.py b/yuthon_property/__manifest__.py index 78fc185c1..7cb6940e4 100644 --- a/yuthon_property/__manifest__.py +++ b/yuthon_property/__manifest__.py @@ -67,6 +67,7 @@ 'wizard/electric_water_wizard_views.xml', 'wizard/meter_price_wizard.xml', 'wizard/property_statements_wizard_views.xml', + 'wizard/utility_meter_wizard_views.xml', 'views/menuitem.xml', ], 'assets': { diff --git a/yuthon_property/models/property_meter_archives.py b/yuthon_property/models/property_meter_archives.py index 6bdba5e56..54d8e11fd 100644 --- a/yuthon_property/models/property_meter_archives.py +++ b/yuthon_property/models/property_meter_archives.py @@ -227,6 +227,7 @@ class MeterArchivesLine(models.Model): last_read = fields.Float(string="上次读数", store=True, group_operator=None, compute="_compute_last") meter_date = fields.Date(string="任务日期") meter_date_month = fields.Char(string="任务日期月份", compute="_compute_meter_date_month", store=True, index=True,) + def _compute_meter_date_month(self): for rec in self: if rec.meter_date: diff --git a/yuthon_property/models/property_meter_water.py b/yuthon_property/models/property_meter_water.py index beec19d17..2131595fd 100644 --- a/yuthon_property/models/property_meter_water.py +++ b/yuthon_property/models/property_meter_water.py @@ -176,32 +176,18 @@ class MeterWaterLine(models.Model): _order = "number asc, sequence asc" # name = fields.Char(string='仪表编号') - water_id = fields.Many2one( - "property.meter.water", string="水表库", required=True, ondelete="cascade" - ) + water_id = fields.Many2one("property.meter.water", string="水表库", required=True, ondelete="cascade") initial_value = fields.Float(string="初始值") - number = fields.Integer( - related="epitope_values_id.sequence", string="序号", store=True - ) + number = fields.Integer(related="epitope_values_id.sequence", string="序号", store=True) sequence = fields.Integer(related="water_id.sequence1", string="表序号", store=True) 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_dosage = fields.Float( - string="上次用量", store=True, group_operator=None, compute="_compute_last" - ) - last_read = fields.Float( - string="上次读数", group_operator=None, compute="_compute_last" - ) + last_dosage = fields.Float(string="上次用量", store=True, group_operator=None, compute="_compute_last") + last_read = fields.Float(string="上次读数", group_operator=None, compute="_compute_last") meter_date = fields.Date(string="任务日期") - - meter_date_month = fields.Char( - string="任务日期月份", - compute="_compute_meter_date_month", - store=True, - index=True, - ) + meter_date_month = fields.Char(string="任务日期月份", compute="_compute_meter_date_month", store=True, index=True) current_meter = fields.Float(string="本次用量", group_operator=None, compute="_compute_current_meter") current_read = fields.Float(string='本次读数', group_operator=None) unit_number = fields.Char(string='单元编号/用途') @@ -336,3 +322,5 @@ class MeterWaterLine(models.Model): "default_water_ids": water_ids.ids, } } + + diff --git a/yuthon_property/models/yuthon_property.py b/yuthon_property/models/yuthon_property.py index 87c6a398d..bdd5759a0 100644 --- a/yuthon_property/models/yuthon_property.py +++ b/yuthon_property/models/yuthon_property.py @@ -190,25 +190,56 @@ class YuthonProperty(models.Model): 'company_id': False, }) + # 物业关联电表按钮 + def add_archives_meter_button(self): + """ + 关联水电表按钮 + :return: + """ + return { + 'name': '物业关联电表弹窗', + 'type': 'ir.actions.act_window', + 'res_model': 'utility.meter.wizard', + 'view_mode': 'form', + 'target': 'new', + 'context': { + 'default_property_id': self.id, + 'default_meter_type': 'archives', + } + } - @api.onchange('energy_meter_ids') - def _onchange_energy_meter_ids(self): - if not hasattr(self.id, 'origin') or not self.id.origin: - return - target_property_id = self.id.origin - meter_model = self.env['property.meter.archives'] - related_meters = meter_model.search([ - ('yuthon_property_ids', 'in', [target_property_id]) - ]) - if related_meters: - related_meters.write({ - 'yuthon_property_ids': [(6, 0, [])] - }) - for rec in self.energy_meter_ids: - meter_id = meter_model.browse(rec.property_meter_archives_id.id) - meter_id.write({ - 'yuthon_property_ids': [(6, 0, [target_property_id])] - }) + # 物业关联水表按钮 + def add_water_meter_button(self): + return { + 'name': '物业关联水表弹窗', + 'type': 'ir.actions.act_window', + 'res_model': 'utility.meter.wizard', + 'view_mode': 'form', + 'target': 'new', + 'context': { + 'default_property_id': self.id, + 'default_meter_type': 'water', + } + } + + # @api.onchange('energy_meter_ids') + # def _onchange_energy_meter_ids(self): + # if not hasattr(self.id, 'origin') or not self.id.origin: + # return + # target_property_id = self.id.origin + # meter_model = self.env['property.meter.archives'] + # related_meters = meter_model.search([ + # ('yuthon_property_ids', 'in', [target_property_id]) + # ]) + # if related_meters: + # related_meters.write({ + # 'yuthon_property_ids': [(6, 0, [])] + # }) + # for rec in self.energy_meter_ids: + # meter_id = meter_model.browse(rec.property_meter_archives_id.id) + # meter_id.write({ + # 'yuthon_property_ids': [(6, 0, [target_property_id])] + # }) @api.onchange('water_meter_ids') def _onchange_water_meter_idss(self): @@ -552,6 +583,17 @@ class YuthonPropertyWater(models.Model): epitope_values_id = fields.Many2one(related='property_meter_water_id.epitope_values_id', string="位置") yuthon_property_id = fields.Many2one('yuthon.property', string="物业管理") + # 水表跳转 + def detail(self): + return { + "type": "ir.actions.act_window", + "name": "水表库", + "res_model": "property.meter.water", + "res_id": self.property_meter_water_id.id, + "view_mode": "form", + "target": "new" + } + class YuthonPropertyEnergy(models.Model): _name = 'yuthon.property.energy' @@ -565,6 +607,17 @@ class YuthonPropertyEnergy(models.Model): epitope_values_id = fields.Many2one(related='property_meter_archives_id.epitope_values_id', string="位置") yuthon_property_id = fields.Many2one('yuthon.property', string="物业管理") + # 水表跳转 + def detail(self): + return { + "type": "ir.actions.act_window", + "name": "电表库", + "res_model": "property.meter.archives", + "res_id": self.property_meter_archives_id.id, + "view_mode": "form", + "target": "new" + } + class TitleInformationLine(models.Model): _name = 'title.information.line' diff --git a/yuthon_property/security/ir.model.access.csv b/yuthon_property/security/ir.model.access.csv index 608b02018..478838827 100644 --- a/yuthon_property/security/ir.model.access.csv +++ b/yuthon_property/security/ir.model.access.csv @@ -100,4 +100,5 @@ access_receivable_modify_line, receivable.modify.line,model_receivable_modify_li access_meter_archives_line, meter.archives.line,model_meter_archives_line,base.group_user,1,1,1,1 access_meter_water_line, meter.water.line,model_meter_water_line,base.group_user,1,1,1,1 access_yuthon_epitope_values, yuthon.epitope.values,model_yuthon_epitope_values,base.group_user,1,1,1,1 -access_task_push_wizard,task.push.wizard,model_task_push_wizard,base.group_user,1,1,1,1 \ No newline at end of file +access_task_push_wizard,task.push.wizard,model_task_push_wizard,base.group_user,1,1,1,1 +access_utility_meter_wizard,utility.meter.wizard,model_utility_meter_wizard,base.group_user,1,1,1,1 \ No newline at end of file diff --git a/yuthon_property/views/property_meter_archives_views.xml b/yuthon_property/views/property_meter_archives_views.xml index e86835587..e0a922c58 100644 --- a/yuthon_property/views/property_meter_archives_views.xml +++ b/yuthon_property/views/property_meter_archives_views.xml @@ -40,7 +40,6 @@ - @@ -59,7 +58,6 @@ - diff --git a/yuthon_property/views/yuthon_property_views.xml b/yuthon_property/views/yuthon_property_views.xml index 27456fc25..fe1cece6a 100644 --- a/yuthon_property/views/yuthon_property_views.xml +++ b/yuthon_property/views/yuthon_property_views.xml @@ -116,7 +116,6 @@ -