This commit is contained in:
李鹏宇
2025-09-30 16:53:01 +08:00
parent 7ad24ba87e
commit 07fc6026f4
7 changed files with 41 additions and 49 deletions
@@ -4,6 +4,7 @@ from datetime import datetime
from odoo import models, fields, api
from odoo.exceptions import UserError, ValidationError
class PropertyMeterArchives(models.Model):
_name = 'property.meter.archives'
_description = '电表库'
@@ -34,6 +35,16 @@ class PropertyMeterArchives(models.Model):
remarks = fields.Text(string='备注')
state = fields.Selection([('reading', '已抄'), ('unreading', '未抄')], string='抄表状态', default='unreading')
# @api.model_create_multi 多条创建
# @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 update_epitope_values(self):
meter_ids = self.env["property.meter.archives"].browse(
self._context.get('active_ids', self._context.get('active_id'))
@@ -80,14 +91,7 @@ class PropertyMeterArchives(models.Model):
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')))
@@ -73,14 +73,14 @@ class PropertyMeterWater(models.Model):
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
# @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(
@@ -128,10 +128,10 @@ class MeterWaterLine(models.Model):
_description = '水表库明细行'
_order = 'number asc, sequence asc'
name = fields.Char(string='仪表编号')
water_id = fields.Many2one('property.meter.water', string='水表库', required=True, ondelete='cascade')
number = fields.Integer(related='epitope_values_id.sequence', string="序号", store=True)
sequence = fields.Integer(related='water_id.sequence1', string="表序号", store=True)
name = fields.Char(string='仪表编号')
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='物业信息')
@@ -4,8 +4,7 @@
<field name="name">property.meter.archives.tree</field>
<field name="model">property.meter.archives</field>
<field name="arch" type="xml">
<tree string="电表库" create="False" editable="bottom"
decoration-danger="archives_state == 'stop'">
<tree string="电表库" 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"/>
@@ -13,7 +12,7 @@
</header>
<field name="sequence1"/>
<field name="number" column_invisible="1"/>
<field name="name"/>
<field name="name" required="1"/>
<field name="epitope_values" column_invisible="1"/>
<field name="epitope_values_id" domain="[('type', '=', 'ammeter')]"/>
<field name="lessee_id" options="{'no_create': True}"/>
@@ -36,12 +35,6 @@
<field name="arch" type="xml">
<form string="电表库">
<sheet>
<div class="oe_title">
<label for="name"/>
<h1>
<field name="name"/>
</h1>
</div>
<group col="2">
<group>
<field name="name"/>
@@ -4,8 +4,7 @@
<field name="name">property.meter.water.tree</field>
<field name="model">property.meter.water</field>
<field name="arch" type="xml">
<tree string="水表库" create="False" editable="bottom"
decoration-danger="water_state == 'stop'">
<tree string="水表库" decoration-danger="water_state == 'stop'">
<header>
<button class="oe_highlight" name="batch_reading_water_push" string="任务生成" type="object"/>
<button class="oe_highlight" name="button_water_state" string="停用" type="object"/>
@@ -13,7 +12,7 @@
</header>
<field name="sequence1"/>
<field name="number" column_invisible="1"/>
<field name="name"/>
<field name="name" required="1"/>
<field name="epitope_values" column_invisible="1"/>
<field name="epitope_values_id" domain="[('type', '=', 'watermeter')]"/>
<field name="lessee_id" options="{'no_create': True}"/>
@@ -37,12 +36,6 @@
<field name="arch" type="xml">
<form string="水表库">
<sheet>
<div class="oe_title">
<label for="name"/>
<h1>
<field name="name"/>
</h1>
</div>
<group col="2">
<group>
<field name="name"/>
@@ -6,7 +6,7 @@ class ElectricWaterWizard(models.TransientModel):
_name = 'electric.water.wizard'
_description = '电水表推送弹窗'
push_date = fields.Date(string='推送日期')
push_date = fields.Date(string='推送日期', default=fields.date.today())
meter_ids = fields.Many2many('property.meter.archives', string='电表库')
water_ids = fields.Many2many('property.meter.water', string='水表库')
@@ -37,15 +37,24 @@ class YuthonProperty(models.Model):
if self.property_contract_ids:
self.lessee_id = self.property_contract_ids[-1].lessee_id
# 银行流水
class PropertyBankStatements(models.Model):
_inherit = 'property.bank.statements'
contract_id = fields.Many2one('property.lease.contract', string="关联租赁合同审批")
contract_id = fields.Many2one('property.lease.contract', string="关联租赁合同审批")
contract_ids = fields.Many2many('property.lease.contract', string="租赁合同审批")
property_name = fields.Text(string="物业名称", compute="compute_property_name", store=True)
accounts_id = fields.Many2one('property.accounts.approval', string="关联生成应收审批单")
admin_id = fields.Many2one('res.users', string="片区管理员", compute="_compute_property_employee_id", store=True, index=True)
@api.depends('contract_ids')
def _compute_property_employee_id(self):
for emp in self:
if emp.contract_ids:
emp.admin_id = emp.contract_ids[0].admin_id.id
else:
emp.admin_id = False
def update_property_name(self):
property_ids = self.env["property.bank.statements"].browse(
self._context.get('active_ids', self._context.get('active_id')))
@@ -524,23 +524,16 @@
<button name="other" type="object" class="oe_highlight" string="其他"/>
</header>
</xpath>
<xpath expr="//field[@name='property_ids']" position="before">
<field name="contract_ids" string="合同编号" widget="many2many_tags" readonly="1" domain="[('lessor_id.name', '=', your_own_unit)]"/>
<field name="property_name" string="物业信息"/>
<field name="admin_id"/>
</xpath>
<xpath expr="//field[@name='bank_state']" position="after">
<button name="button_reconciliation" type="object" string="对账" class="btn btn-primary" invisible="bank_state != 'not_reconciled'"/>
<button name="binding_information" type="object" string="绑定信息" class="btn btn-primary"/>
</xpath>
</field>
</record>
<record id="inherit_property_bank_statements_tree1" model="ir.ui.view">
<field name="name">property.bank.statements.tree</field>
<field name="model">property.bank.statements</field>
<field name="inherit_id" ref="yuthon_property.view_property_bank_statements_tree1"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='bank_state']" position="after">
<button name="revocation" type="object" class="btn btn-primary" string="撤销" invisible="bank_state == 'not_reconciled'"/>
<button name="button_reconciliation" type="object" string="对账" class="btn btn-primary" invisible="bank_state != 'not_reconciled'"/>
<button name="binding_information" type="object" string="绑定信息" class="btn btn-primary"/>
</xpath>
</field>
</record>
@@ -550,7 +543,7 @@
<field name="inherit_id" ref="yuthon_property.view_property_bank_statements_search"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='original_amount']" position="after">
<field name="contract_ids"/>
<field name="contract_ids"/>
<field name="property_name" string="物业信息"/>
</xpath>
</field>