Files
gzth/yuthon_property_approval/models/property_transaction_confirmed.py
2026-09-24 19:38:13 +08:00

65 lines
3.7 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
from odoo import models, fields, api, exceptions, _
from datetime import datetime
from odoo.exceptions import UserError, ValidationError
class PropertyTransactionConfirmed(models.Model):
"""⚠️ 已作废:成交确认书业务已迁到 property.confirm(成交确认审批)。
模型与视图保留仅供历史数据查看,菜单/按钮均已不再指向本模型,
挂牌状态推进与「创建合同」逻辑已移除(现由 property.confirm 负责)。
"""
_name = 'property.transaction.confirmed'
_description = '成交确认书(已作废)'
_inherit = ['mail.thread.main.attachment', 'mail.activity.mixin', 'soong.workflow.mixin']
name = fields.Char(string='标题')
code = fields.Char(string="编号",
default=lambda self: self.env['ir.sequence'].next_by_code('property_transaction_confirmed_code'))
property_ids = fields.Many2many('yuthon.property', string='物业') #后续many2many字段
lessee_id = fields.Many2one('property.tenant.information', string='承租方')
entity_type = fields.Selection([('person', '个人'), ('enterprise', '企业')], string='实体类型')
details = fields.Text(string='详情') #这里可以完善承租方信息,为租赁合同服务
reason = fields.Text(string="正文")
documents_ids = fields.Many2many('ir.attachment', string="附件")
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="部门")
is_issues = fields.Boolean(string='是否上会')
issues_result = fields.Html(string="会议结果")
related_issues_id = fields.Many2one('issue.library', string="关联议题")
urgency_level = fields.Selection([('normal', '普件'), ('urgent', '急件'), ('emergency', '特急件')], string='紧急度',
default='normal')
active = fields.Boolean('Active', default=True, tracking=True)
work_end = fields.Boolean(string="结束")
def _get_default_name_title(self):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
self_users_ids = fields.Many2many('res.users', string="当前经办人", default=lambda self: [(6, 0, [self.env.user.id])])
# 「经办人 / 审批状态」取自本单据的工作流记录(口径同 property.lease.contract)
employee_ids = fields.Many2many('hr.employee', string="当前经办人", compute='_compute_workflow')
approve_state = fields.Selection([("start", "草稿"), ("pending", "审批中"), ("end", "结束")],
string="审批状态", compute='_compute_workflow')
@api.depends('code')
def _compute_workflow(self):
for record in self:
workflow = record._get_active_workflow_record()
record.employee_ids = workflow.employee_ids if workflow else False
record.approve_state = workflow.approve_state if workflow else False
@api.onchange('is_issues')
def _onchange_is_issues(self):
if self.is_issues:
issue_id = self.env['issue.library'].create({'name': self.name, 'is_invisible_workflow': True})
self.related_issues_id = issue_id.id
self.env['issue.library.approval.line'].create({
'issue_library_id': issue_id.id,
'workflow_name': self.name,
'approval_type': self.workflow_id.name,
'res_model': self._name,
'res_id': self.id,
'code': self.code,
'approval_date': fields.Datetime.now(),
})