Merge pull request !372 from 李鹏宇/dev_zhou
This commit is contained in:
李鹏宇
2024-11-03 08:17:16 +00:00
committed by Gitee
45 changed files with 874 additions and 349 deletions
@@ -12,6 +12,6 @@ class TianHeFeeExpend(models.Model):
joint_name = fields.Char(string="合同名称")
project_name = fields.Char(string="项目名称")
property_listings = fields.Char(string="物业列表")
property_address = fields.Char(string="物业地址")
property_address = fields.Text(string="物业地址")
payment_type = fields.Char(string="支付类型")
expend_fee = fields.Integer(string="支出金额")
@@ -7,7 +7,7 @@ class WuguanIntertubularProtocol(models.Model):
_inherit = "approval.request"
_description = '管子间协议'
wuguan_payout_address = fields.Char(string="物业地址")
wuguan_payout_address = fields.Text(string="物业地址")
management_fee = fields.Char(string="管理费")
collection_agencies = fields.Char(string="收款公司")
total_management_fee = fields.Char(string="管理费总额")
@@ -10,7 +10,7 @@ class WuGuanLeaseContractApprovalForm(models.Model):
first_years_rent = fields.Char(string="首年租金")
industry = fields.Char(string="行业")
wuguan_payout_address = fields.Char(string="物业地址")
uses = fields.Char(string="出租用途")
uses = fields.Many2one('yuthon.rental.purpose',string="出租用途")
payment_method = fields.Char(string="缴费方式")
partner_name = fields.Char(string="联系人")
contact_number = fields.Char(string="联系电话")
+1 -1
View File
@@ -17,7 +17,7 @@ class YuthonReconcil(models.Model):
payout_name = fields.Char(string="户名")
payout_note = fields.Char(string="备注")
payout_contract = fields.Char(string="合同编号")
payout_address = fields.Char(string="物业地址")
payout_address = fields.Text(string="物业地址")
payout_contract_money = fields.Float(string="合同累计应收")
payout_contract_no_money = fields.Float(string="合同累计违约金")
voucher_type = fields.Char(string="凭证种类")
+2 -2
View File
@@ -19,12 +19,12 @@
'views/property_patrol_standard.xml',
'views/yuthon_draw_result_views.xml',
'views/yuthon_expert_database_views.xml',
'views/property_rental_form_views.xml',
'views/property_transaction_confirmed.xml',
'views/yuthon_resource_mgmt_config_views.xml',
'views/property_meter_archives_views.xml',
'views/property_meter_water_views.xml',
'views/yuthon_property_evaluated_views.xml',
'views/property_tenant_information_views.xml',
'views/property_intention_information.xml',
'views/property_prospective_customers.xml',
'views/yuthon_property_lessee_views.xml',
'views/menuitem.xml',
+2 -2
View File
@@ -8,11 +8,11 @@ from . import yuthon_resource_mgmt_config
from . import yuthon_draw_result
from . import yuthon_expert_database
from . import yuthon_property_evaluation
from . import property_rental_form
from . import property_transaction_confirmed
from . import property_meter_archives
from . import property_meter_water
from . import yuthon_property_evaluated
from . import property_prospective_customers
from . import yuthon_property_lessee
from . import property_assess
from . import property_tenant_information
from . import property_intention_information
@@ -10,3 +10,6 @@ class PropertyAssess(models.Model):
class PropertyAssessLine(models.Model):
_name = 'property.assess.line'
class PropertyType(models.Model):
_name = 'property.type'
@@ -0,0 +1,11 @@
from odoo import models, fields, api
class PropertyIntentionInformation(models.Model):
_name = 'property.intention.information'
_description = '意向客户列表'
name = fields.Char(string='姓名')
sincerity_gold = fields.Float(string='诚意金')
card_id = fields.Many2one('documents.document', string="身份证")
license_id = fields.Many2one('documents.document',string='营业执照')
@@ -1,22 +0,0 @@
from odoo import models, fields, api
class PropertyRentalForm(models.Model):
_name = 'property.rental.form'
_description = '出租申报表'
name = fields.Char(string='名称')
property_address = fields.Char(string='物业地址')
registered_use = fields.Char(string='证载用途')
evaluation_area = fields.Float(string='出租面积(m²)')
current_status = fields.Date(string='租聘到期日')
owner = fields.Char(string='原租户')
now_rent_price = fields.Float(string='现租价(元/m² •月)')
evaluate_rent_price = fields.Float(string='评估租(元/m² •月)')
upset_square = fields.Float(string='底价(元/m² •月)')
upset = fields.Float(string='底价(元/月)')
lease_period = fields.Char(string='租凭年限')
increment_rate = fields.Float(string='递增率')
rental_use = fields.Char(string='出租用途')
other = fields.Char(string='其他')
remarks = fields.Text(string='备注')
@@ -0,0 +1,18 @@
from odoo import models, fields, api
class PropertyTenantInformation(models.Model):
_name = 'property.tenant.information'
_description = '承租方信息'
name = fields.Char(string='姓名')
guarantor = fields.Char(string='担保人')
contact = fields.Char(string='联系人')
phone = fields.Char(string='联系电话')
email = fields.Char(string='电子邮箱')
address = fields.Text(string='送达地址')
invoicing_type = fields.Selection([('spot', '专票'), ('cape', '普票')], string="开票类型")
rental_purposes = fields.Many2one('yuthon.rental.purpose', string="出租用途")
invoicing_begins = fields.Char(string="开票抬头")
tax_number = fields.Char(string="税号")
industry = fields.Char(string="行业")
+83 -27
View File
@@ -1,6 +1,7 @@
from odoo import models, fields, api
from odoo.exceptions import UserError, ValidationError
class YuthonProperty(models.Model):
_name = 'yuthon.property'
_description = '物业管理'
@@ -11,7 +12,7 @@ class YuthonProperty(models.Model):
premises = fields.Char(string="楼盘")
units = fields.Char(string="单元")
house_type_id = fields.Many2one('yuthon.resource.house.type', string="户型")
property_room = fields.Char(string="区")
property_room = fields.Text(string="区")
building_area = fields.Float(string="建筑面积")
actual_area = fields.Float(string="实际面积")
management_area = fields.Float(string="管理面积")
@@ -22,6 +23,7 @@ class YuthonProperty(models.Model):
remark = fields.Char(string="备注")
vr_link = fields.Char(string="VR链接")
notice_documents_ids = fields.Many2many('ir.attachment', string='议题附件')
current_rent = fields.Float(string="现租金")
abbreviation = fields.Char(string="简称")
property_floor = fields.Integer(string="楼层")
@@ -32,17 +34,18 @@ class YuthonProperty(models.Model):
pooled_area = fields.Float(string="公摊面积")
rentable_area = fields.Float(string="可租面积")
state = fields.Selection([('to', '待评估'), ('done', '已评估'), ('ing', '评估中'),
('ing_handover', '移交中') ,('done_handover', '已移交'),
('filing', '评估备案'), ('net', '挂网'), ('signing', '签约中'),
('leased', '已出租'),('idle', '闲置')],string='状态', default='to')
('ing_handover', '移交中'), ('done_handover', '已移交'),
('filing', '备案中'), ('net', '挂网'), ('signing', '签约中'),
('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','天河投建')], string="所属公司")
company_page = fields.Selection([('tz', '天河投资'), ('wg', '天河物管'), ('lc', '天河粮储'), ('tj', '天河投建')],
string="所属公司")
admin_id = fields.Many2one('res.users', string="管理员")
purpose_id = fields.Many2one('yuthon.resource.purpose', string="资产用途")
mgmt_type_id = fields.Many2one('yuthon.resource.management.type', string="管理类型")
is_confirm_authorization = fields.Boolean(string="是否确权")
owner_id = fields.Many2one('res.users', string="权属人")
owner_id = fields.Many2one('yuthon.owner.message', string="权属人")
property_card = fields.Html(string="产权证")
life_timer = fields.Datetime(string="使用时间")
property_use_time = fields.Selection([('a', '70年'), ('b', '40年')], string="使用年限")
@@ -56,7 +59,7 @@ class YuthonProperty(models.Model):
code = fields.Char(string="编号",
default=lambda self: self.env['ir.sequence'].next_by_code('property_message_code'))
rental_unit_price = fields.Float(string="评估单价")
address = fields.Char(string="物业地址")
address = fields.Text(string="物业地址")
title_number = fields.Char(string="产权编号")
suite_area = fields.Float(string="套内面积")
start_time = fields.Date(string="生效时间")
@@ -71,15 +74,18 @@ class YuthonProperty(models.Model):
water_meter_ids = fields.One2many('yuthon.property.water', 'yuthon_property_id', string='水表列表')
energy_meter_ids = fields.One2many('yuthon.property.energy', 'yuthon_property_id', string='电表列表')
title_information_ids = fields.One2many('title.information.line', 'yuthon_property_id', string='关联产权信息明细行')
manage_information_ids = fields.One2many('manage.information.line', 'yuthon_property_id', string='关联管理信息明细行')
disassembly_information_ids = fields.One2many('disassembly.information.line', 'yuthon_property_id', string='关联拆合信息明细行')
manage_information_ids = fields.One2many('manage.information.line', 'yuthon_property_id',
string='关联管理信息明细行')
disassembly_information_ids = fields.One2many('disassembly.information.line', 'yuthon_property_id',
string='关联拆合信息明细行')
@api.onchange('building_area')
def _onchange_building_area(self):
for rec in self:
rec.management_area = rec.building_area
rec.rentable_area = rec.building_area
#待评估物业相关信息
# 待评估物业相关信息
unit_price = fields.Float(string='单价')
current_status = fields.Date(string='现状(合同到期日)')
registered_use = fields.Char(string='证载用途')
@@ -96,18 +102,53 @@ class YuthonProperty(models.Model):
evaluation_whole_rent_price = fields.Float(string='评估整租单价(元/m² •月)')
evaluation_whole_rent_total = fields.Float(string='评估总价(元•月,整租)')
assessment_category = fields.Char(string='评估类别')
property_message_id = fields.Many2one('property.evaluate.application', string='关联物业评估申请')
# yuthon_property_evaluated_id = fields.Many2one('yuthon.property.evaluated', string='关联评估备案表')
def put_change_title(self):
pass
def put_change_manage(self):
pass
def put_declare_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_rental_form_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.rental.form',
'type': 'ir.actions.act_window',
'views': [(form_id, 'form')],
"context": {
'default_property_rental_form_line_ids': property_list,
}
}
def put_offline_approval(self):
form_id = self.env.ref('yuthon_property_approval.view_property_offline_registration_form').id
return {
'name': '提交下线出租',
'view_mode': 'form',
'res_model': 'property.offline.registration',
'type': 'ir.actions.act_window',
'views': [(form_id, 'form')],
"context": {
'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 {
'name': '出租价格调整申请',
'view_mode': 'form',
'res_model': 'property.rental.conditions',
'type': 'ir.actions.act_window',
'views': [(form_id, 'form')],
"context": {
'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')))
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_handover_form').id
property_list = []
for record in property_ids:
@@ -121,9 +162,10 @@ class YuthonProperty(models.Model):
'type': 'ir.actions.act_window',
'views': [(form_id, 'form')],
"context": {
'default_property_handover_ids':property_list
'default_property_handover_ids': property_list
}
}
def put_assessment_approval(self):
property_ids = self.env["yuthon.property"].browse(
self._context.get('active_ids', self._context.get('active_id')))
@@ -135,10 +177,23 @@ class YuthonProperty(models.Model):
if i.state != 'to':
raise UserError("当前状态不允许提交")
form_id = self.env.ref('yuthon_property_approval.property_evaluate_application_form').id
property_list = []
if not property_ids:
property_ids = self
for i in property_ids:
i.write({'state': 'ing'})
for record in property_ids:
property_list.append([0, 0, {'name': record.name,
'evaluation_area': record.evaluation_area,
'registered_use':record.registered_use,
'owner_id': record.owner_id.id,
'purpose_id': record.purpose_id.id,
'current_status': record.current_status,
'last_hand_rent_price': record.unit_price,
'rental_conditions': record.rental_conditions,
'state':record.state,
'remarks': record.remarks}])
return {
'name': '提交物业评估',
'view_mode': 'form',
@@ -146,11 +201,10 @@ class YuthonProperty(models.Model):
'type': 'ir.actions.act_window',
'views': [(form_id, 'form')],
"context": {
'default_yuthon_property_ids': [(6, 0, property_ids.ids)]
'default_evaluate_application_ids': property_list
}
}
class YuthonPropertyWater(models.Model):
_name = 'yuthon.property.water'
_description = '水表'
@@ -170,6 +224,7 @@ class YuthonPropertyWater(models.Model):
for rec in self:
rec.property_meter_water_id.write({'yuthon_property_id': rec.property_meter_water_id.id})
class YuthonPropertyEnergy(models.Model):
_name = 'yuthon.property.energy'
_description = '电表'
@@ -190,7 +245,6 @@ class YuthonPropertyEnergy(models.Model):
rec.property_meter_archives_id.write({'yuthon_property_id': rec.property_meter_archives_id.id})
class TitleInformationLine(models.Model):
_name = 'title.information.line'
_description = '产权信息明细行'
@@ -201,11 +255,12 @@ class TitleInformationLine(models.Model):
management_area = fields.Float(string="管理面积")
building_area = fields.Float(string="建筑面积")
rent_area = fields.Float(string="可租面积")
owner = fields.Char(string="权属人")
owner = fields.Many2one('yuthon.owner.message',string="权属人")
title_certificate = fields.Char(string="产权证号")
start_time = fields.Date(string="生效日期")
end_date = fields.Date(string="失效日期")
class ManageInformationLine(models.Model):
_name = 'manage.information.line'
_description = '管理信息明细行'
@@ -219,12 +274,13 @@ class ManageInformationLine(models.Model):
start_time = fields.Date(string="生效日期")
end_date = fields.Date(string="失效日期")
class DisassemblyInformationLine(models.Model):
_name = 'disassembly.information.line'
_description = '拆合信息明细行'
yuthon_property_id = fields.Many2one('yuthon.property', string="关联物业信息")
property_name = fields.Char(string="物业名称") #逻辑没搞清,暂时先放这里
property_name = fields.Char(string="物业名称") # 逻辑没搞清,暂时先放这里
rent_area = fields.Float(string="可租面积")
start_time = fields.Date(string="生效日期")
end_date = fields.Date(string="失效日期")
end_date = fields.Date(string="失效日期")
@@ -1,15 +0,0 @@
from odoo import models, fields, api
class YuthonPropertyEvaluated(models.Model):
_name = 'yuthon.property.evaluated'
_description = '评估项目备案表(已评估)'
name = fields.Char(string='标题')
other_company_id = fields.Many2one('res.company', string="评估单位")
evaluation_code = fields.Char(string="评估编号")
evaluation_way = fields.Char(string='评估方法')
base_date = fields.Date(string="基准日")
expert_review_time = fields.Date(string="专家评审时间")
notice_documents_ids = fields.Many2many('ir.attachment', string='议题附件')
# yuthon_property_evaluation_ids = fields.One2many('yuthon.', 'yuthon_property_evaluated_id', string='物业信息明细行')
@@ -18,7 +18,7 @@ class YuthonResourceHouseType(models.Model):
class YuthonResourcePurpose(models.Model):
_name = 'yuthon.resource.purpose'
_description = '用途'
_description = '资产用途'
name = fields.Char(string="用途")
@@ -43,3 +43,15 @@ class YuthonPropertySource(models.Model):
name = fields.Char(string="资产来源")
class YuthonOwnerMessage(models.Model):
_name = 'yuthon.owner.message'
_description = '权属人'
name = fields.Char(string="名称")
class YuthonRentalPurposes(models.Model):
_name = 'yuthon.rental.purpose'
_description = '出租用途'
name = fields.Char(string="出租用途")
+5 -3
View File
@@ -14,14 +14,16 @@ access_yuthon_resource_house_type,yuthon_resource_house_type,model_yuthon_resour
access_yuthon_resource_purpose,yuthon_resource_purpose,model_yuthon_resource_purpose,base.group_user,1,1,1,1
access_yuthon_resource_management_type,yuthon_resource_management_type,model_yuthon_resource_management_type,base.group_user,1,1,1,1
access_yuthon_resource_billing_type,yuthon_resource_billing_type,model_yuthon_resource_billing_type,base.group_user,1,1,1,1
access_property_rental_form,property_rental_form,model_property_rental_form,base.group_user,1,1,1,1
access_property_transaction_confirmed,property_transaction_confirmed,model_property_transaction_confirmed,base.group_user,1,1,1,1
access_property_meter_archives,property_meter_archives,model_property_meter_archives,base.group_user,1,1,1,1
access_property_meter_water,property_meter_water,model_property_meter_water,base.group_user,1,1,1,1
access_yuthon_property_evaluated,yuthon_property_evaluated,model_yuthon_property_evaluated,base.group_user,1,1,1,1
access_yuthon_property_lessee,yuthon_property_lessee,model_yuthon_property_lessee,base.group_user,1,1,1,1
access_property_prospective_customers,property_prospective_customers,model_property_prospective_customers,base.group_user,1,1,1,1
access_title_information_line,title_information_line,model_title_information_line,base.group_user,1,1,1,1
access_manage_information_line,manage_information_line,model_manage_information_line,base.group_user,1,1,1,1
access_disassembly_information_line,disassembly_information_line,model_disassembly_information_line,base.group_user,1,1,1,1
access_yuthon_property_source,yuthon_property_source,model_yuthon_property_source,base.group_user,1,1,1,1
access_yuthon_property_source,yuthon_property_source,model_yuthon_property_source,base.group_user,1,1,1,1
access_yuthon_owner_message,yuthon_owner_message,model_yuthon_owner_message,base.group_user,1,1,1,1
access_yuthon_rental_purpose,yuthon_rental_purpose,model_yuthon_rental_purpose,base.group_user,1,1,1,1
access_property_tenant_information,property_tenant_information,model_property_tenant_information,base.group_user,1,1,1,1
access_property_intention_information,property_intention_information,model_property_intention_information,base.group_user,1,1,1,1
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
14 access_yuthon_resource_purpose yuthon_resource_purpose model_yuthon_resource_purpose base.group_user 1 1 1 1
15 access_yuthon_resource_management_type yuthon_resource_management_type model_yuthon_resource_management_type base.group_user 1 1 1 1
16 access_yuthon_resource_billing_type yuthon_resource_billing_type model_yuthon_resource_billing_type base.group_user 1 1 1 1
access_property_rental_form property_rental_form model_property_rental_form base.group_user 1 1 1 1
17 access_property_transaction_confirmed property_transaction_confirmed model_property_transaction_confirmed base.group_user 1 1 1 1
18 access_property_meter_archives property_meter_archives model_property_meter_archives base.group_user 1 1 1 1
19 access_property_meter_water property_meter_water model_property_meter_water base.group_user 1 1 1 1
access_yuthon_property_evaluated yuthon_property_evaluated model_yuthon_property_evaluated base.group_user 1 1 1 1
20 access_yuthon_property_lessee yuthon_property_lessee model_yuthon_property_lessee base.group_user 1 1 1 1
21 access_property_prospective_customers property_prospective_customers model_property_prospective_customers base.group_user 1 1 1 1
22 access_title_information_line title_information_line model_title_information_line base.group_user 1 1 1 1
23 access_manage_information_line manage_information_line model_manage_information_line base.group_user 1 1 1 1
24 access_disassembly_information_line disassembly_information_line model_disassembly_information_line base.group_user 1 1 1 1
25 access_yuthon_property_source yuthon_property_source model_yuthon_property_source base.group_user 1 1 1 1
26 access_yuthon_owner_message yuthon_owner_message model_yuthon_owner_message base.group_user 1 1 1 1
27 access_yuthon_rental_purpose yuthon_rental_purpose model_yuthon_rental_purpose base.group_user 1 1 1 1
28 access_property_tenant_information property_tenant_information model_property_tenant_information base.group_user 1 1 1 1
29 access_property_intention_information property_intention_information model_property_intention_information base.group_user 1 1 1 1
+26 -14
View File
@@ -22,15 +22,17 @@
name="待评估"
parent="yuthon_property_menu"
action="yuthon_on_property_action"/>
<menuitem id="yuthon_property_evaluated_menu"
sequence="5"
name="已评估"
parent="yuthon_property_menu"
action="action_yuthon_property_evaluated"/>
action="yuthon_property_action3"/>
<menuitem id="yuthon_property_evaluation_experts_menu"
sequence="20"
name="评估专家库(二期)"
parent="yuthon_property_menu"/>
<menuitem id="yuthon_property_evaluation_list_menu"
sequence="1"
name="专家列表"
@@ -52,18 +54,6 @@
name="招租"
parent="yuthon_property_menu_root"/>
<menuitem id="yuthon_property_rental_form"
sequence="1"
name="出租申报表"
parent="yuthon_property_menu_data"
action="action_property_rental_form"/>
<!-- <menuitem id="yuthon_property_eligibility_form"-->
<!-- sequence="3"-->
<!-- name="承租资格申报表"-->
<!-- parent="yuthon_property_menu_data"-->
<!-- action="yuthon_property_approval.property_eligibility_action"/>-->
<menuitem id="yuthon_property_confirmation_of_transaction_menu"
sequence="5"
name="成交确认书"
@@ -280,10 +270,14 @@
<menuitem id="yuthon_resource_type_menu" parent="resource_mgmt_config_menu" name="资产类型"
action="yuthon_resource_type_action" sequence="10"/>
<menuitem id="yuthon_owner_message_menu" parent="resource_mgmt_config_menu" name="权属人配置"
action="yuthon_owner_message_action" sequence="12"/>
<menuitem id="yuthon_resource_house_type_menu" parent="resource_mgmt_config_menu" name="户型"
action="yuthon_resource_house_type_action" sequence="20"/>
<menuitem id="yuthon_resource_purpose_menu" parent="resource_mgmt_config_menu" name="用途"
<menuitem id="yuthon_resource_purpose_menu" parent="resource_mgmt_config_menu" name="资源用途配置"
action="yuthon_resource_purpose_action" sequence="30"/>
<menuitem id="yuthon_rental_purpose_menu" parent="resource_mgmt_config_menu" name="出租用途配置"
action="yuthon_rental_purpose_action" sequence="32"/>
<menuitem id="yuthon_resource_management_type_menu" parent="resource_mgmt_config_menu" name="管理类型"
action="yuthon_resource_management_type_action" sequence="10"/>
<menuitem id="yuthon_resource_mgmt_config_menu" parent="resource_mgmt_config_menu" name="开票类型"
@@ -291,6 +285,7 @@
<menuitem id="yuthon_property_source_action_menu" parent="resource_mgmt_config_menu" name="物业来源配置"
action="yuthon_property_source_action" sequence="12"/>
<menuitem
id="property_approval_management_menu"
parent="resource_management_menu"
@@ -298,6 +293,23 @@
sequence="1"
action="yuthon_property_action"/>
<menuitem
id="property_customer_information_menu"
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="3"/>
<menuitem
id="property_approval_menu"
parent="yuthon_property_menu_root"
@@ -0,0 +1,43 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<record id="view_property_intention_information_tree" model="ir.ui.view">
<field name="name">property.intention.information.tree</field>
<field name="model">property.intention.information</field>
<field name="arch" type="xml">
<tree string="意向客户信息">
<field name="name"/>
<field name="sincerity_gold"/>
</tree>
</field>
</record>
<record id="view_property_intention_information_form" model="ir.ui.view">
<field name="name">property.intention.information.form</field>
<field name="model">property.intention.information</field>
<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="sincerity_gold"/>
<field name="card_id"/>
</group>
<group>
<field name="license_id"/>
</group>
</group>
</sheet>
</form>
</field>
</record>
<record id="property_intention_information_action" model="ir.actions.act_window">
<field name="name">意向客户信息</field>
<field name="res_model">property.intention.information</field>
<field name="view_mode">tree,form</field>
</record>
</odoo>
@@ -1,76 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<record id= "view_property_rental_form_tree" model="ir.ui.view">
<field name="name">property.rental.form.tree</field>
<field name="model">property.rental.form</field>
<field name="arch" type="xml">
<tree string="出租申报表">
<field name="name"/>
<field name="property_address"/>
<field name="registered_use"/>
<field name="evaluation_area"/>
<field name="current_status"/>
<field name="owner"/>
<field name="now_rent_price"/>
<field name="evaluate_rent_price"/>
<field name="upset_square"/>
<field name="upset"/>
<field name="lease_period"/>
<field name="increment_rate"/>
<field name="rental_use"/>
</tree>
</field>
</record>
<record id="view_property_rental_form_form" model="ir.ui.view">
<field name="name">property.rental.form.form</field>
<field name="model">property.rental.form</field>
<field name="arch" type="xml">
<form string="出租申报表">
<sheet>
<div class="col-12 text-center">
<h1>
<field name="name"/>
</h1>
</div>
<group string="物业信息" col="3">
<group>
<field name="property_address"/>
<field name="current_status"/>
<field name="evaluate_rent_price"/>
</group>
<group>
<field name="registered_use"/>
<field name="owner"/>
</group>
<group>
<field name="evaluation_area"/>
<field name="now_rent_price"/>
</group>
</group>
<group string="出租条件" col="3">
<group>
<field name="upset"/>
<field name="rental_use"/>
</group>
<group>
<field name="lease_period"/>
<field name="other"/>
</group>
<group>
<field name="increment_rate"/>
</group>
</group>
<group string="备注">
<field name="remarks" string=" "/>
</group>
</sheet>
</form>
</field>
</record>
<!-- action -->
<record id="action_property_rental_form" model="ir.actions.act_window">
<field name="name">出租申请表</field>
<field name="res_model">property.rental.form</field>
<field name="view_mode">tree,form</field>
</record>
</odoo>
@@ -0,0 +1,52 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<record id="view_property_tenant_information_tree" model="ir.ui.view">
<field name="name">property.tenant.information.tree</field>
<field name="model">property.tenant.information</field>
<field name="arch" type="xml">
<tree string="承租方列表">
<field name="name"/>
<field name="phone"/>
<field name="email"/>
<field name="address"/>
</tree>
</field>
</record>
<record id="view_property_tenant_information_form" model="ir.ui.view">
<field name="name">property.tenant.information.form</field>
<field name="model">property.tenant.information</field>
<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="guarantor"/>
<field name="contact"/>
<field name="phone"/>
<field name="email"/>
<field name="industry"/>
</group>
<group>
<field name="address"/>
<field name="invoicing_type"/>
<field name="rental_purposes"/>
<field name="invoicing_begins"/>
<field name="tax_number"/>
</group>
</group>
</sheet>
</form>
</field>
</record>
<record id="property_tenant_information_action" model="ir.actions.act_window">
<field name="name">承租方信息</field>
<field name="res_model">property.tenant.information</field>
<field name="view_mode">tree,form</field>
</record>
</odoo>
@@ -1,80 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<record id='view_yuthon_property_evaluated_tree' model='ir.ui.view'>
<field name="name">yuthon.property.evaluated.tree</field>
<field name="model">yuthon.property.evaluated</field>
<field name="arch" type="xml">
<tree string="评估备案表">
<field name="name"/>
<field name="other_company_id"/>
<field name="base_date"/>
<field name="evaluation_code"/>
<field name="evaluation_way"/>
<field name="expert_review_time"/>
</tree>
</field>
</record>
<record id='view_yuthon_property_evaluated_form' model='ir.ui.view'>
<field name="name">yuthon.property.evaluated.form</field>
<field name="model">yuthon.property.evaluated</field>
<field name="arch" type="xml">
<form string="评估备案表">
<sheet>
<div class="oe_title">
<label for="name"/>
<h1>
<field name="name"/>
</h1>
</div>
<group col="3">
<group>
<field name="other_company_id"/>
<field name="base_date"/>
</group>
<group>
<field name="evaluation_code"/>
<field name="expert_review_time"/>
</group>
<group>
<field name="evaluation_way"/>
</group>
</group>
<group>
<field name="notice_documents_ids" widget="preview_many2many"/>
</group>
<!-- <notebook>-->
<!-- <page string="评估项目详情">-->
<!-- <field name="yuthon_property_evaluation_ids">-->
<!-- <tree editable="bottom">-->
<!-- <field name="yuthon_property_evaluated_id" column_invisible="1"/>-->
<!-- <field name="property_address" string="评估资产"/>-->
<!-- <field name="rentable_area" string="评估面积m²"/>-->
<!-- <field name="assessment_category" string="评估类别"/>-->
<!-- <field name="owner"/>-->
<!-- <field name="registered_use"/>-->
<!-- <field name="rental_use" string="设定用途"/>-->
<!-- <field name="current_status"/>-->
<!-- <field name="unit_price" string="上一手历史租金单价" help="(元/m².月)"/>-->
<!-- <field name="rental_conditions" string="出租条件"/>-->
<!-- <field name="remarks" string="备注"/>-->
<!-- <field name="gov_rent_price" column_invisible="1"/>-->
<!-- <field name="evaluation_rent_price" column_invisible="1"/>-->
<!-- <field name="evaluation_rent_total" column_invisible="1"/>-->
<!-- <field name="evaluation_whole_rent_price" column_invisible="1"/>-->
<!-- <field name="evaluation_whole_rent_total" column_invisible="1"/>-->
<!-- </tree>-->
<!-- </field>-->
<!-- </page>-->
<!-- </notebook>-->
</sheet>
</form>
</field>
</record>
<record id="action_yuthon_property_evaluated" model="ir.actions.act_window">
<field name="name">评估项目备案表</field>
<field name="res_model">yuthon.property.evaluated</field>
<field name="view_mode">tree,form</field>
</record>
</odoo>
@@ -6,13 +6,17 @@
<field name="arch" type="xml">
<tree string="物业管理">
<header>
<button name="put_property_handover" string="提交物业移交审批" type="object"/>
<button name="put_property_handover" string="物业移交" type="object"/>
<button name="put_declare_approval" type="object" string="提交出租申报"/>
</header>
<field name="name" required="1"/>
<field name="owner_id"/>
<field name="address"/>
<field name="state"/>
<field name="start_time"/>
<field name="end_date"/>
<button name="put_offline_approval" type="object" string="提交线下审批" class="btn btn-primary"/>
<button name="put_adjustment_approval" type="object" string="调整出租条件" class="btn btn-primary"/>
</tree>
</field>
</record>
@@ -42,6 +46,7 @@
<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"/>
@@ -69,6 +74,7 @@
<field name="asset_type_id"/>
<field name="is_hvac"/>
<field name="is_handle_land"/>
<field name="current_rent"/>
</group>
</group>
<group col="2">
@@ -293,4 +299,14 @@
(0, 0, {'view_mode': 'tree', 'view_id': ref('yuthon_property.yuthon_property_view_tree2')}),
(0, 0, {'view_mode': 'form', 'view_id': ref('yuthon_property.yuthon_property_view_form2')})]"/>
</record>
<!--已评估物业-->
<record id="yuthon_property_action3" 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="domain">[('state','=','done')]</field>
<field name="view_ids" eval="[(5, 0, 0),
(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>
</odoo>
@@ -41,7 +41,7 @@
</field>
</record>
<record id="yuthon_resource_purpose_action" model="ir.actions.act_window">
<field name="name">用途</field>
<field name="name">资产用途</field>
<field name="res_model">yuthon.resource.purpose</field>
<field name="view_mode">tree</field>
</record>
@@ -90,5 +90,32 @@
<field name="res_model">yuthon.property.source</field>
<field name="view_mode">tree</field>
</record>
<record id="view_yuthon_owner_message_tree" model="ir.ui.view">
<field name="name">yuthon.owner.message.tree</field>
<field name="model">yuthon.owner.message</field>
<field name="arch" type="xml">
<tree editable="bottom">
<field name="name"/>
</tree>
</field>
</record>
<record id="yuthon_owner_message_action" model="ir.actions.act_window">
<field name="name">权属人配置</field>
<field name="res_model">yuthon.owner.message</field>
<field name="view_mode">tree</field>
</record>
<record id="view_yuthon_rental_purpose_tree" model="ir.ui.view">
<field name="name">yuthon.rental.purpose.tree</field>
<field name="model">yuthon.rental.purpose</field>
<field name="arch" type="xml">
<tree editable="bottom">
<field name="name"/>
</tree>
</field>
</record>
<record id="yuthon_rental_purpose_action" model="ir.actions.act_window">
<field name="name">出租用途配置</field>
<field name="res_model">yuthon.rental.purpose</field>
<field name="view_mode">tree</field>
</record>
</odoo>
+3
View File
@@ -28,6 +28,9 @@
'views/property_management_fee.xml',
'views/property_material_procurement.xml',
'views/property_penalty_proportion.xml',
'views/property_offline_registration.xml',
'views/property_rental_form_views.xml',
'views/property_rental_conditions.xml',
'views/property_rent_relief.xml',
'views/property_penalty_relief.xml',
'views/property_report_repair.xml',
@@ -213,7 +213,22 @@
<record id="property_renamed_sequence" model="ir.sequence">
<field name="name">更名编号</field>
<field name="code">property_renamed_code</field>
<field name="prefix">%(y)s%(month)s%(day)s</field>
<field name="prefix">GM%(y)s%(month)s%(day)s</field>
</record>
<record id="property_offline_registration_sequence" model="ir.sequence">
<field name="name">线下承租方编号</field>
<field name="code">property_offline_registration_code</field>
<field name="prefix">CZ%(y)s%(month)s%(day)s</field>
</record>
<record id="property_rental_form_sequence" model="ir.sequence">
<field name="name">出租申报编号</field>
<field name="code">property_rental_form_code</field>
<field name="prefix">CC%(y)s%(month)s%(day)s</field>
</record>
<record id="property_rental_conditions_sequence" model="ir.sequence">
<field name="name">出租调整编号</field>
<field name="code">property_rental_conditions_code</field>
<field name="prefix">CT%(y)s%(month)s%(day)s</field>
</record>
</odoo>
+4 -1
View File
@@ -30,4 +30,7 @@ from . import property_contract_changes
from . import property_construction_work
from . import property_evaluate_application
from . import property_approval
from . import property_handover
from . import property_handover
from . import property_offline_registration
from . import property_rental_form
from . import property_rental_conditions
@@ -31,7 +31,7 @@ class PropertyApprovalLine(models.Model):
_description = '新增物业审批明细行'
property_approval_id = fields.Many2one('property.approval', string="审批信息")
property_address = fields.Char(string="物业地址")
property_address = fields.Text(string="物业地址")
is_affirmation = fields.Boolean(string="是否确权")
owner = fields.Char(string="权属人")
title_number = fields.Char(string="产权编号")
@@ -11,5 +11,5 @@ class PropertyBeEvaluated(models.Model):
name = fields.Char(string='名称')
owner = fields.Char(string="权属人")
property_address = fields.Char(string="物业地址")
property_address = fields.Text(string="物业地址")
@@ -15,15 +15,54 @@ class PropertyEvaluateApplication(models.Model):
is_experts = fields.Boolean(string="是否需要专家评审")
notice_documents_ids = fields.Many2many('ir.attachment', string='议题附件')
issue_library_id = fields.Many2one('issue.library', string='关联议题')
yuthon_property_ids = fields.One2many('yuthon.property', 'property_message_id', string='物业信息明细行')
evaluate_application_ids = fields.One2many('evaluate.application.line', 'property_message_id', string='物业信息明细行')
# def put(self):
# done_ids = self.env["property.evaluate.application"].browse(self._context.get('active_ids', self._context.get('active_id')))
# form_id = self.env.ref('yuthon_property_approval.view_property_handover_form').id
# return {
# 'name': '已评估',
# 'type': 'ir.actions.act_window',
# 'res_model': 'property.evaluate.application',
# 'view_mode': 'form',
# 'views': [(form_id, 'form')],
def put_property_record(self):
form_id = self.env.ref('yuthon_property_approval.views_property_record_form').id
property_list = []
for record in self.evaluate_application_ids:
property_list.append([0, 0, {'name': record.name,
'owner_id': record.owner_id.id,
'assessment_category':record.assessment_category,
'evaluation_area': record.evaluation_area,
'registered_use': record.registered_use,
'current_status': record.current_status,
'last_hand_rent_price': record.last_hand_rent_price,
'rental_conditions': record.rental_conditions,
'remarks': record.remarks,}])
return {
'name': '提交物业备案审批',
'view_mode': 'form',
'res_model': 'property.record',
'type': 'ir.actions.act_window',
'views': [(form_id, 'form')],
"context": {
'default_evaluate_application_ids':property_list
}
}
class EvaluateApplicationLine(models.Model):
_name = 'evaluate.application.line'
_description = '物业信息明细行'
property_message_id = fields.Many2one('property.evaluate.application', string='关联评估申请')
name = fields.Char(string='评估资产')
owner_id = fields.Many2one('yuthon.owner.message', string="权属人")
assessment_category = fields.Selection([('rent_money', '租金'), ('value', '价值')], string="评估类别")
registered_use = fields.Char(string='证载用途')
purpose_id = fields.Many2one('yuthon.resource.purpose', string="资产用途")
rental_conditions = fields.Text(string='出租条件')
current_status = fields.Date(string='现状(合同到期日)')
evaluation_area = fields.Float(string='评估面积(m²)')
remarks = fields.Text(string='备注')
last_hand_rent_price = fields.Float(string='上一手历史租金单价(元/m²•月)')
gov_rent_price = fields.Float(string='政府租金参考价')
evaluation_rent_price = fields.Float(string='评估散租单价(元/m²•月)')
evaluation_rent_total = fields.Float(string='评估总价(元•月,散租)')
evaluation_whole_rent_price = fields.Float(string='评估整租单价(元/m² •月)')
evaluation_whole_rent_total = fields.Float(string='评估总价(元•月,整租)')
state = fields.Selection([('to', '待评估'), ('done', '已评估'), ('ing', '评估中'),
('ing_handover', '移交中'), ('done_handover', '已移交'),
('filing', '备案中'), ('net', '挂网'), ('signing', '签约中'),
('signed', '已备案'), ('leased', '已出租'), ('idle', '闲置')], string='状态',
default='to')
@@ -13,7 +13,7 @@ class PropertyFitment(models.Model):
name = fields.Char(string='标题')
code = fields.Char(string="编号",
default=lambda self: self.env['ir.sequence'].next_by_code('property_fitment_code'))
address = fields.Char(string="物业地址")
address = fields.Text(string="物业地址")
lessee = fields.Char(string="承租方")
contact = fields.Char(string="联系人")
phone = fields.Char(string="联系电话")
@@ -20,11 +20,10 @@ class PropertyHandoverLine(models.Model):
property_handover_id = fields.Many2one('property.handover', string="审批信息")
property_id = fields.Many2one('yuthon.property', string="关联物业信息")
property_address = fields.Char(related='property_id.property_room',string="物业地址")
property_address = fields.Text(related='property_id.property_room',string="物业地址")
is_affirmation = fields.Boolean(related='property_id.is_confirm_authorization',string="是否确权")
owner = fields.Many2one(related='property_id.owner_id',string="权属人")
title_number = fields.Char(string="产权编号")
area = fields.Float(related='property_id.actual_area',string="面积")
purposes = fields.Many2one(related='property_id.asset_type_id',string="用途")
state = fields.Selection(related='property_id.state', string="状态",
default="rented")
state = fields.Selection(related='property_id.state', string="状态",)
@@ -21,7 +21,7 @@ class PropertyInformation(models.Model):
company_id = fields.Many2one('res.company', string="所属公司")
admin_id = fields.Many2one('res.users', string="管理员")
precinct = fields.Char(string="片区")
address = fields.Char(string="物业地址")
address = fields.Text(string="物业地址")
management_type = fields.Char(string="管理类型")
property_id = fields.Char(string="物业ID")
@@ -20,7 +20,7 @@ class PropertyLeaseContract(models.Model):
phone = fields.Char(string="联系电话")
email = fields.Char(string="电子邮箱")
invoicing_type = fields.Selection([('spot', '专票'), ('cape', '普票')], string="开票类型")
rental_purposes = fields.Char(string="出租用途")
rental_purposes = fields.Many2one('yuthon.rental.purpose',string="出租用途")
invoicing_begins = fields.Char(string="开票开头")
tax_number = fields.Char(string="税号")
industry = fields.Char(string="行业")
@@ -69,7 +69,7 @@ class PropertyLeaseContractLine(models.Model):
_description = '物业列表明细行'
lease_id = fields.Many2one('property.lease.contract', string="关联凭租合同审批")
property_address = fields.Char(string="物业地址")
property_address = fields.Text(string="物业地址")
property_area = fields.Float(string="面积")
evaluate_unit_price = fields.Float(string="评估单价")
@@ -0,0 +1,37 @@
from odoo import models, fields, api
class PropertyOfflineRegistration(models.Model):
_name = 'property.offline.registration'
_description = '线下意向承租方报名表'
code = fields.Char(string="编号", default=lambda self: self.env['ir.sequence'].
next_by_code('property_offline_registration_code'))
property_id = fields.Many2one('yuthon.property',string='物业名称')
address = fields.Text(related='property_id.address',string='物业地址')
area = fields.Float(related='property_id.actual_area',string='面积(m²)')
rental_price = fields.Float(string='租金底价(元/m²)')
monthly_rent = fields.Float(string='月租金(元)')
increment_rate = fields.Char(string='递增率')
rent_free = fields.Char(string='免租期')
contract_years = fields.Char(string='签约年限')
start_data = fields.Date(string="报价开始日期")
end_data = fields.Date(string="报价结束日期")
quote_message_line_ids = fields.One2many('quote.message.line', 'property_offline_registration_id', string='关联报价信息明细行')
is_issues = fields.Boolean(string='是否上会')
related_issues_id = fields.Many2one('issue.library', string="关联议题")
class QuoteMessageLine(models.Model):
_name = 'quote.message.line'
_description = '报价信息明细行'
property_offline_registration_id = fields.Many2one('property.offline.registration', string='关联线下报表表')
name = fields.Char(string='客户名称', required=True)
start_data = fields.Date(string="报价日期")
lease = fields.Char(string='租期')
quote = fields.Float(string='报价(元/m²)')
attn = fields.Char(string='经办人')
phone = fields.Char(string='联系方式')
data_review = fields.Text(string='资料审核(资料清单)')
is_conform = fields.Boolean(string='是否符合要求')
is_priority = fields.Boolean(string='是否行使优先权')
@@ -11,23 +11,39 @@ class PropertyRecord(models.Model):
_rec_name = 'name'
name = fields.Char(string='标题')
code = fields.Char(string="编号", default=lambda self: self.env['ir.sequence'].next_by_code('property_record_code'))
property_documents_ids = fields.Many2many('documents.document', string="物业备案文件")
property_record_line_ids = fields.One2many('property.record.line', 'property_record_id', string="评估文件")
class PropertyRecordLine(models.Model):
_name = 'property.record.line'
property_record_id = fields.Many2one('property.record', string='关联审批')
product_id = fields.Many2one('product.product', string="物业")
product_code = fields.Char(string="评估编号")
partner_id = fields.Many2one('res.partner', string="评估公司")
property_statu = fields.Char(string="评估状态")
property_type = fields.Selection([('rent_money', '租金'), ('value', '价值')], string="评估类别")
property_m2 = fields.Float(string="评估面积")
other_company_id = fields.Many2one('res.company', string="评估单位")
evaluation_code = fields.Char(string="评估编号")
evaluation_way = fields.Char(string='评估方法')
base_date = fields.Date(string="基准日")
expert_review_time = fields.Date(string="专家评审时间")
notice_documents_ids = fields.Many2many('ir.attachment', string='议题附件')
evaluate_application_ids = fields.One2many('evaluated.application.line', 'yuthon_property_evaluated_id',
string='关联物业信息明细行')
class EvaluatedApplicationLine(models.Model):
_name = 'evaluated.application.line'
_description = '物业信息明细行(已评估)'
yuthon_property_evaluated_id = fields.Many2one('property.record', string='关联评估备案表(已评估)')
name = fields.Char(string='评估资产')
owner_id = fields.Many2one('yuthon.owner.message', string="权属人")
assessment_category = fields.Selection([('rent_money', '租金'), ('value', '价值')], string="评估类别")
registered_use = fields.Char(string='证载用途')
purpose_id = fields.Many2one('yuthon.resource.purpose', string="资产用途")
rental_conditions = fields.Text(string='出租条件')
current_status = fields.Date(string='现状(合同到期日)')
evaluation_area = fields.Float(string='评估面积(m²)')
remarks = fields.Text(string='备注')
last_hand_rent_price = fields.Float(string='上一手历史租金单价(元/m²•月)')
gov_rent_price = fields.Float(string='政府租金参考价')
evaluation_rent_price = fields.Float(string='评估散租单价(元/m²•月)')
evaluation_rent_total = fields.Float(string='评估总价(元•月,散租)')
evaluation_whole_rent_price = fields.Float(string='评估整租单价(元/m² •月)')
evaluation_whole_rent_total = fields.Float(string='评估总价(元•月,整租)')
state = fields.Selection([('to', '待评估'), ('done', '已评估'), ('ing', '评估中'),
('ing_handover', '移交中'), ('done_handover', '已移交'),
('filing', '备案中'), ('net', '挂网'), ('signing', '签约中'),
('signed', '已备案'), ('leased', '已出租'), ('idle', '闲置')], string='状态',
default='to')
@@ -0,0 +1,46 @@
from odoo import models, fields, api
class PropertyRentalConditions(models.Model):
_name = 'property.rental.conditions'
_description = '出租调整表'
property_id = fields.Many2one('yuthon.property',string='物业名称')
address = fields.Text(related='property_id.address',string='物业地址')
code = fields.Char(string="编号", default=lambda self: self.env['ir.sequence'].
next_by_code('property_rental_conditions_code'))
registered_use = fields.Char(related='property_id.registered_use',string='证载用途')
evaluation_area = fields.Float(related='property_id.actual_area',string='出租面积(m²)')
lease_expiration_date = fields.Date(string='租赁到期日')
original_tenant = fields.Many2one(related='property_id.owner_id',string='原租户')
now_rent_price = fields.Float(related='property_id.current_rent',string='现租价(元/m² •月)')
appraisal_price = fields.Float(string='评估价(元/m² •月)')
now_rental_conditions_line_ids = fields.One2many('now.rental.conditions.line', 'property_rental_conditions_id', string='关联目前出租条件')
rental_adjustment_line_ids = fields.One2many('rental.adjustment.line', 'property_rental_conditions_id', string='关联出租调整')
is_issues = fields.Boolean(string='是否上会')
related_issues_id = fields.Many2one('issue.library', string="关联议题")
class NowRentalConditionsLine(models.Model):
_name = 'now.rental.conditions.line'
_description = '目前出租条件'
property_rental_conditions_id = fields.Many2one('property.rental.conditions', string='关联出租调整表')
rental_price = fields.Float(string='租金底价(元/m²)')
rental_price_month = fields.Float(string='租金底价(/m²)')
rental_year = fields.Char(string='租聘期限(年)')
increment_rate = fields.Char(string='每年递增率(%)')
rental_use = fields.Many2one('yuthon.rental.purpose',string='出租用途')
other = fields.Char(string='其他')
class RentalConditionsLine(models.Model):
_name = 'rental.adjustment.line'
_description = '出租条件调整'
property_rental_conditions_id = fields.Many2one('property.rental.conditions', string='关联出租调整表')
new_rental_price = fields.Float(string='租金底价(元/m²)')
new_rental_price_month = fields.Float(string='租金底价(/m²)')
new_rental_year = fields.Char(string='租聘期限(年)')
new_increment_rate = fields.Char(string='每年递增率(%)')
new_rental_use = fields.Many2one('yuthon.rental.purpose', string='出租用途')
new_other = fields.Char(string='其他')
@@ -0,0 +1,36 @@
from odoo import models, fields, api
from odoo.odoo.http import request
class PropertyRentalForm(models.Model):
_name = 'property.rental.form'
_description = '出租申报表'
_rec_name = 'name'
name = fields.Char(string="名称", required=True)
property_rental_form_line_ids = fields.One2many('property.rental.form.line', 'property_rental_form_id', string="关联出租申报表明细行")
is_issues = fields.Boolean(string='是否上会')
related_issues_id = fields.Many2one('issue.library', string="关联议题")
code = fields.Char(string="编号",
default=lambda self: self.env['ir.sequence'].next_by_code('property_rental_form_code'))
class PropertyRentalFormLine(models.Model):
_name = 'property.rental.form.line'
_description = '出租申报表明细行'
property_rental_form_id = fields.Many2one('property.rental.form', string="关联出租申报表")
property_id = fields.Many2one('yuthon.property',string='物业名称',required=True)
property_address = fields.Text(related='property_id.address',string='物业地址')
registered_use = fields.Char(related='property_id.registered_use',string='证载用途')
evaluation_area = fields.Float(related='property_id.evaluation_area',string='出租面积(m²)')
current_status = fields.Date(related='property_id.current_status',string='租聘到期日')
owner_id = fields.Many2one(related='property_id.owner_id',string='原租户')
now_rent_price = fields.Float(related='property_id.rental_unit_price',string='现租价(元/m² •月)')
evaluate_rent_price = fields.Float(string='评估租(元/m² •月)')
upset_square = fields.Float(string='底价(元/m² •月)')
upset = fields.Float(string='底价(元/月)')
lease_period = fields.Char(string='租凭年限')
increment_rate = fields.Float(string='递增率')
rental_use = fields.Many2one('yuthon.rental.purpose',string='出租用途')
other = fields.Char(string='其他')
remarks = fields.Text(string='备注')
@@ -42,4 +42,13 @@ access_property_approval,property_approval,model_property_approval,base.group_us
access_property_approval_line,property_approval_line,model_property_approval_line,base.group_user,1,1,1,1
access_property_handover,property_handover,model_property_handover,base.group_user,1,1,1,1
access_property_handover_line,property_handover_line,model_property_handover_line,base.group_user,1,1,1,1
access_property_inducts_wizard,property_inducts_wizard,model_property_inducts_wizard,base.group_user,1,1,1,1
access_property_inducts_wizard,property_inducts_wizard,model_property_inducts_wizard,base.group_user,1,1,1,1
access_evaluate_application_line,evaluate_application_line,model_evaluate_application_line,base.group_user,1,1,1,1
access_property_rental_form,property_rental_form,model_property_rental_form,base.group_user,1,1,1,1
access_property_offline_registration,property_offline_registration,model_property_offline_registration,base.group_user,1,1,1,1
access_quote_message_line,quote_message_line,model_quote_message_line,base.group_user,1,1,1,1
access_now_rental_conditions_line,now_rental_conditions_line,model_now_rental_conditions_line,base.group_user,1,1,1,1
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
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
42 access_property_approval_line property_approval_line model_property_approval_line base.group_user 1 1 1 1
43 access_property_handover property_handover model_property_handover base.group_user 1 1 1 1
44 access_property_handover_line property_handover_line model_property_handover_line base.group_user 1 1 1 1
45 access_property_inducts_wizard property_inducts_wizard model_property_inducts_wizard base.group_user 1 1 1 1
46 access_evaluate_application_line evaluate_application_line model_evaluate_application_line base.group_user 1 1 1 1
47 access_property_rental_form property_rental_form model_property_rental_form base.group_user 1 1 1 1
48 access_property_offline_registration property_offline_registration model_property_offline_registration base.group_user 1 1 1 1
49 access_quote_message_line quote_message_line model_quote_message_line base.group_user 1 1 1 1
50 access_now_rental_conditions_line now_rental_conditions_line model_now_rental_conditions_line base.group_user 1 1 1 1
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
@@ -26,7 +26,7 @@
<group>
<group>
<field name="code"/>
<field name="property_documents_ids">
<field name="property_documents_ids" widget="many2many_tags">
<tree>
<field name="name"/>
</tree>
@@ -35,7 +35,7 @@
<notebook>
<page string="承租方列表">
<field name="eligibility_ids">
<tree>
<tree editable="bottom">
<field name="eligibility_id" column_invisible="1"/>
<field name="prospective_customers"/>
<field name="sincerity_gold"/>
@@ -5,6 +5,9 @@
<field name="model">property.evaluate.application</field>
<field name="arch" type="xml">
<tree string="评估申请">
<header>
<button name="put_property_record" type="object" string="提交备案申请"/>
</header>
<field name="name"/>
<field name="code"/>
<field name="is_experts"/>
@@ -17,11 +20,9 @@
<field name="arch" type="xml">
<form string="评估申请">
<sheet>
<div class="col-12 text-center">
<h1>
<field name="name"/>
</h1>
</div>
<header>
<button name="put_property_record" type="object" string="提交备案申请" class="oe_highlight"/>
</header>
<group col="2">
<group>
<field name="code"/>
@@ -38,19 +39,20 @@
</group>
<notebook>
<page string="评估项目详情">
<field name="yuthon_property_ids">
<field name="evaluate_application_ids">
<tree editable="bottom">
<field name="property_message_id" column_invisible="1"/>
<field name="name" string="评估资产"/>
<field name="rentable_area" string="评估面积m²"/>
<field name="evaluation_area" string="评估面积m²"/>
<field name="assessment_category" string="评估类别"/>
<field name="owner_id"/>
<field name="registered_use"/>
<field name="purpose_id" string="设定用途"/>
<field name="current_status"/>
<field name="unit_price" string="上一手历史租金单价" help="(元/m².月)"/>
<field name="last_hand_rent_price" string="上一手历史租金单价" help="(元/m².月)"/>
<field name="rental_conditions" string="出租条件"/>
<field name="remarks" string="备注"/>
<field name="state" string="评估状态"/>
<field name="gov_rent_price" column_invisible="1"/>
<field name="evaluation_rent_price" column_invisible="1"/>
<field name="evaluation_rent_total" column_invisible="1"/>
@@ -33,26 +33,28 @@
</group>
</group>
<group>
<field name="property_documents_ids" widget="many2many_tags"/>
</group>
<field name="property_documents_ids" widget="many2many_tags"/>
</group>
<group>
<field name="tip_description" type="html"/>
</group>
<group>
<field name="property_handover_ids">
<tree editable="bottom">
<field name="property_handover_id" column_invisible="1"/>
<field name="property_id" string="物业信息"/>
<field name="property_address"/>
<field name="is_affirmation"/>
<field name="owner"/>
<field name="title_number"/>
<field name="area"/>
<field name="purposes"/>
<field name="state"/>
</tree>
</field>
</group>
<notebook>
<page string="移交信息">
<field name="property_handover_ids">
<tree editable="bottom">
<field name="property_handover_id" column_invisible="1"/>
<field name="property_id" string="物业信息"/>
<field name="property_address"/>
<field name="is_affirmation"/>
<field name="owner"/>
<field name="title_number"/>
<field name="area"/>
<field name="purposes"/>
<field name="state"/>
</tree>
</field>
</page>
</notebook>
</sheet>
</form>
</field>
@@ -26,7 +26,7 @@
<group>
<group>
<field name="code"/>
<field name="property_documents_ids">
<field name="property_documents_ids" widget="many2many_tags">
<tree>
<field name="name"/>
</tree>
@@ -208,4 +208,27 @@
name="专项审批"
action="property_record_action"
sequence="11"/>
<menuitem id="yuthon_property_rental_form"
sequence="1"
name="出租申报表"
parent="yuthon_property.yuthon_property_menu_data"
action="action_property_rental_form"/>
<menuitem id="property_offline_registration_approval_menu"
sequence="3"
name="线下申报表"
parent="yuthon_property.yuthon_property_menu_data"
action="property_offline_registration_action"/>
<menuitem id="property_rental_conditions_menu"
sequence="5"
name="出租条件调整表"
parent="yuthon_property.yuthon_property_menu_data"
action="property_rental_conditions_action"/>
<menuitem id="property_eligibility_action_menu"
sequence="7"
name="承租方资格审核表"
parent="yuthon_property.yuthon_property_menu_data"
action="property_eligibility_action"/>
</odoo>
@@ -0,0 +1,71 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<record id="view_property_offline_registration_tree" model="ir.ui.view">
<field name="name">property.offline.registration.tree</field>
<field name="model">property.offline.registration</field>
<field name="arch" type="xml">
<tree string="线下承租方报名表">
<field name="property_id"/>
<field name="area"/>
<field name="contract_years"/>
<field name="start_data"/>
<field name="end_data"/>
</tree>
</field>
</record>
<record id="view_property_offline_registration_form" model="ir.ui.view">
<field name="name">property.offline.registration.form</field>
<field name="model">property.offline.registration</field>
<field name="arch" type="xml">
<form string="线下承租方报名表">
<sheet>
<group string="招租信息" col="3">
<group>
<field name="property_id"/>
<field name="monthly_rent"/>
<field name="contract_years"/>
<field name="area"/>
<field name="is_issues" invisible="1"/>
</group>
<group>
<field name="code"/>
<field name="increment_rate"/>
<field name="start_data"/>
</group>
<group>
<field name="rental_price"/>
<field name="rent_free"/>
<field name="end_data"/>
</group>
</group>
<notebook>
<page string="报名信息">
<field name="quote_message_line_ids">
<tree editable="bottom">
<field name="property_offline_registration_id" column_invisible="1"/>
<field name="name"/>
<field name="start_data"/>
<field name="lease"/>
<field name="quote"/>
<field name="attn"/>
<field name="phone"/>
<field name="data_review"/>
<field name="is_conform"/>
<field name="is_priority"/>
</tree>
</field>
</page>
<page string="关联议题" invisible="not is_issues">
<field name="related_issues_id"/>
</page>
</notebook>
</sheet>
</form>
</field>
</record>
<record id="property_offline_registration_action" model="ir.actions.act_window">
<field name="name">线下意向承租方报名表</field>
<field name="res_model">property.offline.registration</field>
<field name="view_mode">tree,form</field>
</record>
</odoo>
@@ -1,63 +1,74 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<record id="view_property_record_tree" model="ir.ui.view">
<field name="name">property.record.tree</field>
<record id="views_property_record_tree" model="ir.ui.view">
<field name="name">views.property.record.tree</field>
<field name="model">property.record</field>
<field name="arch" type="xml">
<tree string="物业备案">
<tree string="评估备案">
<field name="name"/>
<field name="code"/>
<field name="other_company_id"/>
<field name="base_date"/>
<field name="evaluation_code"/>
<field name="evaluation_way"/>
<field name="expert_review_time"/>
</tree>
</field>
</record>
<record id="view_property_record_form" model="ir.ui.view">
<field name="name">property.record.form</field>
<record id='views_property_record_form' model='ir.ui.view'>
<field name="name">views.property.record.form</field>
<field name="model">property.record</field>
<field name="arch" type="xml">
<form string="物业备案">
<form string="评估备案">
<sheet>
<div class="oe_title">
<label for="name"/>
<h1>
<field name="name" required="1"/>
<field name="name"/>
</h1>
</div>
<group>
<group col="3">
<group>
<field name="code"/>
<field name="property_documents_ids" widget="many2many_tags">
<tree>
<field name="name"/>
</tree>
</field>
<field name="other_company_id"/>
<field name="base_date"/>
</group>
<group>
<field name="evaluation_code"/>
<field name="expert_review_time"/>
</group>
<group>
<field name="evaluation_way"/>
</group>
</group>
<notebook>
<page name="property_data" string="物业信息">
<field name="property_record_line_ids">
<group>
<field name="notice_documents_ids" widget="preview_many2many"/>
</group>
<notebook>
<page string="评估项目详情">
<field name="evaluate_application_ids">
<tree editable="bottom">
<field name="product_id"/>
<field name="product_code"/>
<field name="partner_id"/>
<field name="property_statu"/>
<field name="property_type"/>
<field name="property_m2"/>
<field name="name" string="评估资产"/>
<field name="evaluation_area" string="评估面积m²"/>
<field name="assessment_category" string="评估类别"/>
<field name="owner_id"/>
<field name="registered_use"/>
<field name="purpose_id" string="设定用途"/>
<field name="current_status"/>
<field name="last_hand_rent_price" string="上一手历史租金单价" help="(元/m².月)"/>
<field name="rental_conditions" string="出租条件"/>
<field name="remarks" string="备注"/>
<field name="gov_rent_price" column_invisible="1"/>
<field name="evaluation_rent_price" column_invisible="1"/>
<field name="evaluation_rent_total" column_invisible="1"/>
<field name="evaluation_whole_rent_price" column_invisible="1"/>
<field name="evaluation_whole_rent_total" column_invisible="1"/>
</tree>
</field>
</page>
</notebook>
</sheet>
<!-- <div class="o_attachment_preview"/>-->
<!-- <div class="oe_chatter">-->
<!-- <field name="message_follower_ids" groups="base.group_user"/>-->
<!-- <field name="activity_ids"/>-->
<!-- <field name="message_ids"/>-->
<!-- </div>-->
</form>
</field>
</record>
<record id="property_record_action" model="ir.actions.act_window">
<field name="name">物业备案审批</field>
<field name="res_model">property.record</field>
@@ -0,0 +1,89 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<record id="view_property_rental_conditions_tree" model="ir.ui.view">
<field name="name">property.rental.conditions.tree</field>
<field name="model">property.rental.conditions</field>
<field name="arch" type="xml">
<tree string="出租条件调整">
<field name="property_id"/>
<field name="code"/>
<field name="registered_use"/>
<field name="original_tenant"/>
<field name="lease_expiration_date"/>
<field name="now_rent_price"/>
<field name="appraisal_price"/>
</tree>
</field>
</record>
<record id="view_property_rental_conditions_form" model="ir.ui.view">
<field name="name">property.rental.conditions.form</field>
<field name="model">property.rental.conditions</field>
<field name="arch" type="xml">
<form string="出租条件调整">
<sheet>
<div class="oe_title">
<label for="property_id"/>
<h1>
<field name="property_id"/>
</h1>
</div>
<group string="物业信息" col="3">
<group>
<field name="address"/>
<field name="code"/>
<field name="lease_expiration_date"/>
</group>
<group>
<field name="registered_use"/>
<field name="evaluation_area"/>
<field name="is_issues" invisible="1"/>
</group>
<group>
<field name="now_rent_price"/>
<field name="appraisal_price"/>
</group>
</group>
<notebook>
<page string="出租条件">
<group/>
<group string="目前出租条件">
<field name="now_rental_conditions_line_ids" string=" ">
<tree editable="bottom">
<field name="property_rental_conditions_id" column_invisible="1"/>
<field name="rental_price"/>
<field name="rental_price_month"/>
<field name="rental_year"/>
<field name="increment_rate"/>
<field name="rental_use"/>
<field name="other"/>
</tree>
</field>
</group>
<group string="拟调整出租条件">
<field name="rental_adjustment_line_ids" string=" ">
<tree editable="bottom">
<field name="property_rental_conditions_id" column_invisible="1"/>
<field name="new_rental_price"/>
<field name="new_rental_price_month"/>
<field name="new_rental_year"/>
<field name="new_increment_rate"/>
<field name="new_rental_use"/>
<field name="new_other"/>
</tree>
</field>
</group>
</page>
<page string="关联议题" invisible="not is_issues">
<field name="related_issues_id"/>
</page>
</notebook>
</sheet>
</form>
</field>
</record>
<record id="property_rental_conditions_action" model="ir.actions.act_window">
<field name="name">出租条件调整表</field>
<field name="res_model">property.rental.conditions</field>
<field name="view_mode">tree,form</field>
</record>
</odoo>
@@ -0,0 +1,65 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<record id="view_property_rental_form_tree" model="ir.ui.view">
<field name="name">property.rental.form.tree</field>
<field name="model">property.rental.form</field>
<field name="arch" type="xml">
<tree string="出租申报表">
<field name="name"/>
<field name="code"/>
</tree>
</field>
</record>
<record id="view_property_rental_form_form" model="ir.ui.view">
<field name="name">property.rental.form.form</field>
<field name="model">property.rental.form</field>
<field name="arch" type="xml">
<form string="出租申报表">
<sheet>
<div class="oe_title">
<label for="name"/>
<h1>
<field name="name"/>
</h1>
</div>
<group>
<field name="is_issues" invisible="1"/>
</group>
<notebook>
<page string="出租申报表">
<field name="property_rental_form_line_ids">
<tree editable="bottom">
<field name="property_rental_form_id" column_invisible="1"/>
<field name="property_id"/>
<field name="property_address"/>
<field name="registered_use"/>
<field name="evaluation_area"/>
<field name="current_status"/>
<field name="owner_id"/>
<field name="now_rent_price"/>
<field name="evaluate_rent_price"/>
<field name="upset_square"/>
<field name="upset"/>
<field name="lease_period"/>
<field name="increment_rate"/>
<field name="rental_use"/>
<field name="other"/>
<field name="remarks"/>
</tree>
</field>
</page>
<page string="关联会议" invisible="not is_issues">
<field name="related_issues_id"/>
</page>
</notebook>
</sheet>
</form>
</field>
</record>
<!-- action -->
<record id="action_property_rental_form" model="ir.actions.act_window">
<field name="name">出租申请表</field>
<field name="res_model">property.rental.form</field>
<field name="view_mode">tree,form</field>
</record>
</odoo>