!2301 添加功能

Merge pull request !2301 from 李鹏宇/dev_zhou
This commit is contained in:
李鹏宇
2025-04-02 14:17:04 +00:00
committed by Gitee
9 changed files with 137 additions and 14 deletions
@@ -8,7 +8,8 @@ class PropertyEvaluationPlan(models.Model):
name = fields.Char(string='物业名称')
evaluation_area = fields.Float(string='评估面积(m²)')
assessment_category = fields.Selection([('rent_money', '租金'), ('value', '价值')], string="评估类别")
property_ids = fields.Many2many('yuthon.property', string='物业')
assessment_category = fields.Selection([('rent_money', '租金'), ('value', '价值')], string="评估类别", default='rent_money')
owner_id = fields.Many2one('yuthon.owner.message', string="权属人")
registered_id = fields.Many2one('yuthon.purpose.evidence', string='证载用途')
registered_id2 = fields.Many2one('yuthon.purpose.evidence', string='设定用途')
@@ -18,7 +19,6 @@ class PropertyEvaluationPlan(models.Model):
end_lease_period = fields.Selection(selection=[(str(i), str(i)) for i in range(1, 7)], string='租期结束',
default='6')
annual_increase_percentage = fields.Float(string='每年递增(%)', igits=(6, 2))
is_pust = fields.Boolean(string='是否已提交')
remake = fields.Text(string='备注')
def put_assessment_approval(self):
@@ -43,10 +43,23 @@ class PropertyEvaluationPlan(models.Model):
}
def rental_scheme_wizard(self):
property_evaluation_ids = self.env["property.evaluation.plan"].browse(
self._context.get('active_ids', self._context.get('active_id')))
evaluation = []
name_list = []
for i in property_evaluation_ids:
name = i.name
name_list.append(name)
evaluation.append(i.id)
name = ','.join(name_list)
return {
'name': '整租方案弹窗',
'type': 'ir.actions.act_window',
'view_mode': 'form',
'res_model': 'rental.scheme.wizard',
'target': 'new',
'context': {
'default_name': name,
'default_property_ids': evaluation
}
}
+33 -1
View File
@@ -209,7 +209,39 @@ class YuthonProperty(models.Model):
def put_assessment_approval(self):
for record in self:
pass
self.env['property.evaluation.plan'].create({
'name': record.name,
'property_ids': [(6, 0, [record.id])],
'evaluation_area': record.rent_area,
'owner_id': record.title_information_ids[0].owner_id.id if record.title_information_ids else None,
'registered_id': record.title_information_ids[0].registered_id.id if record.title_information_ids else None,
'rent_id': record.reference_ids[0].rent_id.id if record.reference_ids else None,
'start_lease_period': record.reference_ids[0].start_lease_period if record.reference_ids else None,
'end_lease_period': record.reference_ids[0].end_lease_period if record.reference_ids else None,
'annual_increase_percentage': record.reference_ids[0].annual_increase_percentage if record.reference_ids else None,
'assessment_category': 'rent_money',
'remake': record.remark,
})
record.write({'state': 'ing'})
def all_assessment_approval(self):
property_ids = self.env["yuthon.property"].browse(
self._context.get('active_ids', self._context.get('active_id')))
for record in property_ids:
self.env['property.evaluation.plan'].create({
'name': record.name,
'property_ids': [(6, 0, [record.id])],
'evaluation_area': record.rent_area,
'owner_id': record.title_information_ids[0].owner_id.id if record.title_information_ids else None,
'registered_id': record.title_information_ids[0].registered_id.id if record.title_information_ids else None,
'rent_id': record.reference_ids[0].rent_id.id if record.reference_ids else None,
'start_lease_period': record.reference_ids[0].start_lease_period if record.reference_ids else None,
'end_lease_period': record.reference_ids[0].end_lease_period if record.reference_ids else None,
'annual_increase_percentage': record.reference_ids[0].annual_increase_percentage if record.reference_ids else None,
'assessment_category': 'rent_money',
'remake': record.remark,
})
record.write({'state': 'ing'})
# 拆分
def put_split_approval(self):
+3 -9
View File
@@ -18,11 +18,11 @@
parent="yuthon_property_menu_root"
/>
<menuitem id="yuthon_property_evaluation_menu"
<menuitem id="yuthon_property_evaluation_plan_menu"
sequence="6"
name="物业评估"
name="物业评估方案"
parent="yuthon_property_menu"
action="yuthon_property_action"
action="view_property_evaluation_plan_action"
/>
<menuitem id="yuthon_property_evaluation_experts_menu"
sequence="20"
@@ -331,12 +331,6 @@
name="物业信息"
sequence="3"
action="yuthon_property_action"/>
<menuitem
id="property_evaluation_plan_menu"
name="物业评估方案"
parent="resource_management_menu"
action="view_property_evaluation_plan_action"
sequence="5"/>
<menuitem
id="property_approval_menu"
parent="yuthon_property_menu_root"
@@ -10,6 +10,7 @@
<button name="rental_scheme_wizard" type="object" string="整租方案" class="btn btn-primary"/>
</header>
<field name="name"/>
<field name="property_ids" widget="many2many_tags"/>
<field name="evaluation_area"/>
<field name="assessment_category"/>
<field name="owner_id"/>
@@ -16,7 +16,7 @@
<field name="rent_area" digits="[16, 4]"/>
<field name="equity_area" digits="[16, 4]"/>
<field name="state"/>
<button name="put_assessment_approval" type="object" string="推送" class="btn btn-primary"/>
<button name="put_assessment_approval" type="object" string="评估推送" class="btn btn-primary" invisible="state == 'ing'"/>
<button name="put_split_approval" type="object" string="拆分" class="btn btn-primary" invisible="state != 'done'"/>
<button name="put_offline_approval" type="object" string="提交线下审批" class="btn btn-primary" invisible="state != 'done'"/>
<button name="put_adjustment_approval" type="object" string="调整出租条件" class="btn btn-primary" invisible="state != 'done'"/>
@@ -367,4 +367,11 @@
<field name="state">code</field>
<field name="code">action = model.trigger_company_id()</field>
</record>
<record id="all_data_update_assessment_approval" model="ir.actions.server">
<field name="name">批量评估推送</field>
<field name="model_id" ref="yuthon_property.model_yuthon_property"/>
<field name="binding_model_id" ref="yuthon_property.model_yuthon_property"/>
<field name="state">code</field>
<field name="code">action = model.all_assessment_approval()</field>
</record>
</odoo>
+23 -1
View File
@@ -8,6 +8,28 @@ class RentalSchemeWizard(models.Model):
_description = '整租方案弹窗'
name = fields.Char(string='方案名称')
property_ids = fields.Many2many('property.evaluation.plan', string='关联物业备案申请')
def confirm(self):
pass
evaluation_area = 0
all_property_ids = []
first_id = self.property_ids[0]
for record in self.property_ids:
evaluation_area += record.evaluation_area
all_property_ids += record.property_ids.ids
unique_property_ids = list(set(all_property_ids))
self.env['property.evaluation.plan'].create({
'name': self.name,
'evaluation_area': evaluation_area,
'assessment_category': first_id.assessment_category,
'owner_id': first_id.owner_id.id if first_id.owner_id else False,
'registered_id': first_id.registered_id.id if first_id.registered_id else False,
'registered_id2': first_id.registered_id2.id if first_id.registered_id2 else False,
'rent_id': first_id.rent_id.id if first_id.rent_id else False,
'start_lease_period': first_id.start_lease_period,
'end_lease_period': first_id.end_lease_period,
'annual_increase_percentage': first_id.annual_increase_percentage,
'is_pust': first_id.is_pust,
'remake': first_id.remake,
'property_ids': [(6, 0, unique_property_ids)]
})
@@ -8,6 +8,7 @@
<sheet>
<group>
<field name="name"/>
<field name="property_ids" widget="many2many_tags" invisible="1"/>
</group>
</sheet>
<footer>
@@ -132,6 +132,7 @@ class PropertyLeaseContract(models.Model):
lease_bank_ids = fields.One2many('property.bank.line', 'contract_id', string="承租方账户明细行")
bank_statements_ids = fields.One2many('property.bank.statements', 'contract_id', string="银行流水明细行")
management_list_ids = fields.One2many('property.management.list', 'contract_id', string="管理费用明细行")
state = fields.Selection([('to', '待评估'), ('done', '已评估'), ('ing', '评估中')], string="状态", default='to')
# 附件
license_id = fields.Many2one('ir.attachment', string="营业执照")
card_id = fields.Many2one('ir.attachment', string="经办人身份证")
@@ -1146,6 +1147,49 @@ class PropertyLeaseContract(models.Model):
def read_due_count(self):
return self.search_count([('expiration_coming', '=', 'due'), ('admin_id', '=', self.env.user.id)])
def put_evaluation_plan(self):
property_ids = []
property_id = self.lease_ids[0].address_id
for record in self:
for lease_id in record.lease_ids:
property_ids.append(lease_id.address_id.id)
self.env['property.evaluation.plan'].create({
'name': record.name,
'property_ids': property_ids,
'evaluation_area': property_id.rent_area,
'owner_id': property_id.title_information_ids[0].owner_id.id if property_id.title_information_ids else None,
'registered_id': property_id.title_information_ids[0].registered_id.id if property_id.title_information_ids else None,
'rent_id': property_id.reference_ids[0].rent_id.id if property_id.reference_ids else None,
'start_lease_period': property_id.reference_ids[0].start_lease_period if property_id.reference_ids else None,
'end_lease_period': property_id.reference_ids[0].end_lease_period if property_id.reference_ids else None,
'annual_increase_percentage': property_id.reference_ids[0].annual_increase_percentage if property_id.reference_ids else None,
'remake': property_id.remark,
'assessment_category': 'rent_money',
})
record.write({'state': 'ing'})
def all_put_evaluation_plan(self):
contract_ids = self.env["property.lease.contract"].browse(self._context.get('active_ids', self._context.get('active_id')))
for record in contract_ids:
property_ids = []
property_id = record.lease_ids[0].address_id
for lease_id in record.lease_ids:
property_ids.append(lease_id.address_id.id)
self.env['property.evaluation.plan'].create({
'name': record.name,
'property_ids': property_ids,
'evaluation_area': property_id.rent_area,
'owner_id': property_id.title_information_ids[0].owner_id.id if property_id.title_information_ids else None,
'registered_id': property_id.title_information_ids[0].registered_id.id if property_id.title_information_ids else None,
'rent_id': property_id.reference_ids[0].rent_id.id if property_id.reference_ids else None,
'start_lease_period': property_id.reference_ids[0].start_lease_period if property_id.reference_ids else None,
'end_lease_period': property_id.reference_ids[0].end_lease_period if property_id.reference_ids else None,
'annual_increase_percentage': property_id.reference_ids[0].annual_increase_percentage if property_id.reference_ids else None,
'remake': property_id.remark,
'assessment_category': 'rent_money',
})
record.write({'state': 'ing'})
class PropertyLeaseContractLine(models.Model):
_name = 'property.lease.contract.line'
_description = '物业列表明细行'
@@ -352,6 +352,8 @@
<field name="deposit_status" column_invisible="1"/>
<field name="company_id" string="所属公司"/>
<field name="admin_id" string="负责人"/>
<field name="state"/>
<button name="put_evaluation_plan" type="object" class="btn-primary" string="评估推送" invisible="state == 'ing'"/>
<button name="button_lease_extension" type="object" class="btn-primary" string="续租"/>
<button name="button_lease_return" type="object" class="btn-primary" string="退租"/>
<button name="button_lease_change" type="object" class="btn-primary" string="变更"/>
@@ -763,4 +765,11 @@
<field name="state">code</field>
<field name="code">action = model.action_update_contract()</field>
</record>
<record id="all_data_action_evaluation_plan" model="ir.actions.server">
<field name="name">批量评估推送</field>
<field name="model_id" ref="yuthon_property_approval.model_property_lease_contract"/>
<field name="binding_model_id" ref="yuthon_property_approval.model_property_lease_contract"/>
<field name="state">code</field>
<field name="code">action = model.all_put_evaluation_plan()</field>
</record>
</odoo>