# -*- coding: utf-8 -*- from odoo import fields, models, api from odoo.exceptions import UserError, ValidationError from datetime import datetime, date, time, timedelta class SoongBouncedWizard(models.Model): _name = 'soong.bounced.wizard' _description = '收回弹窗' res_id = fields.Integer() res_model = fields.Char() def action_bounced(self): record = self.env[self.res_model].search([('id', '=', self.res_id)]) log_ids = record.log_ids.sorted('sequence') if log_ids[-1].approval_state == '1': raise UserError('当前状态不可以收回') employee_id = self.env.user.employee_ids.id workflow_id = (self.env['soong.workflow.record'].search([('code', '=', record.code)])) if employee_id: workflow_id.write({'employee_ids': [(6, 0, [employee_id])]}) if workflow_id.users_ids: last_user = workflow_id.users_ids[-1] if last_user.employee_ids.id != employee_id: workflow_id.write({'users_ids': [(3, last_user.id)]}) log_ids[-1].unlink() log_ids[-2].write({'approval_state': '1'}) record.write({'state': log_ids[-2].name})