Files
gzth/yuthon_issue/models/issue_approval_decision.py
T
2026-05-29 16:30:36 +08:00

55 lines
3.0 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='具体事项')
by_law = fields.Selection([('yes', '是'), ('no', '否')], string='是否经过法律审核')
is_filing = fields.Selection([('yes', '备'), ('no', '否')], string='是否备案')
council_id = fields.Many2one('issue.library.type', string='党总支')
team_meet_id = fields.Many2one('issue.library.type', string='经营班子会')
board_meet_id = fields.Many2one('issue.library.type', string='董事会')
district_state_id = fields.Many2one('issue.library.type', string="区国资局",)
district_government_id = fields.Many2one('issue.library.type', string="区政府",)
district_party_id= fields.Many2one('issue.library.type', string="区委组织部")
department_id = fields.Many2one('hr.department', string="部门")
management_matters_id = fields.Many2one('issue.approval.decision.type', 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="关联议题审批")
version = fields.Char(string="版本", default="V3.0")
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 or ''
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
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