Files
gzth/soong_workflow/wizard/approval_notice_wizard.py
T
2024-08-17 14:08:15 +08:00

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()