Files
gzth/soong_workflow/wizard/soong_bounced_wizard.py
T
2025-12-11 12:02:53 +08:00

30 lines
1.5 KiB
Python

# -*- 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 in ['1', '2']:
raise UserError('当前状态不可以收回')
related_record = self.env[self.res_model].browse(self.res_id)
if hasattr(related_record, 'self_users_ids'):
related_record.self_users_ids = [(6, 0, [log_ids[-2].done_by.id])]
self.env['soong.workflow.record'].search([('code', '=', record.code)]).write({"employee_ids": [(6, 0, [log_ids[-2].done_by.employee_ids.id])],
"users_ids": [(6, 0, [log_ids[-2].done_by.id])],
'soong_state': 'to_do'
})
log_ids[-1].unlink()
log_ids[-2].write({'approval_state': '1'})
record.write({'state': log_ids[-2].name,
'work_end': False,
})