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