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 @@
-
@@ -125,6 +124,7 @@
+
@@ -145,45 +145,46 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -240,21 +241,9 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
@@ -263,17 +252,33 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
+
diff --git a/yuthon_property/wizard/__init__.py b/yuthon_property/wizard/__init__.py
index d3bf3177c..896063db9 100644
--- a/yuthon_property/wizard/__init__.py
+++ b/yuthon_property/wizard/__init__.py
@@ -10,3 +10,4 @@ from . import water_price_wizard
from . import initialize_wizard
from . import electric_water_wizard
from . import task_push_wizard
+from . import utility_meter_wizard
diff --git a/yuthon_property/wizard/utility_meter_wizard.py b/yuthon_property/wizard/utility_meter_wizard.py
new file mode 100644
index 000000000..295567850
--- /dev/null
+++ b/yuthon_property/wizard/utility_meter_wizard.py
@@ -0,0 +1,33 @@
+# -*- coding: utf-8 -*-
+from odoo import models, fields, api, _, SUPERUSER_ID
+from odoo.exceptions import ValidationError, UserError
+from pypinyin import pinyin, Style
+import xlrd
+import base64
+import datetime
+from datetime import datetime
+
+
+class UtilityMeterWizard(models.TransientModel):
+ _name = 'utility.meter.wizard'
+ _description = '物业关联水电表弹窗'
+
+ property_id = fields.Many2one('yuthon.property', string="物业信息")
+ meter_type = fields.Selection([('archives', '电表'), ('water', '水表')], string="表类型")
+ epitope_values_archives_id = fields.Many2one("yuthon.epitope.values", string="电表位置")
+ epitope_values_water_id = fields.Many2one("yuthon.epitope.values", string="水表位置")
+ archives_ids = fields.Many2many('property.meter.archives', string="电表库")
+ water_ids = fields.Many2many('property.meter.water', string="水表库")
+
+ def confirm(self):
+ if self.meter_type == 'archives':
+ for archives in self.archives_ids:
+ archives.yuthon_property_ids |= self.property_id
+
+ # self.archives_ids.write({'yuthon_property_ids': [(4, self.property_id.id)]})
+ if self.meter_type == 'water':
+ for water in self.water_ids:
+ # 使用 |= 操作符来追加到 Many2many 字段
+ water.yuthon_property_ids |= self.property_id
+
+ # self.water_ids.write({'yuthon_property_ids': [(4, self.property_id.id)]})
diff --git a/yuthon_property/wizard/utility_meter_wizard_views.xml b/yuthon_property/wizard/utility_meter_wizard_views.xml
new file mode 100644
index 000000000..49aec81ff
--- /dev/null
+++ b/yuthon_property/wizard/utility_meter_wizard_views.xml
@@ -0,0 +1,25 @@
+
+
+
+ utility.meter.wizard.form
+ utility.meter.wizard
+
+
+
+
+
+
+
diff --git a/yuthon_property_approval/views/inherit_yuthon_property_views.xml b/yuthon_property_approval/views/inherit_yuthon_property_views.xml
index 41dbc7620..5edc0f17c 100644
--- a/yuthon_property_approval/views/inherit_yuthon_property_views.xml
+++ b/yuthon_property_approval/views/inherit_yuthon_property_views.xml
@@ -1,15 +1,15 @@
-
- inherit.property.meter.archives.form
- property.meter.archives
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
inherit.property.meter.water.form
property.meter.water
diff --git a/yuthon_property_approval/views/property_menu_all.xml b/yuthon_property_approval/views/property_menu_all.xml
index 8992b7e5e..2d5622ae5 100644
--- a/yuthon_property_approval/views/property_menu_all.xml
+++ b/yuthon_property_approval/views/property_menu_all.xml
@@ -285,11 +285,11 @@
parent="yuthon_property.yuthon_property_meter_menu"
action="yuthon_property.view_yuthon_epitope_values_action"/>
-
+
+
+
+
+