添加功能

This commit is contained in:
zhouzhou
2024-11-04 11:53:19 +08:00
parent 980afe683d
commit e0baa8ef03
12 changed files with 777 additions and 24 deletions
+45 -8
View File
@@ -24,6 +24,10 @@ class YuthonProperty(models.Model):
vr_link = fields.Char(string="VR链接")
notice_documents_ids = fields.Many2many('ir.attachment', string='议题附件')
current_rent = fields.Float(string="现租金")
is_merge = fields.Boolean(string="是否可合并")
is_split = fields.Boolean(string="是否可拆分")
is_done_split = fields.Boolean(string="已拆分")
is_done_merge = fields.Boolean(string="已合并")
abbreviation = fields.Char(string="简称")
property_floor = fields.Integer(string="楼层")
@@ -39,7 +43,7 @@ class YuthonProperty(models.Model):
('signed', '已备案'), ('leased', '已出租'), ('idle', '闲置')], string='状态', default='to')
is_meter = fields.Boolean(string="是否有水表")
is_electricity_meter = fields.Boolean(string="是否有电表")
company_page = fields.Selection([('tz', '天河投资'), ('wg', '天河物管'), ('lc', '天河粮储'), ('tj', '天河投建')],
yuthon_company = fields.Selection([('tz', '天河投资'), ('wg', '天河物管'), ('lc', '天河粮储'), ('tj', '天河投建')],
string="所属公司")
admin_id = fields.Many2one('res.users', string="管理员")
purpose_id = fields.Many2one('yuthon.resource.purpose', string="资产用途")
@@ -67,7 +71,6 @@ class YuthonProperty(models.Model):
manage_standard = fields.Char(string="物业管理费标准")
title_address = fields.Char(string="产权地址")
rental_address = fields.Char(string="出租地址")
ame = fields.Char(string='标题')
decoration_type = fields.Selection([('blank', '毛坯'), ('hardcover', '精装'), ('brands', '简装'), ('rsz', '豪装')],
string="装修类型")
@@ -77,7 +80,8 @@ class YuthonProperty(models.Model):
manage_information_ids = fields.One2many('manage.information.line', 'yuthon_property_id',
string='关联管理信息明细行')
disassembly_information_ids = fields.One2many('disassembly.information.line', 'yuthon_property_id',
string='关联拆合信息明细行')
string='关联拆分信息明细行')
property_merge_approval_id = fields.Many2one('yuthon.property', string='关联物业信息')
@api.onchange('building_area')
def _onchange_building_area(self):
@@ -134,6 +138,7 @@ class YuthonProperty(models.Model):
'default_property_id': self.id
}
}
def put_adjustment_approval(self):
form_id = self.env.ref('yuthon_property_approval.view_property_rental_conditions_form').id
return {
@@ -146,6 +151,7 @@ class YuthonProperty(models.Model):
'default_property_id': self.id
}
}
def put_property_handover(self):
property_ids = self.env["yuthon.property"].browse(
self._context.get('active_ids', self._context.get('active_id')))
@@ -193,7 +199,6 @@ class YuthonProperty(models.Model):
'rental_conditions': record.rental_conditions,
'state':record.state,
'remarks': record.remarks}])
return {
'name': '提交物业评估',
'view_mode': 'form',
@@ -204,6 +209,37 @@ class YuthonProperty(models.Model):
'default_evaluate_application_ids': property_list
}
}
# 拆分
def put_split_approval(self):
form_id = self.env.ref('yuthon_property_approval.view_property_split_approval_form').id
return {
'name': '拆分物业审批',
'view_mode': 'form',
'res_model': 'property.split.approval',
'type': 'ir.actions.act_window',
'views': [(form_id, 'form')],
'context': {
'default_property_id': self.id
}}
# 合并
def put_merge_approval(self):
property_ids = self.env["yuthon.property"].browse(
self._context.get('active_ids', self._context.get('active_id')))
form_id = self.env.ref('yuthon_property_approval.view_property_merge_approval_form').id
property_list = []
for record in property_ids:
property_list.append([0, 0, {
'property_id': record.id
}])
return {
'name': '合并物业审批',
'view_mode': 'form',
'res_model': 'property.merge.approval',
'type': 'ir.actions.act_window',
'views': [(form_id, 'form')],
'context': {
'default_property_merge_approval_line_ids':property_list
}}
class YuthonPropertyWater(models.Model):
_name = 'yuthon.property.water'
@@ -269,7 +305,7 @@ class ManageInformationLine(models.Model):
purpose_id = fields.Many2one('yuthon.resource.purpose', string="资产用途")
precinct = fields.Char(string="片区")
admin_id = fields.Many2one('res.users', string="管理员")
company_page = fields.Selection([('tz', '天河投资'), ('wg', '天河物管'), ('lc', '天河粮储'), ('tj', '天河投建')],
yuthon_company = fields.Selection([('tz', '天河投资'), ('wg', '天河物管'), ('lc', '天河粮储'), ('tj', '天河投建')],
string="所属公司")
start_time = fields.Date(string="生效日期")
end_date = fields.Date(string="失效日期")
@@ -277,10 +313,11 @@ class ManageInformationLine(models.Model):
class DisassemblyInformationLine(models.Model):
_name = 'disassembly.information.line'
_description = '拆合信息明细行'
_description = '拆分信息明细行'
yuthon_property_id = fields.Many2one('yuthon.property', string="关联物业信息")
property_name = fields.Char(string="物业名称") # 逻辑没搞清,暂时先放这里
rent_area = fields.Float(string="可租面积")
property_id = fields.Many2one('yuthon.property', string="物业名称")
rent_area = fields.Float(related='property_id.rentable_area', string="可租面积")
start_time = fields.Date(string="生效日期")
end_date = fields.Date(string="失效日期")
+23 -6
View File
@@ -298,17 +298,34 @@
parent="resource_management_menu"
name="客户信息"
sequence="2"/>
<menuitem
id="property_tenant_information_menu"
parent="property_customer_information_menu"
name="承租方信息"
action="property_tenant_information_action"
sequence="1"/>
<menuitem
id="property_intention_information_menu"
parent="property_customer_information_menu"
name="意向客户信息"
action="property_intention_information_action"
sequence="1"/>
<menuitem
id="property_tenant_information_menu"
parent="property_customer_information_menu"
name="承租方信息"
action="property_tenant_information_action"
sequence="3"/>
<menuitem
id="property_disassembly_management_menu"
parent="resource_management_menu"
name="资源拆合管理"
sequence="9"/>
<menuitem
id="property_split_management_menu"
parent="property_disassembly_management_menu"
name="拆分管理"
action="yuthon_property_action4"
sequence="1"/>
<menuitem
id="property_merge_management_menu"
parent="property_disassembly_management_menu"
name="合并管理"
action="yuthon_property_action5"
sequence="3"/>
<menuitem
id="property_approval_menu"
+379 -7
View File
@@ -13,6 +13,8 @@
<field name="owner_id"/>
<field name="address"/>
<field name="state"/>
<field name="is_merge"/>
<field name="is_split"/>
<field name="start_time"/>
<field name="end_date"/>
<button name="put_offline_approval" type="object" string="提交线下审批" class="btn btn-primary"/>
@@ -40,6 +42,10 @@
<field name="end_date"/>
<field name="remark"/>
<field name="vr_link"/>
<field name="is_merge"/>
<field name="is_split"/>
<field name="is_done_merge" readonly="1"/>
<field name="is_done_split" readonly="1"/>
<field name="notice_documents_ids" widget="preview_many2many"/>
</group>
<group>
@@ -57,11 +63,12 @@
<field name="state" readonly="1"/>
<field name="is_meter"/>
<field name="is_electricity_meter"/>
<field name="is_done_merge" readonly="1"/>
</group>
</group>
<group string="属性价值" col="2">
<group>
<field name="company_page"/>
<field name="yuthon_company"/>
<field name="admin_id"/>
<field name="purpose_id"/>
<field name="mgmt_type_id"/>
@@ -115,23 +122,26 @@
<field name="purpose_id"/>
<field name="precinct"/>
<field name="admin_id"/>
<field name="company_page"/>
<field name="yuthon_company"/>
<field name="start_time"/>
<field name="end_date"/>
</tree>
</field>
</page>
<page string="拆合信息">
<page string="拆分信息" invisible="not is_done_split">
<field name="disassembly_information_ids">
<tree editable="bottom">
<field name="yuthon_property_id" column_invisible="1"/>
<field name="property_name"/>
<field name="property_id"/>
<field name="rent_area"/>
<field name="start_time"/>
<field name="end_date"/>
</tree>
</field>
</page>
<page string="合并信息" invisible="not is_done_merge">
<field name="property_merge_approval_id"/>
</page>
<page string="水表列表" invisible="is_meter == False">
<field name="water_meter_ids">
<tree editable="bottom">
@@ -170,7 +180,7 @@
<field name="model">yuthon.property</field>
<field name="arch" type="xml">
<search>
<field name="company_page" string="公司"/>
<field name="yuthon_company" string="公司"/>
<field name="owner_id" string="负责人"/>
<field name="property_precinct" string="片区"/>
<separator/>
@@ -249,7 +259,7 @@
<field name="purpose_id"/>
<field name="rental_conditions" optional="hide"/>
<field name="district_manager" optional="hide"/>
<field name="company_page" optional="show"/>
<field name="yuthon_company" optional="show"/>
<field name="remarks" optional="hide"/>
<field name="state"/>
</tree>
@@ -276,7 +286,7 @@
<field name="registered_use"/>
<field name="purpose_id"/>
<field name="district_manager"/>
<field name="company_page"/>
<field name="yuthon_company"/>
<field name="state" readonly="1"/>
</group>
</group>
@@ -309,4 +319,366 @@
(0, 0, {'view_mode': 'tree', 'view_id': ref('yuthon_property.yuthon_property_tree')}),
(0, 0, {'view_mode': 'form', 'view_id': ref('yuthon_property.yuthon_property_form')})]"/>
</record>
<!--拆分物业信息-->
<record id="yuthon_property_tree4" model="ir.ui.view">
<field name="name">yuthon.property.tree</field>
<field name="model">yuthon.property</field>
<field name="arch" type="xml">
<tree string="物业管理">
<field name="name" required="1"/>
<field name="owner_id"/>
<field name="address"/>
<field name="state"/>
<field name="is_split"/>
<field name="start_time"/>
<field name="end_date"/>
<button name="put_split_approval" type="object" string="拆分" class="btn btn-primary"/>
</tree>
</field>
</record>
<record id="yuthon_property_form4" model="ir.ui.view">
<field name="name">yuthon.property.form</field>
<field name="model">yuthon.property</field>
<field name="arch" type="xml">
<form string="资产信息">
<sheet>
<group string="基本信息">
<group>
<field name="name" required="1"/>
<field name="premises"/>
<field name="units"/>
<field name="house_type_id"/>
<field name="property_room"/>
<field name="building_area"/>
<field name="actual_area"/>
<field name="management_area"/>
<field name="effective_date"/>
<field name="end_date"/>
<field name="remark"/>
<field name="vr_link"/>
<field name="is_merge"/>
<field name="is_split"/>
<field name="is_done_split" readonly="1"/>
<field name="notice_documents_ids" widget="preview_many2many"/>
</group>
<group>
<field name="image_1920" widget="image" class="oe_avatar"
optional="{'preview_image': 'image_128'}"/>
<field name="abbreviation"/>
<field name="address"/>
<field name="property_floor"/>
<field name="property_orientation"/>
<field name="street"/>
<field name="property_area"/>
<field name="pooled_area"/>
<field name="rentable_area"/>
<field name="property_source"/>
<field name="state" readonly="1"/>
<field name="is_meter"/>
<field name="is_electricity_meter"/>
<field name="is_merge"/>
<field name="is_split"/>
<field name="is_done_merge" readonly="1"/>
</group>
</group>
<group string="属性价值" col="2">
<group>
<field name="yuthon_company"/>
<field name="admin_id"/>
<field name="purpose_id"/>
<field name="mgmt_type_id"/>
<field name="is_confirm_authorization"/>
<field name="owner_id"/>
<field name="property_card"/>
</group>
<group>
<field name="property_precinct"/>
<field name="asset_type_id"/>
<field name="is_hvac"/>
<field name="is_handle_land"/>
<field name="current_rent"/>
</group>
</group>
<group col="2">
<group>
<field name="life_timer"/>
</group>
<group>
<field name="property_use_time"/>
</group>
</group>
<group string="招商信息">
<group>
<field name="ame"/>
<field name="decoration_type"/>
</group>
</group>
<notebook>
<page string="产权信息">
<field name="title_information_ids">
<tree editable="bottom">
<field name="yuthon_property_id" column_invisible="1"/>
<field name="address"/>
<field name="equity_area"/>
<field name="management_area"/>
<field name="building_area"/>
<field name="rent_area"/>
<field name="owner"/>
<field name="title_certificate"/>
<field name="start_time"/>
<field name="end_date"/>
</tree>
</field>
</page>
<page string="管理信息">
<field name="manage_information_ids">
<tree editable="bottom">
<field name="yuthon_property_id" column_invisible="1"/>
<field name="purpose_id"/>
<field name="precinct"/>
<field name="admin_id"/>
<field name="yuthon_company"/>
<field name="start_time"/>
<field name="end_date"/>
</tree>
</field>
</page>
<page string="拆分信息" invisible="not is_done_split">
<field name="disassembly_information_ids">
<tree editable="bottom">
<field name="yuthon_property_id" column_invisible="1"/>
<field name="property_id"/>
<field name="rent_area"/>
<field name="start_time"/>
<field name="end_date"/>
</tree>
</field>
</page>
<page string="合并信息" invisible="is_merge == False">
<field name="property_merge_approval_id"/>
</page>
<page string="水表列表" invisible="is_meter == False">
<field name="water_meter_ids">
<tree editable="bottom">
<field name="yuthon_property_id" column_invisible="1"/>
<field name="property_meter_water_id"/>
<field name="code"/>
<field name="rate"/>
<field name="standard"/>
<field name="installation_date"/>
<field name="demolition_date"/>
<field name="location"/>
</tree>
</field>
</page>
<page string="电表列表" invisible="is_electricity_meter == False">
<field name="energy_meter_ids">
<tree editable="bottom">
<field name="yuthon_property_id" column_invisible="1"/>
<field name="property_meter_archives_id"/>
<field name="code"/>
<field name="rate"/>
<field name="standard"/>
<field name="installation_date"/>
<field name="demolition_date"/>
<field name="location"/>
</tree>
</field>
</page>
</notebook>
</sheet>
</form>
</field>
</record>
<record id="yuthon_property_action4" model="ir.actions.act_window">
<field name="name">物业</field>
<field name="res_model">yuthon.property</field>
<field name="type">ir.actions.act_window</field>
<field name="view_mode">tree,form</field>
<field name="domain">[('is_split','=',True)]</field>
<field name="view_ids" eval="[(5, 0, 0),
(0, 0, {'view_mode': 'tree', 'view_id': ref('yuthon_property.yuthon_property_tree4')}),
(0, 0, {'view_mode': 'form', 'view_id': ref('yuthon_property.yuthon_property_form4')})]"/>
</record>
<!--可合并物业信息-->
<record id="yuthon_property_tree5" model="ir.ui.view">
<field name="name">yuthon.property.tree</field>
<field name="model">yuthon.property</field>
<field name="arch" type="xml">
<tree string="物业管理">
<header>
<button name="put_merge_approval" string="合并" type="object"/>
</header>
<field name="name" required="1"/>
<field name="owner_id"/>
<field name="address"/>
<field name="state"/>
<field name="is_merge"/>
<field name="start_time"/>
<field name="end_date"/>
</tree>
</field>
</record>
<record id="yuthon_property_form5" model="ir.ui.view">
<field name="name">yuthon.property.form</field>
<field name="model">yuthon.property</field>
<field name="arch" type="xml">
<form string="资产信息">
<sheet>
<group string="基本信息">
<group>
<field name="name" required="1"/>
<field name="premises"/>
<field name="units"/>
<field name="house_type_id"/>
<field name="property_room"/>
<field name="building_area"/>
<field name="actual_area"/>
<field name="management_area"/>
<field name="effective_date"/>
<field name="end_date"/>
<field name="remark"/>
<field name="vr_link"/>
<field name="is_done_split" readonly="1"/>
<field name="notice_documents_ids" widget="preview_many2many"/>
</group>
<group>
<field name="image_1920" widget="image" class="oe_avatar"
optional="{'preview_image': 'image_128'}"/>
<field name="abbreviation"/>
<field name="address"/>
<field name="property_floor"/>
<field name="property_orientation"/>
<field name="street"/>
<field name="property_area"/>
<field name="pooled_area"/>
<field name="rentable_area"/>
<field name="property_source"/>
<field name="state" readonly="1"/>
<field name="is_meter"/>
<field name="is_electricity_meter"/>
<field name="is_merge"/>
<field name="is_split"/>
<field name="is_done_merge" readonly="1"/>
</group>
</group>
<group string="属性价值" col="2">
<group>
<field name="yuthon_company"/>
<field name="admin_id"/>
<field name="purpose_id"/>
<field name="mgmt_type_id"/>
<field name="is_confirm_authorization"/>
<field name="owner_id"/>
<field name="property_card"/>
</group>
<group>
<field name="property_precinct"/>
<field name="asset_type_id"/>
<field name="is_hvac"/>
<field name="is_handle_land"/>
<field name="current_rent"/>
</group>
</group>
<group col="2">
<group>
<field name="life_timer"/>
</group>
<group>
<field name="property_use_time"/>
</group>
</group>
<group string="招商信息">
<group>
<field name="ame"/>
<field name="decoration_type"/>
</group>
</group>
<notebook>
<page string="产权信息">
<field name="title_information_ids">
<tree editable="bottom">
<field name="yuthon_property_id" column_invisible="1"/>
<field name="address"/>
<field name="equity_area"/>
<field name="management_area"/>
<field name="building_area"/>
<field name="rent_area"/>
<field name="owner"/>
<field name="title_certificate"/>
<field name="start_time"/>
<field name="end_date"/>
</tree>
</field>
</page>
<page string="管理信息">
<field name="manage_information_ids">
<tree editable="bottom">
<field name="yuthon_property_id" column_invisible="1"/>
<field name="purpose_id"/>
<field name="precinct"/>
<field name="admin_id"/>
<field name="yuthon_company"/>
<field name="start_time"/>
<field name="end_date"/>
</tree>
</field>
</page>
<page string="拆分信息" invisible="not is_done_split">
<field name="disassembly_information_ids">
<tree editable="bottom">
<field name="yuthon_property_id" column_invisible="1"/>
<field name="property_id"/>
<field name="rent_area"/>
<field name="start_time"/>
<field name="end_date"/>
</tree>
</field>
</page>
<page string="合并信息" invisible="is_merge == False">
<field name="property_merge_approval_id"/>
</page>
<page string="水表列表" invisible="is_meter == False">
<field name="water_meter_ids">
<tree editable="bottom">
<field name="yuthon_property_id" column_invisible="1"/>
<field name="property_meter_water_id"/>
<field name="code"/>
<field name="rate"/>
<field name="standard"/>
<field name="installation_date"/>
<field name="demolition_date"/>
<field name="location"/>
</tree>
</field>
</page>
<page string="电表列表" invisible="is_electricity_meter == False">
<field name="energy_meter_ids">
<tree editable="bottom">
<field name="yuthon_property_id" column_invisible="1"/>
<field name="property_meter_archives_id"/>
<field name="code"/>
<field name="rate"/>
<field name="standard"/>
<field name="installation_date"/>
<field name="demolition_date"/>
<field name="location"/>
</tree>
</field>
</page>
</notebook>
</sheet>
</form>
</field>
</record>
<record id="yuthon_property_action5" model="ir.actions.act_window">
<field name="name">物业</field>
<field name="res_model">yuthon.property</field>
<field name="view_mode">tree,form</field>
<field name="type">ir.actions.act_window</field>
<field name="domain">[('is_merge','=',True)]</field>
<field name="view_ids" eval="[(5, 0, 0),
(0, 0, {'view_mode': 'tree', 'view_id': ref('yuthon_property.yuthon_property_tree5')}),
(0, 0, {'view_mode': 'form', 'view_id': ref('yuthon_property.yuthon_property_form5')})]"/>
</record>
</odoo>
+2
View File
@@ -45,6 +45,8 @@
'views/property_record_views.xml',
'views/property_equity_views.xml',
'views/property_handover_views.xml',
'views/property_merge_approval_views.xml',
'views/property_split_approval_views.xml',
'views/property_evaluate_application_views.xml',
'wizard/property_inducts_wizard.xml',
'views/property_menu_all.xml',
@@ -231,4 +231,14 @@
<field name="code">property_rental_conditions_code</field>
<field name="prefix">CT%(y)s%(month)s%(day)s</field>
</record>
<record id="property_merge_approval_sequence" model="ir.sequence">
<field name="name">合并申报编号</field>
<field name="code">property_merge_approval_code</field>
<field name="prefix">HB%(y)s%(month)s%(day)s</field>
</record>
<record id="property_split_approval_sequence" model="ir.sequence">
<field name="name">拆分申报编号</field>
<field name="code">property_split_approval_code</field>
<field name="prefix">CF%(y)s%(month)s%(day)s</field>
</record>
</odoo>
+3 -1
View File
@@ -33,4 +33,6 @@ from . import property_approval
from . import property_handover
from . import property_offline_registration
from . import property_rental_form
from . import property_rental_conditions
from . import property_rental_conditions
from . import property_merge_approval
from . import property_split_approval
@@ -0,0 +1,71 @@
from odoo import models, fields, api, exceptions, _
class PropertyMergeApproval(models.Model):
_name = 'property.merge.approval'
_inherit = 'soong.workflow.mixin'
_description = '物业合并审批'
name = fields.Char(string='标题')
reason = fields.Html(string="正文")
notice_documents_ids = fields.Many2many('ir.attachment', string="附件")
code = fields.Char(string="编号",
default=lambda self: self.env['ir.sequence'].next_by_code('property_merge_approval_code'))
property_merge_approval_line_ids = fields.One2many('property.merge.approval.line', 'property_merge_approval_id', string='关联物业合并审批行')
# 合并后
property_name = fields.Char(string='物业名称')
merge_units = fields.Char(string='单元')
merge_property_floor = fields.Char(string='楼层')
merge_asset_type_id = fields.Many2one('yuthon.resource.type', string='资产类型')
merge_building_area = fields.Float(string='建筑面积')
merge_rent_area = fields.Float(string='可租面积')
merge_remarks = fields.Char(string='备注')
is_issues = fields.Boolean(string='是否上会')
related_issues_id = fields.Many2one('issue.library', string="关联议题")
@api.onchange('property_merge_approval_line_ids')
def _onchange_property_merge_approval_line_ids(self):
name = []
merge_building_area = 0
merge_rent_area = 0
for property_margin in self.property_merge_approval_line_ids:
name.append(property_margin.property_id.name)
merge_building_area += property_margin.building_area
merge_rent_area += property_margin.rent_area
self.property_name = ','.join(name)
self.merge_building_area = merge_building_area
self.merge_rent_area = merge_rent_area
def put_merge_message(self):
property_list = []
property_id = self.env['yuthon.property'].create({
'name': self.property_name,
'building_area': self.merge_building_area,
'rentable_area': self.merge_rent_area,
'asset_type_id': self.merge_asset_type_id.id,
'is_done_split':True,
})
for record in self.property_merge_approval_line_ids:
record.property_id.write({'is_done_merge': True})
record.property_id.property_merge_approval_id = property_id.id
property_list.append([0, 0, {
'yuthon_property_id':property_id.id,
'property_id': record.property_id.id}])
property_id.write({'disassembly_information_ids': property_list})
class PropertyMergeApprovalLine(models.Model):
_name = 'property.merge.approval.line'
_description = '物业合并明细行'
property_merge_approval_id = fields.Many2one('property.merge.approval', string='关联物业合并审批')
property_id = fields.Many2one('yuthon.property', string='物业名称')
units = fields.Char(related='property_id.units', string='单元')
property_floor = fields.Integer(related='property_id.property_floor', string='楼层')
asset_type_id = fields.Many2one(related='property_id.asset_type_id', string='资产类型')
building_area = fields.Float(related='property_id.building_area', string='建筑面积')
rent_area = fields.Float(related='property_id.rentable_area', string='可租面积')
remarks = fields.Char(string='备注')
@@ -0,0 +1,69 @@
from odoo import models, fields, api, exceptions, _
class PropertySplitApproval(models.Model):
_name = 'property.split.approval'
_inherit = 'soong.workflow.mixin'
_description = '物业拆分审批'
code = fields.Char(string="编号",
default=lambda self: self.env['ir.sequence'].next_by_code('property_split_approval_code'))
property_id = fields.Many2one('yuthon.property', string='物业名称')
units = fields.Char(related='property_id.units', string='单元')
property_floor = fields.Integer(related='property_id.property_floor', string='楼层')
asset_type_id = fields.Many2one(related='property_id.asset_type_id', string='资产类型')
building_area = fields.Float(related='property_id.building_area', string='建筑面积')
rent_area = fields.Float(related='property_id.rentable_area', string='可租面积')
remarks = fields.Char(string='备注')
is_issues = fields.Boolean(string='是否上会')
related_issues_id = fields.Many2one('issue.library', string="关联议题")
name = fields.Char(string='标题')
reason = fields.Html(string="正文")
notice_documents_ids = fields.Many2many('ir.attachment', string="附件")
property_split_approval_line_ids = fields.One2many('property.split.approval.line', 'property_split_approval_id', string='关联物业拆分明细行')
split_quantity = fields.Integer(string='拆分数量')
#自由拆分
def put_free_splitting(self):
for i in range(self.split_quantity):
self.env['property.split.approval.line'].create({
'property_split_approval_id': self.id,
'split_property':self.property_id.name + '-'+str(i+1)})
#平均拆分
def put_evaluation_splitting(self):
for i in range(self.split_quantity):
self.env['property.split.approval.line'].create({
'property_split_approval_id': self.id,
'split_property': self.property_id.name + '-' + str(i + 1),
'split_building_area': self.property_id.building_area/self.split_quantity,
'split_rent_area': self.property_id.rent_area/self.split_quantity})
def put_split_message(self):
property_list = []
for i in self.property_split_approval_line_ids:
property_id = self.env['yuthon.property'].create({
'name': i.split_property,
'building_area': i.split_building_area,
'rentable_area': i.split_rent_area,
'asset_type_id': i.split_asset_type_id.id,
'property_merge_approval_id':self.property_id.id,
'is_done_merge': True
})
property_list.append([0, 0, {'property_id':property_id.id}])
self.property_id.write({'is_done_split': True})
self.property_id.disassembly_information_ids = property_list
class PropertySplitApprovalLine(models.Model):
_name = 'property.split.approval.line'
_description = '物业拆分明细行'
property_split_approval_id = fields.Many2one('property.split.approval', string='关联物业拆分审批')
split_property = fields.Char(string='物业名称')
split_units = fields.Char(string='单元')
split_property_floor = fields.Char(string='楼层')
split_asset_type_id = fields.Many2one('yuthon.resource.type', string='资产类型')
split_building_area = fields.Float(string='建筑面积')
split_rent_area = fields.Float(string='可租面积')
split_remarks = fields.Char(string='备注')
@@ -51,4 +51,8 @@ access_now_rental_conditions_line,now_rental_conditions_line,model_now_rental_co
access_property_rental_conditions,property_rental_conditions,model_property_rental_conditions,base.group_user,1,1,1,1
access_rental_adjustment_line,rental_adjustment_line,model_rental_adjustment_line,base.group_user,1,1,1,1
access_evaluated_application_line,evaluated_application_line,model_evaluated_application_line,base.group_user,1,1,1,1
access_property_rental_form_line,property_rental_form_line,model_property_rental_form_line,base.group_user,1,1,1,1
access_property_rental_form_line,property_rental_form_line,model_property_rental_form_line,base.group_user,1,1,1,1
access_property_merge_approval,property_merge_approval,model_property_merge_approval,base.group_user,1,1,1,1
access_property_merge_approval_line,property_merge_approval_line,model_property_merge_approval_line,base.group_user,1,1,1,1
access_property_split_approval,property_split_approval,model_property_split_approval,base.group_user,1,1,1,1
access_property_split_approval_line,property_split_approval_line,model_property_split_approval_line,base.group_user,1,1,1,1
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
51 access_property_rental_conditions property_rental_conditions model_property_rental_conditions base.group_user 1 1 1 1
52 access_rental_adjustment_line rental_adjustment_line model_rental_adjustment_line base.group_user 1 1 1 1
53 access_evaluated_application_line evaluated_application_line model_evaluated_application_line base.group_user 1 1 1 1
54 access_property_rental_form_line property_rental_form_line model_property_rental_form_line base.group_user 1 1 1 1
55 access_property_merge_approval property_merge_approval model_property_merge_approval base.group_user 1 1 1 1
56 access_property_merge_approval_line property_merge_approval_line model_property_merge_approval_line base.group_user 1 1 1 1
57 access_property_split_approval property_split_approval model_property_split_approval base.group_user 1 1 1 1
58 access_property_split_approval_line property_split_approval_line model_property_split_approval_line base.group_user 1 1 1 1
@@ -173,7 +173,18 @@
name="物业移交审批"
action="property_handover_action"
sequence="7"/>
<menuitem
id="property_merge_approval_views_menu"
parent="yuthon_property.resource_management_menu"
name="物业合并审批"
action="property_merge_approval_action"
sequence="9"/>
<menuitem
id="property_split_approval_views_menu"
parent="yuthon_property.resource_management_menu"
name="物业拆分审批"
action="property_split_approval_action"
sequence="11"/>
<menuitem
id="property_open_rent_approval_menu"
parent="yuthon_property.property_approval_menu"
@@ -0,0 +1,78 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<record id="view_property_merge_approval_tree" model="ir.ui.view">
<field name="name">property.merge.approval.tree</field>
<field name="model">property.merge.approval</field>
<field name="arch" type="xml">
<tree string="合并管理">
<field name="property_name"/>
<field name="code"/>
<field name="merge_asset_type_id"/>
<field name="merge_building_area"/>
<field name="merge_rent_area"/>
</tree>
</field>
</record>
<record id="view_property_merge_approval_form" model="ir.ui.view">
<field name="name">property.merge.approval.form</field>
<field name="model">property.merge.approval</field>
<field name="arch" type="xml">
<form string="合并管理">
<sheet>
<button name="put_merge_message" type="object" string="按钮" class="oe_highlight"/>
<group string="审批事项">
<field name="name"/>
<field name="code"/>
<field name="reason"/>
<field name="is_issues" invisible="1"/>
<field name="notice_documents_ids" widget="preview_many2many"/>
</group>
<notebook>
<page string="合并信息">
<gourp/>
<group>
<field name="property_merge_approval_line_ids" string=" ">
<tree editable="bottom">
<field name="property_id"/>
<field name="units"/>
<field name="property_floor"/>
<field name="asset_type_id"/>
<field name="building_area"/>
<field name="rent_area"/>
<field name="remarks"/>
</tree>
</field>
</group>
<group col="2" string="物业信息">
<group>
<field name="property_name"/>
<field name="merge_units"/>
<field name="merge_property_floor"/>
<field name="merge_asset_type_id"/>
</group>
<group>
<field name="merge_building_area"/>
<field name="merge_rent_area"/>
<field name="merge_remarks"/>
</group>
</group>
</page>
<page string="关联议会" invisible="not is_issues">
<field name="related_issues_id"/>
</page>
</notebook>
</sheet>
</form>
</field>
</record>
<record id="property_merge_approval_action" model="ir.actions.act_window">
<field name="name">合并审批</field>
<field name="res_model">property.merge.approval</field>
<field name="view_mode">tree,form</field>
</record>
</odoo>
@@ -0,0 +1,80 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<record id="view_property_split_approval_tree" model="ir.ui.view">
<field name="name">property.split.approval.tree</field>
<field name="model">property.split.approval</field>
<field name="arch" type="xml">
<tree string="物业拆分审批">
<field name="property_id"/>
<field name="code"/>
<field name="units"/>
<field name="property_floor"/>
<field name="building_area"/>
</tree>
</field>
</record>
<record id="view_property_split_approval_form" model="ir.ui.view">
<field name="name">property.split.approval.form</field>
<field name="model">property.split.approval</field>
<field name="arch" type="xml">
<form string="物业拆分审批">
<sheet>
<header>
<button name="put_split_message" type="object" string="按钮" class="oe_highlight"/>
</header>
<group col="2" string="物业信息">
<group>
<field name="property_id"/>
<field name="units"/>
<field name="property_floor"/>
<field name="asset_type_id"/>
</group>
<group>
<field name="building_area"/>
<field name="rent_area"/>
<field name="remarks"/>
</group>
</group>
<group>
<field name="split_quantity"/>
<button name="put_free_splitting" string="自由拆分" type="object" class="btn btn-primary"/>
<button name="put_evaluation_splitting" string="评估拆分" type="object" class="btn btn-primary"/>
</group>
<group string="审批事项">
<field name="name"/>
<field name="code"/>
<field name="reason"/>
<field name="is_issues" invisible="1"/>
<field name="notice_documents_ids" widget="preview_many2many"/>
</group>
<notebook>
<page string="拆分信息">
<field name="property_split_approval_line_ids">
<tree editable="bottom">
<field name="property_split_approval_id" column_invisible="1"/>
<field name="split_property"/>
<field name="split_units"/>
<field name="split_property_floor"/>
<field name="split_asset_type_id"/>
<field name="split_building_area"/>
<field name="split_rent_area"/>
<field name="split_remarks"/>
</tree>
</field>
</page>
<page string="关联议题" invisible="not is_issues">
<field name="related_issues_id"/>
</page>
</notebook>
</sheet>
</form>
</field>
</record>
<record id="property_split_approval_action" model="ir.actions.act_window">
<field name="name">物业拆分审批</field>
<field name="res_model">property.split.approval</field>
<field name="view_mode">tree,form</field>
</record>
</odoo>