Files
gzth/yuthon_issue/models/issue_approval_decision.py
T
2025-04-19 21:38:53 +08:00

59 lines
3.1 KiB
Python

from odoo import api, fields, models, tools
class IssueApprovalDecision(models.Model):
_name = "issue.approval.decision"
_description = '决策清单'
_order = 'sequence asc'
_rec_name = 'specifics'
decision_type_id = fields.Many2one('issue.approval.decision.type', string='事项类别')
decision_type_on_id = fields.Many2one('issue.approval.decision.type', string='事项类别上级')
sequence = fields.Char(string='序号', store=True)
specifics = fields.Text(string='具体事项')
council = fields.Selection([('approval', '审'), ('decide', '决')], string='党总委员会')
team_meet = fields.Selection([('approval', '审'), ('decide', '决')], string='经营班子会')
board_meet = fields.Selection([('approval', '审'), ('decide', '决'), ('commission', '授权投决会')], string='董事会', compute='_compute_board_meet', readonly=False)
district_state = fields.Selection([('approval', '审'), ('decide', '决')], string="区国资局",)
district_government = fields.Selection([('approval', '审'), ('decide', '决')], string="区政府",)
district_party= fields.Selection([('approval', '审'), ('decide', '决')], string="区委组织部")
department_id = fields.Many2one('hr.department', string="部门")
management_matters = fields.Char(string='管理事项')
company_id = fields.Many2one('res.company', string="公司", default=lambda self: self._get_default_company())
scope = fields.Selection([('one', '一级区属国有企业'), ('two', '二级区属国有企业'), ('one_two', '一级、二级区属国有企业')], string='适用范围', default='one')
start_date = fields.Date(string="生效日期")
end_date = fields.Date(string="失效日期")
remarks = fields.Text(string='备注')
issue_approval_id = fields.Many2one('issue.approval', string="关联议题审批")
def _get_default_company(self):
company = self.env['res.company'].search([('name', '=', '集团本部')], limit=1)
return company.id if company else False
@api.onchange('decision_type_id')
def onchange_sequence(self):
for seq in self:
seq.sequence = seq.decision_type_id.sequence
num = seq.search_count([('decision_type_id', '=', seq.decision_type_id.id)])
if seq.decision_type_id:
seq.sequence = seq.sequence + '.' + str(num+1)
else:
seq.sequence = ''
if seq.decision_type_id.decision_type_id:
seq.decision_type_on_id = seq.decision_type_id.decision_type_id
@api.depends('team_meet')
def _compute_board_meet(self):
for record in self:
if record.team_meet:
record.board_meet = 'approval'
def update_issue(self):
company = self.env['res.company'].search([('name', '=', '集团本部')], limit=1)
issue_active_ids = self.env["issue.approval.decision"].browse(
self._context.get('active_ids', self._context.get('active_id')))
for record in issue_active_ids:
record.scope = 'one'
record.company_id = company.id