52 lines
2.2 KiB
Python
52 lines
2.2 KiB
Python
# -*- coding: utf-8 -*-
|
|
from odoo import api, fields, models, tools, _
|
|
from datetime import datetime, date, time, timedelta
|
|
from odoo.tools.safe_eval import safe_eval
|
|
from odoo.exceptions import ValidationError, UserError
|
|
import logging
|
|
|
|
_logger = logging.getLogger(__name__)
|
|
|
|
class SoongApprovalNoticeWizard(models.TransientModel):
|
|
_name = 'soong.approval.notice.wizard'
|
|
_description = """ 审批意见弹窗 """
|
|
|
|
# approval_res_id = fields.Char(string="审批明细行")
|
|
# approval_res_model = fields.Char(string="审批明细行")
|
|
approval_notice_state = fields.Selection([
|
|
('0', '不分类'),
|
|
('1', '审批通过'),
|
|
('2', '审批拒绝'),
|
|
], string='意见类型', default='0')
|
|
approval_user_notice = fields.Many2one('soong.note', string='审批意见')
|
|
# approval_user_sign = fields.Binary(string="审批签署", copy=False)
|
|
|
|
def confirm(self):
|
|
self.ensure_one()
|
|
active_model = self.env.context.get("active_model")
|
|
active_id = self.env.context.get("active_id")
|
|
self.env["soong.approval.users"].create({
|
|
'res_model_id': self.env['ir.model']._get(active_model).id,
|
|
'res_id': active_id,
|
|
'approval_user_notice': self.approval_user_notice.name,
|
|
'approval_user_id': self.env.user.id,
|
|
'approval_user_datetime': fields.datetime.now(),
|
|
# 'approval_user_sign': self.approval_user_sign,
|
|
'approval_notice_state': self.approval_notice_state,
|
|
})
|
|
wkf_btn_obj = self.env["soong.workflow.node.button"]
|
|
btn_rec = wkf_btn_obj.search([("btn_key", "=", self.env.context.get("btn_key", False))])
|
|
if btn_rec:
|
|
# todo 更改业务数据的状态,成品不建议这样玩
|
|
try:
|
|
obj = self.env[active_model].browse(active_id)
|
|
if obj.exists():
|
|
if self.approval_notice_state == '1':
|
|
obj.write({'statu': 'done'})
|
|
elif self.approval_notice_state == '2':
|
|
obj.write({'statu': 'stop'})
|
|
except Exception as e:
|
|
# todo 可以记录一下日志,但用处不大
|
|
pass
|
|
btn_rec.link_id.trigger_link()
|