添加功能
This commit is contained in:
@@ -5,5 +5,8 @@ from odoo.exceptions import ValidationError
|
||||
class RoomMeetingType(models.Model):
|
||||
_name = 'room.meeting.type'
|
||||
_description = '会议类型配置'
|
||||
_order = 'sequence asc'
|
||||
|
||||
name = fields.Char(string='名字', required=True)
|
||||
sequence = fields.Char(string='序号', store=True)
|
||||
name = fields.Char(string='名字', required=True)
|
||||
company_id = fields.Many2one('res.company', string="所属公司", index=True, default=lambda self: self.env.company)
|
||||
@@ -42,7 +42,7 @@ class Room(models.Model):
|
||||
meet_equipment = fields.Char(string="会议室设备")
|
||||
|
||||
office_address = fields.Char(string="会议室地址", required=True)
|
||||
department_id = fields.Many2one("hr.department", string="部门", required=True)
|
||||
department_id = fields.Many2one("hr.department", string="公司", required=True)
|
||||
meeting_type_template = fields.Selection([('template1', '默认模板')], string='会议室模板')
|
||||
meet_document_id = fields.Many2one('documents.document', string="布局图片")
|
||||
meet_capacity = fields.Integer(string="容纳人数", required=True)
|
||||
|
||||
@@ -5,7 +5,9 @@
|
||||
<field name="model">room.meeting.type</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree editable="bottom">
|
||||
<field name="sequence" widget="handle"/>
|
||||
<field name="name"/>
|
||||
<field name="company_id"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
@@ -13,5 +15,4 @@
|
||||
<field name="res_model">room.meeting.type</field>
|
||||
<field name="view_mode">tree</field>
|
||||
</record>
|
||||
|
||||
</odoo>
|
||||
@@ -13,8 +13,10 @@
|
||||
<filter name="is_meet_video" string="视频" domain="[('is_meet_video', '=', True)]"/>
|
||||
<filter name="meet_capacity" string="二十人以上" domain="[('meet_capacity', '>', 20)]"/>
|
||||
<filter name="meet_capacity" string="二十人以下" domain="[('meet_capacity', '<', 20)]"/>
|
||||
<group expand="0" string="Group By">
|
||||
<filter string="公司" name="group_department_id" context="{'group_by': 'department_id'}"/>
|
||||
</group>
|
||||
</search>
|
||||
|
||||
</field>
|
||||
</record>
|
||||
|
||||
@@ -53,7 +55,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<span>公司:</span>
|
||||
<span><field name="department_id"/></span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -167,6 +169,7 @@
|
||||
<field name="name">会议室</field>
|
||||
<field name="res_model">room.room</field>
|
||||
<field name="view_mode">kanban,list,form</field>
|
||||
<field name="context">{'search_default_group_department_id': True,}</field>
|
||||
<field name="help" type="html">
|
||||
<p class="o_view_nocontent_smiling_face">
|
||||
Create Rooms
|
||||
|
||||
@@ -5,7 +5,7 @@ from odoo.exceptions import UserError
|
||||
class RoomBooking(models.Model):
|
||||
_inherit = 'room.booking'
|
||||
|
||||
is_issue = fields.Boolean(string="是否关联议题")
|
||||
is_issue = fields.Boolean(string="是否关联议题", default=True)
|
||||
issue_meeting_line_ids = fields.One2many('issue.meeting.line', 'meeting_booking_id', string="关联议题明细行")
|
||||
number_of_meetings = fields.Integer(string='会议次数')
|
||||
|
||||
@@ -52,9 +52,13 @@ class RoomBooking(models.Model):
|
||||
class IssueMeetingLine(models.Model):
|
||||
_name = 'issue.meeting.line'
|
||||
_description = '关联议题明细行'
|
||||
_order = 'sequence asc'
|
||||
|
||||
meeting_booking_id = fields.Many2one('room.booking', string='关联会议室')
|
||||
issue_library_id = fields.Many2one('issue.library', string='关联议题')
|
||||
sequence = fields.Char(string='序号', store=True)
|
||||
issue_library_id = fields.Many2one('issue.library', string='议题')
|
||||
employee_id = fields.Many2one('hr.employee', string='传达人')
|
||||
attendees = fields.Char(string='列席人员')
|
||||
is_sanda = fields.Boolean(string='是否属于"三重一大"')
|
||||
decision_results = fields.Selection([('agree', '通过'), ('disagree', '未通过')], string="决策结果")
|
||||
decision_details = fields.Text(string="决策详情")
|
||||
state = fields.Selection([('no', '未提交'), ('done', '已提交')], default='no', string="状态")
|
||||
|
||||
@@ -11,15 +11,18 @@
|
||||
<xpath expr="//field[@name='meeting_place']" position="after">
|
||||
<field name="number_of_meetings"/>
|
||||
</xpath>
|
||||
<xpath expr="//page[@name='sign']" position="after">
|
||||
<xpath expr="//page[@name='sign']" position="before">
|
||||
<page string="关联议题" invisible="is_issue == False">
|
||||
<field name="issue_meeting_line_ids">
|
||||
<tree editable="bottom">
|
||||
<field name="meeting_booking_id" column_invisible="1"/>
|
||||
<field name="sequence"/>
|
||||
<field name="issue_library_id"/>
|
||||
<field name="employee_id"/>
|
||||
<field name="attendees"/>
|
||||
<field name="is_sanda"/>
|
||||
<field name="decision_results"/>
|
||||
<field name="decision_details"/>
|
||||
<field name="state"/>
|
||||
</tree>
|
||||
</field>
|
||||
<button name="bottom_meeting_approval" string="提交会议纪要审批单" type="object" class="oe_highlight"/>
|
||||
|
||||
@@ -44,6 +44,7 @@
|
||||
'views/property_accounting_unit_views.xml',
|
||||
'views/property_check_lobby_views.xml',
|
||||
'views/property_check_project_views.xml',
|
||||
'views/property_summary_report_views.xml',
|
||||
'views/property_check_room_views.xml',
|
||||
'views/property_check_stairs_views.xml',
|
||||
'views/property_check_decorate_views.xml',
|
||||
|
||||
@@ -41,4 +41,5 @@ from . import property_accounts_receivable
|
||||
from . import property_construction_unit
|
||||
from . import property_accounting_unit
|
||||
from . import property_subject_form
|
||||
from . import property_evaluation_plan
|
||||
from . import property_evaluation_plan
|
||||
from . import property_summary_report
|
||||
@@ -0,0 +1,29 @@
|
||||
from email.policy import default
|
||||
|
||||
from odoo import models, fields, api, exceptions, _
|
||||
from odoo.exceptions import UserError, ValidationError
|
||||
|
||||
|
||||
class PropertySummaryReport(models.Model):
|
||||
_name = 'property.summary.report'
|
||||
_description = '物业汇总报表'
|
||||
_rec_name = 'property_id'
|
||||
|
||||
property_id = fields.Many2one('yuthon.property', string="物业地址")
|
||||
registered_id = fields.Many2one(related='property_id.registered_id', string='证载用途')
|
||||
evaluation_area = fields.Float(related='property_id.rent_area', string='出租面积(m²)')
|
||||
lease_expiration_date = fields.Date(string='租赁到期日')
|
||||
lessee_id = fields.Many2one('property.tenant.information', string='原租户')
|
||||
now_rent_price = fields.Float(related='property_id.rental_unit_price', string='现租价(元/m² •月)')
|
||||
appraisal_price = fields.Float(string='评估价(元/m² •月)')
|
||||
evaluation_id = fields.Many2one('evaluation.company', string='公司')
|
||||
active = fields.Boolean('Active', default=True, tracking=True)
|
||||
work_end = fields.Boolean(string="结束")
|
||||
initial_low_area_price = fields.Float() # 初始底价
|
||||
low_area_price = fields.Float(string='底价(元/m² •月)', default=lambda self: self.appraisal_price)
|
||||
low_price = fields.Float(string='底价(元/月)', compute='_compute_low_price', store=True)
|
||||
lease_period = fields.Integer(string='租赁期限(<=)')
|
||||
annual_increase_percentage = fields.Float(string='每年递增(%)', igits=(6, 2))
|
||||
rental_purposes = fields.Many2one('yuthon.rental.purpose', string="出租用途")
|
||||
rent_period = fields.Integer(string="免租期(<=)")
|
||||
amount_way = fields.Many2one('amount.way', string="交易方式")
|
||||
@@ -87,4 +87,5 @@ access_property_floor_setting,property_floor_setting,model_property_floor_settin
|
||||
access_property_evaluation_plan,property_evaluation_plan,model_property_evaluation_plan,base.group_user,1,1,1,1
|
||||
access_evaluation_company,evaluation_company,model_evaluation_company,base.group_user,1,1,1,1
|
||||
access_evaluation_plan_wizard,evaluation_plan_wizard,model_evaluation_plan_wizard,base.group_user,1,1,1,1
|
||||
access_amount_way,amount_way,model_amount_way,base.group_user,1,1,1,1
|
||||
access_amount_way,amount_way,model_amount_way,base.group_user,1,1,1,1
|
||||
access_property_summary_report, property_summary_report,model_property_summary_report,base.group_user,1,1,1,1
|
||||
|
@@ -0,0 +1,72 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<odoo>
|
||||
<record id="view_property_summary_report_tree" model="ir.ui.view">
|
||||
<field name="name">property.summary.report.tree</field>
|
||||
<field name="model">property.summary.report</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="物业汇总报表">
|
||||
<field name="property_id"/>
|
||||
<field name="now_rent_price"/>
|
||||
<field name="appraisal_price"/>
|
||||
<field name="low_area_price"/>
|
||||
<field name="low_price"/>
|
||||
<field name="lease_period"/>
|
||||
<field name="annual_increase_percentage"/>
|
||||
<field name="rental_purposes"/>
|
||||
<field name="rent_period"/>
|
||||
<field name="amount_way"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
<record id="view_property_summary_report_form" model="ir.ui.view">
|
||||
<field name="name">property.summary.report.form</field>
|
||||
<field name="model">property.summary.report</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="物业汇总报表">
|
||||
<sheet>
|
||||
<div class="oe_title">
|
||||
<label for="property_id"/>
|
||||
<h1>
|
||||
<field name="property_id" required="1" string="物业名称"/>
|
||||
</h1>
|
||||
</div>
|
||||
<group col="3">
|
||||
<group>
|
||||
<field name="evaluation_id"/>
|
||||
<field name="registered_id"/>
|
||||
<field name="evaluation_area"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="lease_expiration_date"/>
|
||||
<field name="lessee_id"/>
|
||||
<field name="now_rent_price"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="appraisal_price"/>
|
||||
</group>
|
||||
</group>
|
||||
<group string="出租条件" col="3">
|
||||
<group>
|
||||
<field name="low_area_price"/>
|
||||
<field name="low_price"/>
|
||||
<field name="lease_period"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="annual_increase_percentage"/>
|
||||
<field name="rental_purposes"/>
|
||||
<field name="rent_period"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="amount_way"/>
|
||||
</group>
|
||||
</group>
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
<record id="view_property_summary_report_action" model="ir.actions.act_window">
|
||||
<field name="name">物业汇总报表(待优化)</field>
|
||||
<field name="res_model">property.summary.report</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
</record>
|
||||
</odoo>
|
||||
@@ -74,6 +74,7 @@
|
||||
'wizard/choose_contract_wizard_views.xml',
|
||||
'wizard/property_reconciliation_wizard_views.xml',
|
||||
'wizard/property_rental_wizard_views.xml',
|
||||
'wizard/property_meeting_wizard_views.xml',
|
||||
'views/property_menu_all.xml',
|
||||
],
|
||||
|
||||
|
||||
@@ -24,7 +24,8 @@ class PropertyEvaluateApplication(models.Model):
|
||||
urgency_level = fields.Selection([('normal', '普件'), ('urgent', '急件'), ('emergency', '特急件')], string='紧急度',
|
||||
default='normal')
|
||||
active = fields.Boolean('Active', default=True, tracking=True)
|
||||
evaluation_company_id = fields.Many2one('evaluation.company', string='公司')
|
||||
date_assessment = fields.Date(string='评估基准日')
|
||||
evaluation_company_id = fields.Many2one('evaluation.company', string='评估公司')
|
||||
quote = fields.Float(string='报价')
|
||||
service_money = fields.Float(string='评估服务费总额')
|
||||
pay_time = fields.Date(string='支付时间')
|
||||
|
||||
@@ -12,13 +12,6 @@ class PropertyMeetingApproval(models.Model):
|
||||
name = fields.Char(string='标题')
|
||||
reason = fields.Html(string="正文")
|
||||
property_documents_ids = fields.Many2many('ir.attachment', string="附件")
|
||||
property_id = fields.Many2one('yuthon.property', string="物业地址")
|
||||
registered_id = fields.Many2one(related='property_id.registered_id', string='证载用途')
|
||||
evaluation_area = fields.Float(related='property_id.rent_area', string='出租面积(m²)')
|
||||
lease_expiration_date = fields.Date(string='租赁到期日')
|
||||
lessee_id = fields.Many2one('property.tenant.information', string='原租户')
|
||||
now_rent_price = fields.Float(related='property_id.rental_unit_price', string='现租价(元/m² •月)')
|
||||
appraisal_price = fields.Float(string='评估价(元/m² •月)')
|
||||
users_id = fields.Many2one('res.users', string="申请人", default=lambda self: self.env.user.id)
|
||||
department_id = fields.Many2one(related='users_id.employee_id.department_id', string="部门")
|
||||
code = fields.Char(string="编号",
|
||||
@@ -27,23 +20,10 @@ class PropertyMeetingApproval(models.Model):
|
||||
default='normal')
|
||||
active = fields.Boolean('Active', default=True, tracking=True)
|
||||
work_end = fields.Boolean(string="结束")
|
||||
initial_low_area_price = fields.Float() # 初始底价
|
||||
low_area_price = fields.Float(string='底价(元/m² •月)', default=lambda self: self.appraisal_price)
|
||||
low_price = fields.Float(string='底价(元/月)', compute='_compute_low_price', store=True)
|
||||
lease_period = fields.Integer(string='租赁期限(<=)')
|
||||
annual_increase_percentage = fields.Float(string='每年递增(%)', igits=(6, 2))
|
||||
rental_purposes = fields.Many2one('yuthon.rental.purpose', string="出租用途")
|
||||
rent_period = fields.Integer(string="免租期(<=)")
|
||||
amount_way = fields.Many2one('amount.way', string="交易方式")
|
||||
initial_rent_period = fields.Integer(string="初始免租期(<=)")
|
||||
initial_lease_period = fields.Integer(string="初始租赁期限(<=)")
|
||||
initial_low_price = fields.Float(string='初始底价(元/月)')
|
||||
is_issues = fields.Boolean(string='是否上会')
|
||||
issues_result = fields.Html(string="会议结果")
|
||||
meeting_line_ids = fields.One2many('property.meeting.line', 'meeting_id', string="物业会议审批明细")
|
||||
related_issues_id = fields.Many2one('issue.library', string="关联议题")
|
||||
rent_comparison = fields.Selection([('red', '红'), ('green',' 绿')] , string="免租期结果")
|
||||
lease_comparison = fields.Selection([('red', '红'), ('green',' 绿')] , string="租赁期限结果")
|
||||
end_comparison = fields.Selection([('red', '红'), ('green',' 绿')] , string="初始底价结果")
|
||||
|
||||
def _get_default_name_title(self):
|
||||
return self._description if self._description else self._name
|
||||
@@ -65,6 +45,33 @@ class PropertyMeetingApproval(models.Model):
|
||||
'approval_date': fields.Datetime.now(),
|
||||
})
|
||||
|
||||
|
||||
class PropertyMeetingLine(models.Model):
|
||||
_name = 'property.meeting.line'
|
||||
_description = '物业会议审批明细'
|
||||
|
||||
meeting_id = fields.Many2one('property.meeting.approval', string='关联会议审批')
|
||||
property_id = fields.Many2one('yuthon.property', string="物业地址")
|
||||
registered_id = fields.Many2one(related='property_id.registered_id', string='证载用途')
|
||||
evaluation_area = fields.Float(related='property_id.rent_area', string='出租面积(m²)')
|
||||
lease_expiration_date = fields.Date(string='租赁到期日')
|
||||
lessee_id = fields.Many2one('property.tenant.information', string='原租户')
|
||||
now_rent_price = fields.Float(related='property_id.rental_unit_price', string='现租价(元/m² •月)')
|
||||
appraisal_price = fields.Float(string='评估价(元/m² •月)')
|
||||
low_area_price = fields.Float(string='底价(元/m² •月)', default=lambda self: self.appraisal_price)
|
||||
low_price = fields.Float(string='底价(元/月)', compute='_compute_low_price', store=True)
|
||||
lease_period = fields.Integer(string='租赁期限(<=)')
|
||||
annual_increase_percentage = fields.Float(string='每年递增(%)', igits=(6, 2))
|
||||
rental_purposes = fields.Many2one('yuthon.rental.purpose', string="出租用途")
|
||||
rent_period = fields.Integer(string="免租期(<=)")
|
||||
amount_way = fields.Many2one('amount.way', string="交易方式")
|
||||
initial_low_area_price = fields.Float(string='初始底价(元/月)')
|
||||
initial_rent_period = fields.Integer(string="初始免租期(<=)")
|
||||
initial_lease_period = fields.Integer(string="初始租赁期限(<=)")
|
||||
rent_comparison = fields.Selection([('red', '红'), ('green', ' 绿')], string="免租期结果")
|
||||
lease_comparison = fields.Selection([('red', '红'), ('green', ' 绿')], string="租赁期限结果")
|
||||
end_comparison = fields.Selection([('red', '红'), ('green', ' 绿')], string="初始底价结果")
|
||||
|
||||
@api.onchange('rent_period')
|
||||
def _onchange_rent_period(self):
|
||||
if self.initial_rent_period == 0:
|
||||
@@ -90,15 +97,28 @@ class PropertyMeetingApproval(models.Model):
|
||||
def _onchange_low_area_price(self):
|
||||
if self.initial_low_area_price == 0:
|
||||
# 如果是第一次输入,记录初始值
|
||||
self.initial_low_price = self.low_price
|
||||
self.initial_low_area_price = self.low_price
|
||||
else:
|
||||
if self.low_area_price > self.initial_low_price:
|
||||
if self.low_area_price > self.initial_low_area_price:
|
||||
self.end_comparison = 'red'
|
||||
elif self.low_area_price < self.initial_low_price:
|
||||
elif self.low_area_price < self.initial_low_area_price:
|
||||
self.end_comparison = 'green'
|
||||
|
||||
|
||||
@api.depends('evaluation_area')
|
||||
def _compute_low_price(self):
|
||||
if self.evaluation_area and self.low_area_price:
|
||||
self.low_price = self.evaluation_area * self.low_area_price
|
||||
self.low_price = self.evaluation_area * self.low_area_price
|
||||
|
||||
|
||||
def property_meeting(self):
|
||||
return {
|
||||
"type": "ir.actions.act_window",
|
||||
"name": "详情",
|
||||
"res_model": "property.meeting.wizard",
|
||||
"view_mode": "form",
|
||||
"target": "new",
|
||||
"context": {
|
||||
"default_meeting_line_id": self.id,
|
||||
}
|
||||
}
|
||||
@@ -93,5 +93,7 @@ access_property_accounts_approval, property_accounts_approval,model_property_acc
|
||||
access_yuthon_property_line,yuthon_property_line,model_yuthon_property_line,base.group_user,1,1,1,1
|
||||
access_property_tenant_line, property_tenant_line,model_property_tenant_line,base.group_user,1,1,1,1
|
||||
access_property_meeting_approval,property_meeting_approval,model_property_meeting_approval,base.group_user,1,1,1,1
|
||||
access_property_meeting_wizard,property_meeting_wizard,model_property_meeting_wizard,base.group_user,1,1,1,1
|
||||
access_property_meeting_line,property_meeting_line,model_property_meeting_line,base.group_user,1,1,1,1
|
||||
|
||||
|
||||
|
||||
|
@@ -50,6 +50,8 @@
|
||||
<field name="users_id" invisible="1"/>
|
||||
<field name="department_id" invisible="1"/>
|
||||
<field name="quote"/>
|
||||
<field name="evaluation_company_id"/>
|
||||
<field name="date_assessment"/>
|
||||
<field name="service_money"/>
|
||||
<field name="pay_time"/>
|
||||
<field name="pay_way"/>
|
||||
|
||||
@@ -6,22 +6,6 @@
|
||||
<field name="arch" type="xml">
|
||||
<tree string="会议审批">
|
||||
<field name="name"/>
|
||||
<field name="property_id"/>
|
||||
<field name="now_rent_price"/>
|
||||
<field name="appraisal_price"/>
|
||||
<field name="low_area_price" decoration-danger="end_comparison == 'red'" decoration-success="end_comparison == 'green'"/>
|
||||
<field name="low_price"/>
|
||||
<field name="lease_period" decoration-danger="lease_comparison == 'red'" decoration-success="lease_comparison == 'green'"/>
|
||||
<field name="annual_increase_percentage"/>
|
||||
<field name="rental_purposes"/>
|
||||
<field name="rent_period" decoration-danger="rent_comparison == 'red'" decoration-success="rent_comparison == 'green'"/>
|
||||
<field name="amount_way"/>
|
||||
<field name="end_comparison" column_invisible="1"/>
|
||||
<field name="initial_lease_period" column_invisible="1"/>
|
||||
<field name="initial_rent_period" column_invisible="1"/>
|
||||
<field name="initial_low_price" column_invisible="1"/>
|
||||
<field name="rent_comparison" column_invisible="1"/>
|
||||
<field name="lease_comparison" column_invisible="1"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
@@ -61,45 +45,35 @@
|
||||
<field name="name"/>
|
||||
<field name="users_id"/>
|
||||
<field name="reason"/>
|
||||
<field name="initial_low_price" invisible="1"/>
|
||||
<field name="initial_lease_period" invisible="1"/>
|
||||
<field name="initial_rent_period" invisible="1"/>
|
||||
<field name="rent_comparison" invisible="1"/>
|
||||
<field name="lease_comparison" invisible="1"/>
|
||||
<field name="end_comparison" invisible="1"/>
|
||||
<field name="issues_result" invisible="is_issues == False"/>
|
||||
<field name="property_documents_ids" widget="many2many_tags"/>
|
||||
</group>
|
||||
<group string="物业信息" col="3">
|
||||
<group>
|
||||
<field name="property_id"/>
|
||||
<field name="registered_id"/>
|
||||
<field name="evaluation_area"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="lease_expiration_date"/>
|
||||
<field name="lessee_id"/>
|
||||
<field name="now_rent_price"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="appraisal_price"/>
|
||||
</group>
|
||||
</group>
|
||||
<group string="出租条件" col="3">
|
||||
<group>
|
||||
<field name="low_area_price"/>
|
||||
<field name="low_price"/>
|
||||
<field name="lease_period"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="annual_increase_percentage"/>
|
||||
<field name="rental_purposes"/>
|
||||
<field name="rent_period"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="amount_way"/>
|
||||
</group>
|
||||
</group>
|
||||
<notebook>
|
||||
<page string="物业会议审批明细">
|
||||
<field name="meeting_line_ids">
|
||||
<tree editable="bottom">
|
||||
<field name="meeting_id" column_invisible="1"/>
|
||||
<field name="property_id"/>
|
||||
<field name="now_rent_price"/>
|
||||
<field name="appraisal_price"/>
|
||||
<field name="low_area_price" decoration-danger="end_comparison == 'red'" decoration-success="end_comparison == 'green'"/>
|
||||
<field name="low_price"/>
|
||||
<field name="lease_period" decoration-danger="lease_comparison == 'red'" decoration-success="lease_comparison == 'green'"/>
|
||||
<field name="annual_increase_percentage"/>
|
||||
<field name="rental_purposes"/>
|
||||
<field name="rent_period" decoration-danger="rent_comparison == 'red'" decoration-success="rent_comparison == 'green'"/>
|
||||
<field name="amount_way"/>
|
||||
<field name="end_comparison" column_invisible="1"/>
|
||||
<field name="initial_lease_period" column_invisible="1"/>
|
||||
<field name="initial_rent_period" column_invisible="1"/>
|
||||
<field name="initial_low_area_price" column_invisible="1"/>
|
||||
<field name="rent_comparison" column_invisible="1"/>
|
||||
<field name="lease_comparison" column_invisible="1"/>
|
||||
<button name="property_meeting" type="object" string="详情" class="btn-primary"/>
|
||||
</tree>
|
||||
</field>
|
||||
</page>
|
||||
</notebook>
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
|
||||
@@ -178,6 +178,12 @@
|
||||
name="专项审批"
|
||||
action="property_record_action"
|
||||
sequence="11"/>
|
||||
<menuitem
|
||||
id="property_summary_report_menu"
|
||||
parent="yuthon_property.yuthon_property_menu"
|
||||
name="物业汇总报表(待优化)"
|
||||
action="yuthon_property.view_property_summary_report_action"
|
||||
sequence="12"/>
|
||||
<menuitem
|
||||
id="property_rent_free_setting_menu"
|
||||
parent="yuthon_property.yuthon_property_menu"
|
||||
|
||||
@@ -3,4 +3,5 @@ from . import choose_property_wizard
|
||||
from . import property_rental_wizard
|
||||
from . import property_add_wizard
|
||||
from . import property_physical_wizard
|
||||
from . import property_reconciliation_wizard
|
||||
from . import property_reconciliation_wizard
|
||||
from . import property_meeting_wizard
|
||||
@@ -0,0 +1,28 @@
|
||||
from odoo import models, fields, api, _, SUPERUSER_ID
|
||||
from odoo.exceptions import ValidationError, UserError
|
||||
import xlrd
|
||||
import base64
|
||||
import datetime
|
||||
from datetime import datetime
|
||||
import pandas as pd
|
||||
|
||||
|
||||
class PropertyMeetingWizard(models.Model):
|
||||
_name = 'property.meeting.wizard'
|
||||
_description = '物业会议审批详情'
|
||||
|
||||
meeting_line_id = fields.Many2one('property.meeting.line', string='关联会议明细', required=True)
|
||||
lease_expiration_date = fields.Date(related='meeting_line_id.lease_expiration_date', string='租赁到期日')
|
||||
property_id = fields.Many2one(related='meeting_line_id.property_id', string="物业地址")
|
||||
registered_id = fields.Many2one(related='meeting_line_id.registered_id', string='证载用途')
|
||||
evaluation_area = fields.Float(related='meeting_line_id.evaluation_area', string='出租面积(m²)')
|
||||
lessee_id = fields.Many2one(related='meeting_line_id.lessee_id', string='原租户')
|
||||
now_rent_price = fields.Float(related='meeting_line_id.now_rent_price', string='现租价(元/m² •月)')
|
||||
appraisal_price = fields.Float(related='meeting_line_id.appraisal_price', string='评估价(元/m² •月)')
|
||||
low_area_price = fields.Float(related='meeting_line_id.low_area_price', string='底价(元/m² •月)')
|
||||
low_price = fields.Float(related='meeting_line_id.low_price', string='底价(元/月)')
|
||||
lease_period = fields.Integer(related='meeting_line_id.lease_period', string='租赁期限(<=)')
|
||||
annual_increase_percentage = fields.Float(related='meeting_line_id.annual_increase_percentage', string='每年递增(%)',digits=(6, 2))
|
||||
rental_purposes = fields.Many2one(related='meeting_line_id.rental_purposes',string="出租用途")
|
||||
rent_period = fields.Integer(related='meeting_line_id.rent_period', string="免租期(<=)")
|
||||
amount_way = fields.Many2one(related='meeting_line_id.amount_way', string="交易方式")
|
||||
@@ -0,0 +1,44 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<odoo>
|
||||
<record id="view_property_meeting_form" model="ir.ui.view">
|
||||
<field name="name">物业会议审批详情</field>
|
||||
<field name="model">property.meeting.wizard</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="物业会议审批详情">
|
||||
<sheet>
|
||||
<group string="物业信息" col="3">
|
||||
<group>
|
||||
<field name="meeting_line_id" invisible="1"/>
|
||||
<field name="property_id"/>
|
||||
<field name="registered_id"/>
|
||||
<field name="evaluation_area"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="lease_expiration_date"/>
|
||||
<field name="lessee_id"/>
|
||||
<field name="now_rent_price"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="appraisal_price"/>
|
||||
</group>
|
||||
</group>
|
||||
<group string="出租条件" col="3">
|
||||
<group>
|
||||
<field name="low_area_price"/>
|
||||
<field name="low_price"/>
|
||||
<field name="lease_period"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="annual_increase_percentage"/>
|
||||
<field name="rental_purposes"/>
|
||||
<field name="rent_period"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="amount_way"/>
|
||||
</group>
|
||||
</group>
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
</odoo>
|
||||
@@ -12,7 +12,7 @@ class SelectDeleteWizard(models.Model):
|
||||
_name = 'select.delete.wizard'
|
||||
_description = '删除弹窗'
|
||||
|
||||
name = fields.Char(string='删除', help='输入要删除的工资项')
|
||||
name = fields.Char(string='工资项')
|
||||
|
||||
def confirm(self):
|
||||
for record in self:
|
||||
|
||||
@@ -70,10 +70,7 @@
|
||||
<field name="remarks"/>
|
||||
<field name="creation_time" invisible="1"/>
|
||||
</group>
|
||||
<group col="3">
|
||||
<group>
|
||||
<field name="task_type"/>
|
||||
</group>
|
||||
<group col="2">
|
||||
<group>
|
||||
<field name="priority"/>
|
||||
</group>
|
||||
|
||||
Reference in New Issue
Block a user