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_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="关联议题审批") 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 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