87 lines
3.8 KiB
Python
87 lines
3.8 KiB
Python
# -*- coding: utf-8 -*-
|
|
from odoo import models, fields, api
|
|
from odoo.exceptions import UserError, ValidationError
|
|
|
|
|
|
class PropertyEvaluationPlan(models.Model):
|
|
_name = 'property.evaluation.plan'
|
|
_description = '物业评估方案'
|
|
|
|
name = fields.Char(string='物业名称')
|
|
evaluation_area = fields.Float(string='评估面积(m²)')
|
|
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='设定用途')
|
|
rent_id = fields.Many2one('rent.free.setting', string="办法")
|
|
lease_period = fields.Integer(string='租赁期限(<=)')
|
|
first_years_begin = fields.Integer(string='第几年开始')
|
|
increments_few_years = fields.Integer(string='每几年递增')
|
|
lease_form = fields.Selection([('sublease', '分租'), ('whole', '整租')], string="租赁形式", compute='compute_lease_form')
|
|
annual_increase_percentage = fields.Float(string='递增百分比', igits=(6, 2))
|
|
annual_increase_amount = fields.Float(string='递增金额', igits=(6, 2))
|
|
rent_unit = fields.Float(string='递增单价', igits=(6, 2))
|
|
remake = fields.Text(string='备注')
|
|
property_state = fields.Selection([('to', '待审批'), ('done', '已审批')], string="状态", default='to')
|
|
|
|
@api.depends('property_ids')
|
|
def compute_lease_form(self):
|
|
for record in self:
|
|
if record.property_ids:
|
|
if len(record.property_ids) > 1:
|
|
record.lease_form = 'sublease'
|
|
else:
|
|
record.lease_form = 'whole'
|
|
else:
|
|
record.lease_form = False
|
|
|
|
|
|
def put_assessment_approval(self):
|
|
property_evaluation_ids = self.env["property.evaluation.plan"].browse(
|
|
self._context.get('active_ids', self._context.get('active_id')))
|
|
form_id = self.env.ref('yuthon_property_approval.property_evaluate_application_form').id
|
|
property_list = []
|
|
for i in property_evaluation_ids:
|
|
if i.property_state == 'done':
|
|
raise UserError('该方案不可提交')
|
|
property_list.append([0, 0, {
|
|
'property_evaluation_id': i.id,
|
|
}])
|
|
i.write({'property_state': 'done'})
|
|
return {
|
|
'name': '提交物业评估',
|
|
'view_mode': 'form',
|
|
'res_model': 'property.evaluate.application',
|
|
'type': 'ir.actions.act_window',
|
|
'views': [(form_id, 'form')],
|
|
"context": {
|
|
'default_property_ids': property_list,
|
|
}
|
|
}
|
|
|
|
def button_source(self):
|
|
domain = [('id', 'in', self.property_ids.ids)]
|
|
return {
|
|
"name": "物业",
|
|
"type": "ir.actions.act_window",
|
|
"view_mode": "tree",
|
|
"res_model": "yuthon.property",
|
|
'tree_view_ref': 'yuthon_property.view_property_evaluation_plan_tree1',
|
|
"domain": domain,
|
|
"target": "new",
|
|
}
|
|
|
|
def update_message(self):
|
|
property_evaluation_ids = self.env["property.evaluation.plan"].browse(
|
|
self._context.get('active_ids', self._context.get('active_id')))
|
|
for record in property_evaluation_ids:
|
|
property_id = self.sudo().env['yuthon.property'].search([('name', '=', record.name)])
|
|
if property_id:
|
|
record.write({
|
|
'owner_id': property_id.owner_id,
|
|
'lease_period': property_id.lease_period,
|
|
'registered_id': property_id.registered_id,
|
|
})
|
|
|