58 lines
2.3 KiB
Python
58 lines
2.3 KiB
Python
# -*- coding: utf-8 -*-
|
|
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
|
|
|
|
from odoo import fields, models, api
|
|
from odoo.exceptions import UserError, ValidationError
|
|
from datetime import datetime, date, time, timedelta
|
|
|
|
|
|
class SoongWorkflowApostilleWizard(models.TransientModel):
|
|
_name = "soong.workflow.apostille.wizard"
|
|
_description = "加签弹窗"
|
|
_inherit = ['soong.workflow.mixin', 'mail.thread.main.attachment', 'mail.activity.mixin']
|
|
|
|
name = fields.Char(string="name")
|
|
res_model = fields.Char()
|
|
res_id = fields.Integer()
|
|
log_ids = fields.Many2many(comodel_name="soong.workflow.log")
|
|
node_btn_id = fields.Many2one(comodel_name="soong.workflow.node.button")
|
|
node_btn_name = fields.Char(string="动作名称", related='node_btn_id.name')
|
|
|
|
employee_ids = fields.Many2many('hr.employee', string="加签人员")
|
|
|
|
|
|
def add_comment(self):
|
|
self.ensure_one()
|
|
record_id = self.env[self.res_model].search([('id', '=', self.res_id)])
|
|
|
|
log_obj = self.env["soong.workflow.log"]
|
|
for user_id in self.employee_ids.user_id:
|
|
log_obj_exist = self.sudo().env["soong.workflow.log"].search(
|
|
[
|
|
("model", "=", self.res_model),
|
|
("res_id", "=", self.res_id),
|
|
("node_id", "=", self.node_btn_id.node_id.id),
|
|
("workflow_id", "=", self.node_btn_id.workflow_id.id),
|
|
("node_btn_name", "=", "2"),
|
|
("done_by", "=", user_id.id)
|
|
]
|
|
)
|
|
if not log_obj_exist:
|
|
log_obj.create(
|
|
{
|
|
"model": self.res_model,
|
|
"res_id": self.res_id,
|
|
"node_id": self.node_btn_id.node_id.id,
|
|
"workflow_id": self.node_btn_id.workflow_id.id,
|
|
"done_by": user_id.id,
|
|
"approval_state": "0",
|
|
"node_btn_name": "2", # 加签
|
|
"node_btn_id": self.node_btn_id.id,
|
|
"lase_click_date": fields.Datetime.now(),
|
|
}
|
|
)
|
|
|
|
# # 加签人员写入
|
|
# if self.node_btn_name == '加签':
|
|
# record_id.approval_sign_ids = record_id.approval_sign_ids.ids + self.employee_ids.user_id.ids
|