mirror of
https://gitlab.com/sonalarora/tra_backend.git
synced 2025-12-17 18:29:08 +02:00
work sale and purchase
This commit is contained in:
42
MKS_Tradex_Backend_2/\
Normal file
42
MKS_Tradex_Backend_2/\
Normal file
@@ -0,0 +1,42 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
<menuitem id="purchase_requisition.menu_purchase_requisition_pro_mgt"
|
||||
sequence="5"
|
||||
parent="purchase.menu_procurement_management"
|
||||
name="Purchase Requisition"
|
||||
action="purchase_requisition.action_purchase_requisition"/>
|
||||
|
||||
<record id="view_purchase_requisition_inherit_form" model="ir.ui.view">
|
||||
<field name="name">view.purchase.requisition.inherit.form</field>
|
||||
<field name="model">purchase.requisition</field>
|
||||
<field name="inherit_id" ref="purchase_requisition.view_purchase_requisition_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//header" position="replace">
|
||||
<header>
|
||||
<button name="363" type="action" string="New Quotation" attrs="{'invisible': [('state', '!=', 'open')]}"/>
|
||||
<button name="363" type="action" string="New Quotation" class="btn-primary" attrs="{'invisible': [('state', 'not in', ('in_progress', 'ongoing'))]}" groups="MKS_Tradex_Backend_2.group_purchase_coordinator,purchase.group_purchase_manager"/>
|
||||
<!-- <button name="action_in_progress" states="draft" string="Confirm" type="object" class="btn-primary"/>-->
|
||||
<button name="action_open" states="in_progress" string="Validate" groups="MKS_Tradex_Backend_2.group_purchase_coordinator,purchase.group_purchase_manager" type="object" class="btn-primary"/>
|
||||
<button name="action_done" states="open,ongoing" string="Close" type="object" class="btn-primary"/>
|
||||
<button name="action_draft" states="cancel" string="Reset to Draft" type="object"/>
|
||||
<!-- <button name="action_cancel" states="draft,in_progress,ongoing" string="Cancel" type="object"/>-->
|
||||
<button name="action_cancel" states="draft,approval,manager_approval,approved,in_progress,ongoing" string="Cancel" type="object"/>
|
||||
<button name="action_in_progress" states="approved" string="Confirm" type="object" class="btn-primary"
|
||||
groups="MKS_Tradex_Backend_2.group_purchase_coordinator"/>
|
||||
|
||||
<button name="action_approval" states="draft" string="Submit To PC" type="object" class="btn-primary" groups="purchase.group_purchase_user"/>
|
||||
|
||||
<button name="action_coordinator_approval" states="approval" string="Validated By PC" type="object" class="btn-primary" groups="MKS_Tradex_Backend_2.group_purchase_coordinator"/>
|
||||
<button name="action_submitted_to_mgt" states="validate_by_pc" string="Submit To MGT" type="object" class="btn-primary" groups="MKS_Tradex_Backend_2.group_purchase_coordinator"/>
|
||||
|
||||
<button name="action_manager_approval" states="manager_approval" string="Approved By MGT" type="object" class="btn-primary" groups="purchase.group_purchase_manager"/>
|
||||
<field name="state" widget="statusbar" statusbar_visible="draft,in_progress,open,done" attrs="{'invisible': [('is_quantity_copy', '=', 'none')]}"/>
|
||||
<field name="state_blanket_order" widget="statusbar" statusbar_visible="draft,ongoing,done" attrs="{'invisible': [('is_quantity_copy', '!=', 'none')]}"/>
|
||||
</header>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
||||
|
||||
</odoo>
|
||||
@@ -1,7 +1,7 @@
|
||||
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
||||
{
|
||||
'name': 'MKS Tradex Backend',
|
||||
'version': '13.0.1.0',
|
||||
'version': '13.0.1.4',
|
||||
'category': 'Operations/Purchase',
|
||||
'description': """
|
||||
This module allows you to manage your Purchase Agreements flow.
|
||||
@@ -11,7 +11,7 @@ This module allows you to manage your Purchase Agreements flow.
|
||||
Purchase Codinator Create RFQ after Approve purchase agreement by purchase manager
|
||||
|
||||
""",
|
||||
'depends': ['purchase','purchase_requisition','sale_management'],
|
||||
'depends': ['purchase','purchase_requisition','sale_management','sale_renting'],
|
||||
'data': [
|
||||
'edi/mail_template.xml',
|
||||
'edi/purchase_mail_template.xml',
|
||||
|
||||
BIN
MKS_Tradex_Backend_2/__pycache__/__init__.cpython-36.pyc
Normal file
BIN
MKS_Tradex_Backend_2/__pycache__/__init__.cpython-36.pyc
Normal file
Binary file not shown.
BIN
MKS_Tradex_Backend_2/models/__pycache__/__init__.cpython-36.pyc
Normal file
BIN
MKS_Tradex_Backend_2/models/__pycache__/__init__.cpython-36.pyc
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -9,8 +9,8 @@ class purchase_order(models.Model):
|
||||
state = fields.Selection([
|
||||
('draft', 'RFQ'),
|
||||
('sent', 'RFQ Sent'),
|
||||
('approved', 'RFQ Approved'),
|
||||
('po_approval', 'PO Approval'),
|
||||
('approved', 'RFQ Submitted To MGT'),
|
||||
('po_approval', 'Approved By MGT'),
|
||||
('to approve', 'To Approve'),
|
||||
('purchase', 'Purchase Order'),
|
||||
('done', 'Locked'),
|
||||
|
||||
@@ -5,12 +5,13 @@ from odoo import api, fields, models, SUPERUSER_ID, _
|
||||
|
||||
|
||||
PURCHASE_REQUISITION_STATES = [
|
||||
('draft', 'Draft'),
|
||||
('approval', 'Approval'),
|
||||
('manager_approval','Manager Approval'),
|
||||
('approved','Approved'),
|
||||
('draft', 'New'),
|
||||
('approval', 'Pending PC Validation'),
|
||||
('validate_by_pc','Validated By PC'),
|
||||
('manager_approval','Submitted To MGT'),
|
||||
('approved','Approved By MGT'),
|
||||
('ongoing', 'Ongoing'),
|
||||
('in_progress', 'Confirmed'),
|
||||
('in_progress', 'Approved By MGT'),
|
||||
('open', 'Bid Selection'),
|
||||
('done', 'Closed'),
|
||||
('cancel', 'Cancelled'),
|
||||
@@ -105,6 +106,20 @@ class purchase_requisition(models.Model):
|
||||
self.state = 'approval'
|
||||
|
||||
def action_coordinator_approval(self):
|
||||
group_id = self.env['ir.model.data'].get_object_reference('MKS_Tradex_Backend_2', 'group_purchase_coordinator')[1]
|
||||
if group_id:
|
||||
browse_group = self.env['res.groups'].browse(group_id)
|
||||
for user in browse_group.users:
|
||||
manager_mail = user.partner_id.email
|
||||
mtp =self.env['mail.template']
|
||||
ir_model_data = self.env['ir.model.data']
|
||||
template_id = ir_model_data.get_object_reference('MKS_Tradex_Backend_2', 'purchase_coordinator_template')
|
||||
mail_tem=mtp.browse(template_id[1])
|
||||
mail_tem.send_mail(self.id,True)
|
||||
mail_tem.write({'email_to': manager_mail})
|
||||
self.state = 'validate_by_pc'
|
||||
|
||||
def action_submitted_to_mgt(self):
|
||||
group_id = self.env['ir.model.data'].get_object_reference('purchase', 'group_purchase_manager')[1]
|
||||
if group_id:
|
||||
browse_group = self.env['res.groups'].browse(group_id)
|
||||
@@ -118,6 +133,7 @@ class purchase_requisition(models.Model):
|
||||
mail_tem.write({'email_to': manager_mail})
|
||||
self.state = 'manager_approval'
|
||||
|
||||
def action_manager_approval(self):
|
||||
self.state = 'approved'
|
||||
|
||||
def action_manager_approval(self):
|
||||
self.state = 'manager_approval'
|
||||
|
||||
|
||||
@@ -10,15 +10,16 @@ class sale_order(models.Model):
|
||||
# credit_controller_id = fields.Many2one('res.users',string="Credit Controller")
|
||||
|
||||
state = fields.Selection([
|
||||
('draft', 'Quotation'),
|
||||
('approval', 'RFQ approval'),
|
||||
('approved', 'RFQ Approved'),
|
||||
('logistics_approval', 'Logistics Approval'),
|
||||
('logistics_approved', 'Logistics Approved'),
|
||||
('credit_approval', 'Credit Approval'),
|
||||
('draft', 'new'),
|
||||
('approval', 'Submmited To MGT'),
|
||||
('approved', 'Approved By MGT'),
|
||||
('logistics_approval', 'Validated By Logistic'),
|
||||
('logistics_approved', 'validated by logistic'),
|
||||
('credit_approval', 'Validated By CC'),
|
||||
('sent', 'Quotation Sent'),
|
||||
('sale', 'Sales Order'),
|
||||
('done', 'Locked'),
|
||||
('reject','Rejected By MGT'),
|
||||
('cancel', 'Cancelled'),
|
||||
], string='Status', readonly=True, copy=False, index=True, tracking=3, default='draft')
|
||||
|
||||
@@ -62,6 +63,15 @@ class sale_order(models.Model):
|
||||
self.state = 'approved'
|
||||
return True
|
||||
|
||||
def action_managment_reject(self):
|
||||
self.state = 'reject'
|
||||
return True
|
||||
|
||||
def reset(self):
|
||||
self.state = 'approved'
|
||||
return True
|
||||
|
||||
|
||||
def action_logistics_approval(self):
|
||||
group_id = self.env['ir.model.data'].get_object_reference('MKS_Tradex_Backend_2', 'group_sale_logistics')[1]
|
||||
if group_id:
|
||||
@@ -101,3 +111,4 @@ class sale_order(models.Model):
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@ from odoo import api, fields, models, SUPERUSER_ID, _
|
||||
class stock_picking(models.Model):
|
||||
_inherit = "stock.picking"
|
||||
|
||||
state = fields.Selection(selection_add=[('qa_approval', 'QA approval')],
|
||||
state = fields.Selection(selection_add=[('qa_approval', 'QA Validation')],
|
||||
)
|
||||
|
||||
def button_validate_qa_approval(self):
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
<data noupdate="0">
|
||||
|
||||
<!--
|
||||
<record id="account.group_account_invoice" model="res.groups">
|
||||
<field name="name">Accountant</field>
|
||||
</record>
|
||||
|
||||
-->
|
||||
<record id="account.group_account_manager" model="res.groups">
|
||||
<field name="name">Finance Manager</field>
|
||||
</record>
|
||||
|
||||
4
MKS_Tradex_Backend_2/security/purchase_security.xml
Normal file → Executable file
4
MKS_Tradex_Backend_2/security/purchase_security.xml
Normal file → Executable file
@@ -28,6 +28,10 @@
|
||||
<field name="category_id" ref="base.module_category_sales_sales"/>
|
||||
<field name="implied_ids" eval="[(4, ref('sales_team.group_sale_salesman_all_leads'))]"/>
|
||||
</record>
|
||||
<record id="group_salescoordinator" model="res.groups">
|
||||
<field name="name">Sales Co ordinator</field>
|
||||
<field name="category_id" ref="base.module_category_sales_sales"/>
|
||||
</record>
|
||||
|
||||
<record id="group_credit_controller" model="res.groups">
|
||||
<field name="name">Credit Controller</field>
|
||||
|
||||
0
MKS_Tradex_Backend_2/views/account_move_views.xml
Normal file → Executable file
0
MKS_Tradex_Backend_2/views/account_move_views.xml
Normal file → Executable file
@@ -1,5 +1,15 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
<menuitem id="purchase.menu_procurement_management_supplier_name" name="Vendors"
|
||||
parent="purchase.menu_procurement_management"
|
||||
action="account.res_partner_action_supplier" sequence="15"
|
||||
groups="MKS_Tradex_Backend_2.group_purchase_coordinator"/>
|
||||
<menuitem action="purchase.purchase_rfq"
|
||||
id="purchase.menu_purchase_rfq"
|
||||
parent="purchase.menu_procurement_management"
|
||||
sequence="0"
|
||||
groups="base.group_system"/>
|
||||
<menuitem action="purchase.purchase_form_action" id="purchase.menu_purchase_form_action" parent="purchase.menu_procurement_management" sequence="6" groups="MKS_Tradex_Backend_2.group_purchase_coordinator"/>
|
||||
<record id="view_purchase_order_inherit_form" model="ir.ui.view">
|
||||
<field name="name">view.purchase.order.inherit.form</field>
|
||||
<field name="model">purchase.order</field>
|
||||
@@ -12,21 +22,21 @@
|
||||
<xpath expr="//button[@name='action_rfq_send']" position="replace">
|
||||
<button name="action_rfq_send" states="approved" string="Send by Email" type="object" context="{'send_rfq':True}" class="oe_highlight"/>
|
||||
|
||||
<button name="action_manager_approval" states="draft" string="Manager Approval"
|
||||
type="object" class="oe_highlight" groups="purchase.group_purchase_manager"/>
|
||||
<button name="action_manager_approval" states="draft" string="Submit To MGT"
|
||||
type="object" class="oe_highlight" groups="MKS_Tradex_Backend_2.group_purchase_coordinator"/>
|
||||
|
||||
</xpath>
|
||||
|
||||
<xpath expr="//button[@id='bid_confirm']" position="replace">
|
||||
<button name="button_confirm" type="object" states="sent" string="Confirm Order" class="oe_highlight" id="bid_confirm"/>
|
||||
<button name="button_confirm" type="object" states="sent" string="Create PO" class="oe_highlight" id="bid_confirm"/>
|
||||
</xpath>
|
||||
|
||||
<xpath expr="//button[@id='draft_confirm']" position="replace">
|
||||
<button name="button_confirm_mks" type="object" states="approved" groups="MKS_Tradex_Backend_2.group_purchase_coordinator" string="Confirm Order" id="draft_confirm_mks"/>
|
||||
<button name="button_confirm_mks" type="object" states="approved" groups="MKS_Tradex_Backend_2.group_purchase_coordinator" string="Approved By MGT" id="draft_confirm_mks"/>
|
||||
</xpath>
|
||||
|
||||
<xpath expr="//button[@name='print_quotation']" position="after">
|
||||
<button name="button_confirm" groups="purchase.group_purchase_manager" type="object" states="po_approval" string="Confirm Order" class="oe_highlight" />
|
||||
<button name="button_confirm" groups="purchase.group_purchase_manager" type="object" states="po_approval" string="Create PO" class="oe_highlight" />
|
||||
</xpath>
|
||||
<xpath expr="//button[@name='button_cancel']" position="replace">
|
||||
<button name="button_cancel" states="draft,to approve,sent,purchase,po_approval" string="Cancel" type="object"/>
|
||||
|
||||
31
MKS_Tradex_Backend_2/views/purchase_requisition_views.xml
Normal file → Executable file
31
MKS_Tradex_Backend_2/views/purchase_requisition_views.xml
Normal file → Executable file
@@ -1,5 +1,11 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
<menuitem id="purchase_requisition.menu_purchase_requisition_pro_mgt"
|
||||
sequence="5"
|
||||
parent="purchase.menu_procurement_management"
|
||||
name="Purchase Requisition"
|
||||
action="purchase_requisition.action_purchase_requisition"/>
|
||||
|
||||
<record id="view_purchase_requisition_inherit_form" model="ir.ui.view">
|
||||
<field name="name">view.purchase.requisition.inherit.form</field>
|
||||
<field name="model">purchase.requisition</field>
|
||||
@@ -7,26 +13,33 @@
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//header" position="replace">
|
||||
<header>
|
||||
<button name="363" type="action" string="New Quotation" attrs="{'invisible': [('state', '!=', 'open')]}"/>
|
||||
<!-- <button name="363" type="action" string="New Quotation" attrs="{'invisible': [('state', '!=', 'open')]}"/>
|
||||
<button name="363" type="action" string="New Quotation" class="btn-primary" attrs="{'invisible': [('state', 'not in', ('in_progress', 'ongoing'))]}" groups="MKS_Tradex_Backend_2.group_purchase_coordinator,purchase.group_purchase_manager"/>
|
||||
<!-- <button name="action_in_progress" states="draft" string="Confirm" type="object" class="btn-primary"/>-->
|
||||
<button name="action_open" states="in_progress" string="Validate" groups="MKS_Tradex_Backend_2.group_purchase_coordinator,purchase.group_purchase_manager" type="object" class="btn-primary"/>
|
||||
<button name="action_open" states="in_progress" string="Validate" groups="MKS_Tradex_Backend_2.group_purchase_coordinator,purchase.group_purchase_manager" type="object" class="btn-primary"/>-->
|
||||
<button name="action_done" states="open,ongoing" string="Close" type="object" class="btn-primary"/>
|
||||
<button name="action_draft" states="cancel" string="Reset to Draft" type="object"/>
|
||||
<!-- <button name="action_cancel" states="draft,in_progress,ongoing" string="Cancel" type="object"/>-->
|
||||
<button name="action_cancel" states="draft,approval,manager_approval,approved,in_progress,ongoing" string="Cancel" type="object"/>
|
||||
<button name="action_in_progress" states="approved" string="Confirm" type="object" class="btn-primary"
|
||||
groups="MKS_Tradex_Backend_2.group_purchase_coordinator"/>
|
||||
<button name="action_cancel" states="draft,approval,approved,in_progress,ongoing" string="Cancel" type="object"/>
|
||||
<button name="action_in_progress" states="manager_approval" string="Approved By MGT" type="object" class="btn-primary"
|
||||
groups="purchase.group_purchase_manager"/>
|
||||
|
||||
<button name="action_approval" states="draft" string="Confirm" type="object" class="btn-primary" groups="purchase.group_purchase_user"/>
|
||||
<button name="action_approval" states="draft" string="Submit To PC" type="object" class="btn-primary"
|
||||
groups="purchase.group_purchase_user"/>
|
||||
|
||||
<button name="action_coordinator_approval" states="approval" string="Coordinator Approval" type="object" class="btn-primary" groups="MKS_Tradex_Backend_2.group_purchase_coordinator"/>
|
||||
<button name="action_coordinator_approval" states="approval" string="Validated By PC" type="object" class="btn-primary" groups="MKS_Tradex_Backend_2.group_purchase_coordinator"/>
|
||||
<button name="action_submitted_to_mgt" states="validate_by_pc" string="Submit To MGT" type="object" class="btn-primary" groups="MKS_Tradex_Backend_2.group_purchase_coordinator"/>
|
||||
|
||||
<button name="action_manager_approval" states="manager_approval" string="Manager Approval" type="object" class="btn-primary" groups="purchase.group_purchase_manager"/>
|
||||
<!-- <button name="action_manager_approval" states="manager_approval" string="Approved By MGT" type="object" class="btn-primary" groups="purchase.group_purchase_manager"/>-->
|
||||
<field name="state" widget="statusbar" statusbar_visible="draft,in_progress,open,done" attrs="{'invisible': [('is_quantity_copy', '=', 'none')]}"/>
|
||||
<field name="state_blanket_order" widget="statusbar" statusbar_visible="draft,ongoing,done" attrs="{'invisible': [('is_quantity_copy', '!=', 'none')]}"/>
|
||||
</header>
|
||||
</xpath>
|
||||
<field name="type_id" position="attributes">
|
||||
<attribute name="string">Requisition Type</attribute>
|
||||
</field>
|
||||
<field name="date_end" position="attributes">
|
||||
<attribute name="string">Requisition Deadline</attribute>
|
||||
</field>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
||||
22
MKS_Tradex_Backend_2/views/sale_order_view.xml
Normal file → Executable file
22
MKS_Tradex_Backend_2/views/sale_order_view.xml
Normal file → Executable file
@@ -5,14 +5,23 @@
|
||||
<field name="model">sale.order</field>
|
||||
<field name="inherit_id" ref="sale.view_order_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//button[@name='action_confirm'][2]" position="replace">
|
||||
<!-- <xpath expr="//button[@name='action_confirm'][2]" position="replace">-->
|
||||
<!-- -->
|
||||
<!-- <button name="action_confirm" groups="MKS_Tradex_Backend_2.group_credit_controller" string="Sale Confirm" class="btn-primary" type="object" attrs="{'invisible': [('state', 'not in', ['sale'])]}"/>-->
|
||||
<!-- </xpath>-->
|
||||
|
||||
<button name="action_confirm" groups="MKS_Tradex_Backend_2.group_credit_controller" string="Sale Confirm" class="btn-primary" type="object" attrs="{'invisible': [('state', 'not in', ['sale'])]}"/>
|
||||
<xpath expr="//button[@name='action_confirm'][2]" position="replace">
|
||||
<button name="action_credit_approval" groups="MKS_Tradex_Backend_2.group_credit_controller" string="Validated By CC" class="btn-primary" type="object" attrs="{'invisible': [('state', 'not in', ['logistics_approval'])]}"/>
|
||||
<button name="action_confirm" groups="MKS_Tradex_Backend_2.group_sale_logistics,MKS_Tradex_Backend_2.group_credit_controller" string="Create SO" class="btn-primary" type="object" attrs="{'invisible': [('state', 'not in', ['credit_approval'])]}"/>
|
||||
</xpath>
|
||||
|
||||
<xpath expr="//button[@name='action_quotation_send']" position="after">
|
||||
<button name="action_manager_approval" groups = "sales_team.group_sale_manager" string="Manager Approval" type="object" attrs="{'invisible': [('state', 'not in', ['approval'])]}"/>
|
||||
<button name="action_manager_approval" groups = "sales_team.group_sale_manager" string="Approved By MGT" type="object" attrs="{'invisible': [('state', 'not in', ['approval'])]}" class="btn-primary"/>
|
||||
<button name="action_managment_reject" groups = "sales_team.group_sale_manager" string="Rejected By MGT" type="object" attrs="{'invisible': [('state', 'not in', ['approval'])]}" class="btn-primary"/>
|
||||
|
||||
</xpath>
|
||||
<xpath expr="//header" position="inside">
|
||||
<button name="reset" string="Reset" type="object" attrs="{'invisible': [('state', 'not in', ['reject'])]}" class="btn-primary"/>
|
||||
</xpath>
|
||||
|
||||
<xpath expr="//button[@name='action_quotation_send']" position="replace">
|
||||
@@ -20,15 +29,12 @@
|
||||
|
||||
</xpath>
|
||||
<xpath expr="//button[@name='action_confirm']" position="after">
|
||||
<button name="action_confirm_approval_request" groups="sales_team.group_sale_salesman" string="Confirm" class="btn-primary" type="object" attrs="{'invisible': [('state', 'not in', ['draft'])]}"/>
|
||||
<button name="action_confirm_approval_request" groups="sales_team.group_sale_salesman" string="Submit To MGT" class="btn-primary" type="object" attrs="{'invisible': [('state', 'not in', ['draft'])]}"/>
|
||||
</xpath>
|
||||
|
||||
<!-- <xpath expr="//button[@name='action_confirm']" position="after">-->
|
||||
<!-- <button name="action_cancel" states="draft,sent,sale,approved,logistics_approved,logistics_approval" type="object" string="Cancel"/>-->
|
||||
<!-- </xpath>-->
|
||||
|
||||
<xpath expr="//button[@name='action_confirm']" position="after">
|
||||
<button name="action_logistics_approval" groups="sales_team.group_sale_salesman" states="approved" type="object" string="Logistics Approval"/>
|
||||
<button name="action_logistics_approval" groups="sales_team.group_sale_salesman" states="approved" type="object" string="Validated By Logistic"/>
|
||||
</xpath>
|
||||
|
||||
<xpath expr="//button[@name='action_confirm']" position="after">
|
||||
|
||||
2
MKS_Tradex_Backend_2/views/stock_picking.xml
Normal file → Executable file
2
MKS_Tradex_Backend_2/views/stock_picking.xml
Normal file → Executable file
@@ -12,7 +12,7 @@
|
||||
|
||||
|
||||
<xpath expr="//button[@name='button_scrap']" position="after">
|
||||
<button name="button_validate_qa_approval" states="assigned" string="QA Validate" type="object" class="oe_highlight" groups="stock.group_stock_user"/>
|
||||
<button name="button_validate_qa_approval" states="assigned" string="QA Validatation" type="object" class="oe_highlight" groups="stock.group_stock_user"/>
|
||||
|
||||
</xpath>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user