work sale and purchase

This commit is contained in:
sonal arora
2020-09-04 18:25:47 +00:00
parent a8c3e9a5ef
commit 79d5143d31
20 changed files with 152 additions and 50 deletions

42
MKS_Tradex_Backend_2/\ Normal file
View 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>

View File

@@ -1,7 +1,7 @@
# Part of Odoo. See LICENSE file for full copyright and licensing details. # Part of Odoo. See LICENSE file for full copyright and licensing details.
{ {
'name': 'MKS Tradex Backend', 'name': 'MKS Tradex Backend',
'version': '13.0.1.0', 'version': '13.0.1.4',
'category': 'Operations/Purchase', 'category': 'Operations/Purchase',
'description': """ 'description': """
This module allows you to manage your Purchase Agreements flow. 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 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': [ 'data': [
'edi/mail_template.xml', 'edi/mail_template.xml',
'edi/purchase_mail_template.xml', 'edi/purchase_mail_template.xml',

View File

@@ -9,8 +9,8 @@ class purchase_order(models.Model):
state = fields.Selection([ state = fields.Selection([
('draft', 'RFQ'), ('draft', 'RFQ'),
('sent', 'RFQ Sent'), ('sent', 'RFQ Sent'),
('approved', 'RFQ Approved'), ('approved', 'RFQ Submitted To MGT'),
('po_approval', 'PO Approval'), ('po_approval', 'Approved By MGT'),
('to approve', 'To Approve'), ('to approve', 'To Approve'),
('purchase', 'Purchase Order'), ('purchase', 'Purchase Order'),
('done', 'Locked'), ('done', 'Locked'),

View File

@@ -5,12 +5,13 @@ from odoo import api, fields, models, SUPERUSER_ID, _
PURCHASE_REQUISITION_STATES = [ PURCHASE_REQUISITION_STATES = [
('draft', 'Draft'), ('draft', 'New'),
('approval', 'Approval'), ('approval', 'Pending PC Validation'),
('manager_approval','Manager Approval'), ('validate_by_pc','Validated By PC'),
('approved','Approved'), ('manager_approval','Submitted To MGT'),
('approved','Approved By MGT'),
('ongoing', 'Ongoing'), ('ongoing', 'Ongoing'),
('in_progress', 'Confirmed'), ('in_progress', 'Approved By MGT'),
('open', 'Bid Selection'), ('open', 'Bid Selection'),
('done', 'Closed'), ('done', 'Closed'),
('cancel', 'Cancelled'), ('cancel', 'Cancelled'),
@@ -105,6 +106,20 @@ class purchase_requisition(models.Model):
self.state = 'approval' self.state = 'approval'
def action_coordinator_approval(self): 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] group_id = self.env['ir.model.data'].get_object_reference('purchase', 'group_purchase_manager')[1]
if group_id: if group_id:
browse_group = self.env['res.groups'].browse(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}) mail_tem.write({'email_to': manager_mail})
self.state = 'manager_approval' self.state = 'manager_approval'
def action_manager_approval(self):
self.state = 'approved' def action_manager_approval(self):
self.state = 'manager_approval'

View File

@@ -10,15 +10,16 @@ class sale_order(models.Model):
# credit_controller_id = fields.Many2one('res.users',string="Credit Controller") # credit_controller_id = fields.Many2one('res.users',string="Credit Controller")
state = fields.Selection([ state = fields.Selection([
('draft', 'Quotation'), ('draft', 'new'),
('approval', 'RFQ approval'), ('approval', 'Submmited To MGT'),
('approved', 'RFQ Approved'), ('approved', 'Approved By MGT'),
('logistics_approval', 'Logistics Approval'), ('logistics_approval', 'Validated By Logistic'),
('logistics_approved', 'Logistics Approved'), ('logistics_approved', 'validated by logistic'),
('credit_approval', 'Credit Approval'), ('credit_approval', 'Validated By CC'),
('sent', 'Quotation Sent'), ('sent', 'Quotation Sent'),
('sale', 'Sales Order'), ('sale', 'Sales Order'),
('done', 'Locked'), ('done', 'Locked'),
('reject','Rejected By MGT'),
('cancel', 'Cancelled'), ('cancel', 'Cancelled'),
], string='Status', readonly=True, copy=False, index=True, tracking=3, default='draft') ], string='Status', readonly=True, copy=False, index=True, tracking=3, default='draft')
@@ -62,6 +63,15 @@ class sale_order(models.Model):
self.state = 'approved' self.state = 'approved'
return True 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): def action_logistics_approval(self):
group_id = self.env['ir.model.data'].get_object_reference('MKS_Tradex_Backend_2', 'group_sale_logistics')[1] group_id = self.env['ir.model.data'].get_object_reference('MKS_Tradex_Backend_2', 'group_sale_logistics')[1]
if group_id: if group_id:
@@ -101,3 +111,4 @@ class sale_order(models.Model):

View File

@@ -6,7 +6,7 @@ from odoo import api, fields, models, SUPERUSER_ID, _
class stock_picking(models.Model): class stock_picking(models.Model):
_inherit = "stock.picking" _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): def button_validate_qa_approval(self):

View File

@@ -1,11 +1,11 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<odoo> <odoo>
<data noupdate="0"> <data noupdate="0">
<!--
<record id="account.group_account_invoice" model="res.groups"> <record id="account.group_account_invoice" model="res.groups">
<field name="name">Accountant</field> <field name="name">Accountant</field>
</record> </record>
-->
<record id="account.group_account_manager" model="res.groups"> <record id="account.group_account_manager" model="res.groups">
<field name="name">Finance Manager</field> <field name="name">Finance Manager</field>
</record> </record>

6
MKS_Tradex_Backend_2/security/purchase_security.xml Normal file → Executable file
View File

@@ -27,7 +27,11 @@
<field name="name">Logistics and Warehouse Coordinator</field> <field name="name">Logistics and Warehouse Coordinator</field>
<field name="category_id" ref="base.module_category_sales_sales"/> <field name="category_id" ref="base.module_category_sales_sales"/>
<field name="implied_ids" eval="[(4, ref('sales_team.group_sale_salesman_all_leads'))]"/> <field name="implied_ids" eval="[(4, ref('sales_team.group_sale_salesman_all_leads'))]"/>
</record> </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"> <record id="group_credit_controller" model="res.groups">
<field name="name">Credit Controller</field> <field name="name">Credit Controller</field>

0
MKS_Tradex_Backend_2/views/account_move_views.xml Normal file → Executable file
View File

View File

@@ -1,10 +1,20 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<odoo> <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"> <record id="view_purchase_order_inherit_form" model="ir.ui.view">
<field name="name">view.purchase.order.inherit.form</field> <field name="name">view.purchase.order.inherit.form</field>
<field name="model">purchase.order</field> <field name="model">purchase.order</field>
<field name="inherit_id" ref="purchase.purchase_order_form"/> <field name="inherit_id" ref="purchase.purchase_order_form"/>
<field name="arch" type="xml"> <field name="arch" type="xml">
<xpath expr="//button[@name='print_quotation']" position="replace"> <xpath expr="//button[@name='print_quotation']" position="replace">
<button name="print_quotation" string="Print RFQ" type="object" states="approved" class="oe_highlight" groups="base.group_user"/> <button name="print_quotation" string="Print RFQ" type="object" states="approved" class="oe_highlight" groups="base.group_user"/>
</xpath> </xpath>
@@ -12,21 +22,21 @@
<xpath expr="//button[@name='action_rfq_send']" position="replace"> <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_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" <button name="action_manager_approval" states="draft" string="Submit To MGT"
type="object" class="oe_highlight" groups="purchase.group_purchase_manager"/> type="object" class="oe_highlight" groups="MKS_Tradex_Backend_2.group_purchase_coordinator"/>
</xpath> </xpath>
<xpath expr="//button[@id='bid_confirm']" position="replace"> <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>
<xpath expr="//button[@id='draft_confirm']" position="replace"> <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>
<xpath expr="//button[@name='print_quotation']" position="after"> <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>
<xpath expr="//button[@name='button_cancel']" position="replace"> <xpath expr="//button[@name='button_cancel']" position="replace">
<button name="button_cancel" states="draft,to approve,sent,purchase,po_approval" string="Cancel" type="object"/> <button name="button_cancel" states="draft,to approve,sent,purchase,po_approval" string="Cancel" type="object"/>

View File

@@ -1,5 +1,11 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<odoo> <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"> <record id="view_purchase_requisition_inherit_form" model="ir.ui.view">
<field name="name">view.purchase.requisition.inherit.form</field> <field name="name">view.purchase.requisition.inherit.form</field>
<field name="model">purchase.requisition</field> <field name="model">purchase.requisition</field>
@@ -7,27 +13,34 @@
<field name="arch" type="xml"> <field name="arch" type="xml">
<xpath expr="//header" position="replace"> <xpath expr="//header" position="replace">
<header> <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="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_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_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,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_cancel" states="draft,approval,approved,in_progress,ongoing" string="Cancel" type="object"/>
<button name="action_in_progress" states="approved" string="Confirm" type="object" class="btn-primary" <button name="action_in_progress" states="manager_approval" string="Approved By MGT" type="object" class="btn-primary"
groups="MKS_Tradex_Backend_2.group_purchase_coordinator"/> 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" 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')]}"/> <field name="state_blanket_order" widget="statusbar" statusbar_visible="draft,ongoing,done" attrs="{'invisible': [('is_quantity_copy', '!=', 'none')]}"/>
</header> </header>
</xpath> </xpath>
</field> <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> </record>

24
MKS_Tradex_Backend_2/views/sale_order_view.xml Normal file → Executable file
View File

@@ -5,30 +5,36 @@
<field name="model">sale.order</field> <field name="model">sale.order</field>
<field name="inherit_id" ref="sale.view_order_form"/> <field name="inherit_id" ref="sale.view_order_form"/>
<field name="arch" type="xml"> <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>
<xpath expr="//button[@name='action_quotation_send']" position="after"> <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>
<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"> <xpath expr="//button[@name='action_quotation_send']" position="replace">
<button name="action_quotation_send" string="Send by Email" type="object" states="approved" class="btn-primary"/> <button name="action_quotation_send" string="Send by Email" type="object" states="approved" class="btn-primary"/>
</xpath> </xpath>
<xpath expr="//button[@name='action_confirm']" position="after"> <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>
<!-- <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"> <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>
<xpath expr="//button[@name='action_confirm']" position="after"> <xpath expr="//button[@name='action_confirm']" position="after">

2
MKS_Tradex_Backend_2/views/stock_picking.xml Normal file → Executable file
View File

@@ -12,7 +12,7 @@
<xpath expr="//button[@name='button_scrap']" position="after"> <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> </xpath>