49 lines
2.0 KiB
Python
49 lines
2.0 KiB
Python
# -*- coding: utf-8 -*-
|
|
from odoo import api, fields, models, tools, _
|
|
from odoo.exceptions import UserError
|
|
|
|
|
|
class ApprovalCategory(models.Model):
|
|
_inherit = 'approval.category'
|
|
_description = '审批框架拓展'
|
|
|
|
approval_department_ids = fields.Many2many('hr.department', string="审批所属部门")
|
|
approval_process_id = fields.Many2one('approval.process', string="审批流程")
|
|
is_enable = fields.Boolean(string="启用", default=True)
|
|
category_start_date = fields.Date(string="开始日期", default=fields.Date.today())
|
|
category_end_date = fields.Date(string="结束日期")
|
|
|
|
new_approval_type = fields.Selection(
|
|
string='审批分类',
|
|
selection=[('business', '业务单据'),
|
|
('oa', 'OA审批'),
|
|
('branch', '分支'),
|
|
], default="oa")
|
|
|
|
def unlink(self):
|
|
for res in self:
|
|
if res.new_approval_type == 'business' or res.new_approval_type == 'branch':
|
|
raise UserError('不允许删除业务/分支审批!')
|
|
return super(ApprovalCategory, self).unlink()
|
|
|
|
@api.onchange('approval_process_id')
|
|
def onchange_approval_process_ids(self):
|
|
for record in self:
|
|
category_approver = []
|
|
record.approver_ids = None
|
|
for approver in record.approval_process_id.user_ids:
|
|
if len(approver.user_ids) > 1:
|
|
for user in approver.user_ids:
|
|
category_approver.append((0, 0, {
|
|
'user_id': user.id,
|
|
'role_id': approver.approval_user_role_id.id,
|
|
'category_id': record.id,
|
|
}))
|
|
else:
|
|
category_approver.append((0, 0, {
|
|
'user_id': approver.user_ids.id,
|
|
'role_id': approver.approval_user_role_id.id,
|
|
'category_id': record.id,
|
|
}))
|
|
record.approver_ids = category_approver
|