审批 确认 拒绝

This commit is contained in:
ljmwkx
2024-05-29 21:11:21 +08:00
parent ba78325bfa
commit cc63c0ef4d
6 changed files with 67 additions and 3 deletions
+1
View File
@@ -15,6 +15,7 @@
'security/ir.model.access.csv',
'data/approval_category_type_data.xml',
'wizard/approval_notice_wizard_views.xml',
'wizard/approval_refuse_wizard_views.xml',
'views/inherit_approval_category_views.xml',
'views/inherit_approval_request_views.xml',
'views/approval_process_views.xml',
@@ -2,6 +2,9 @@ id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_approval_process,approval_process,model_approval_process,base.group_user,1,1,1,1
access_approval_users,approval_users,model_approval_users,base.group_user,1,1,1,1
access_approval_other_users,approval_other_users,model_approval_other_users,base.group_user,1,1,1,1
access_approval_notice_wizard,approval_notice_wizard,model_approval_notice_wizard,base.group_user,1,1,1,1
access_approval_refuse_wizard,approval_refuse_wizard,model_approval_refuse_wizard,base.group_user,1,1,1,1
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
2 access_approval_process approval_process model_approval_process base.group_user 1 1 1 1
3 access_approval_users approval_users model_approval_users base.group_user 1 1 1 1
4 access_approval_other_users approval_other_users model_approval_other_users base.group_user 1 1 1 1
5 access_approval_notice_wizard approval_notice_wizard model_approval_notice_wizard base.group_user 1 1 1 1
6 access_approval_notice_wizard access_approval_refuse_wizard approval_notice_wizard approval_refuse_wizard model_approval_notice_wizard model_approval_refuse_wizard base.group_user 1 1 1 1
7
8
9
10
@@ -15,9 +15,16 @@
<xpath expr="//button[@name='action_approve']" position="attributes">
<attribute name="invisible">1</attribute>
</xpath>
<xpath expr="//button[@name='action_refuse']" position="attributes">
<attribute name="invisible">1</attribute>
</xpath>
<xpath expr="//button[@name='action_approve']" position="after">
<button name="%(approval_notice_wizard_action)d" string="批准" type="action" invisible="request_status in ['approved', 'refused', 'cancel'] or user_status != 'pending'"/>
<button name="%(approval_notice_wizard_action)d" string="批准" type="action" invisible="request_status in ['approved', 'refused', 'cancel'] or user_status != 'pending'" data-hotkey="v"/>
</xpath>
<xpath expr="//button[@name='action_refuse']" position="after">
<button name="%(approval_refuse_wizard_action)d" string="拒绝" type="action" invisible="request_status in ['approved', 'refused', 'cancel'] or user_status != 'pending'" data-hotkey="z"/>
</xpath>
</field>
</record>
+4 -2
View File
@@ -1,3 +1,5 @@
from . import approval_notice_wizard
#
from . import approval_notice_wizard
from . import approval_refuse_wizard
@@ -0,0 +1,19 @@
# -*- coding: utf-8 -*-
from odoo import api, fields, models, tools, _
class ApprovalRefuseWizard(models.TransientModel):
_name = 'approval.refuse.wizard'
_description = """ 审批意见弹窗 """
approval_user_line_id = fields.Many2one('approval.request', string="审批明细行")
approval_notice_text = fields.Text(string="审批意见")
approval_sign = fields.Char(string="审批签署")
def confirm(self):
self.ensure_one()
approver = self.sudo().approval_user_line_id.mapped('approver_ids').filtered(
lambda approver: approver.user_id == self.env.user
)
self.sudo().approval_user_line_id.action_refuse(approver=approver)
approver.write({'approval_notice': self.approval_notice_text})
@@ -0,0 +1,32 @@
<odoo>
<record id="approval_refuse_wizard_form" model="ir.ui.view">
<field name="name">审批意见弹窗</field>
<field name="model">approval.refuse.wizard</field>
<field name="arch" type="xml">
<form>
<field name="approval_user_line_id" invisible="1" />
<group>
<field name="approval_notice_text"/>
</group>
<group>
<field name="approval_sign"/>
</group>
<footer>
<button name="confirm" string="确认" type="object" class="oe_highlight"/>
<button string="返回" class="btn-secondary" special="cancel"/>
</footer>
</form>
</field>
</record>
<record id="approval_refuse_wizard_action" model="ir.actions.act_window">
<field name="name">审批意见弹窗</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">approval.refuse.wizard</field>
<field name="context">{
'default_approval_user_line_id': active_id,
}</field>
<field name="view_mode">form</field>
<field name="target">new</field>
</record>
</odoo>