Browse Source

[INIT]Initial Commit

pull/124/head
Sreejith P 7 years ago
parent
commit
a770a71610
  1. 53
      hr_payslip_monthly_report/README.rst
  2. 24
      hr_payslip_monthly_report/__init__.py
  3. 45
      hr_payslip_monthly_report/__manifest__.py
  4. 45
      hr_payslip_monthly_report/__manifest__.py~
  5. 27
      hr_payslip_monthly_report/models/__init__.py
  6. 71
      hr_payslip_monthly_report/models/hr_payroll_report.py
  7. 2
      hr_payslip_monthly_report/security/ir.model.access.csv
  8. BIN
      hr_payslip_monthly_report/static/description/HR Payslip Report view.png
  9. BIN
      hr_payslip_monthly_report/static/description/HR report group by.png
  10. BIN
      hr_payslip_monthly_report/static/description/Payslip Graph Report.png
  11. BIN
      hr_payslip_monthly_report/static/description/banner.jpg
  12. BIN
      hr_payslip_monthly_report/static/description/cybro_logo.png
  13. BIN
      hr_payslip_monthly_report/static/description/icon.png
  14. 124
      hr_payslip_monthly_report/static/description/index.html
  15. 76
      hr_payslip_monthly_report/views/menu_payslip_report.xml
  16. 112
      hr_payslip_monthly_report/views/quotation_handler.xml~

53
hr_payslip_monthly_report/README.rst

@ -0,0 +1,53 @@
Payroll-Payslip Reporting v12
=============================
This Module help Human resource managers to get a over all view for the payslips as pivot
Features
========
* Pivot view for HR payslips.
* Group By options like Employee wise, department wise, job title wise, date wise, status wise and Company wise.
* Spot Export to XLS Report.
Depends
=======
[hr_payroll] addon Odoo
Tech
====
* [XML] - Odoo views
Installation
============
- www.odoo.com/documentation/12.0/setup/install.html
- Install our custom addon
License
=======
GNU LGPL, Version 3 (LGPLv3)
(http://www.gnu.org/licenses/agpl.html)
Bug Tracker
===========
Contact odoo@cybrosys.com
Authors
-------
* Nikhil Krishnan <nikhil@cybrosys.in>
* Niyas Raphy <niyas@cybrosys.in>
Maintainer
----------
This module is maintained by Cybrosys Technologies.
For support and more information, please visit https://www.cybrosys.com.

24
hr_payslip_monthly_report/__init__.py

@ -0,0 +1,24 @@
# -*- coding: utf-8 -*-
##############################################################################
# Cybrosys Technologies Pvt. Ltd.
# Copyright (C) 2018-TODAY Cybrosys Technologies(<https://www.cybrosys.com>).
# Author: Cybrosys Technologies(<https://www.cybrosys.com>)
# you can modify it under the terms of the GNU LESSER
# GENERAL PUBLIC LICENSE (LGPL v3), Version 3.
#
# It is forbidden to publish, distribute, sublicense, or sell copies
# of the Software or modified copies of the Software.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details.
#
# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE
# GENERAL PUBLIC LICENSE (LGPL v3) along with this program.
# If not, see <https://www.gnu.org/licenses/>.
#
##############################################################################
from . import models

45
hr_payslip_monthly_report/__manifest__.py

@ -0,0 +1,45 @@
# -*- coding: utf-8 -*-
##############################################################################
# Cybrosys Technologies Pvt. Ltd.
# Copyright (C) 2018-TODAY Cybrosys Technologies(<https://www.cybrosys.com>).
# Author: Cybrosys Technologies(<https://www.cybrosys.com>)
# you can modify it under the terms of the GNU LESSER
# GENERAL PUBLIC LICENSE (LGPL v3), Version 3.
#
# It is forbidden to publish, distribute, sublicense, or sell copies
# of the Software or modified copies of the Software.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details.
#
# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE
# GENERAL PUBLIC LICENSE (LGPL v3) along with this program.
# If not, see <https://www.gnu.org/licenses/>.
#
##############################################################################
{
'name': 'Payroll-Payslip Reporting',
'version': '12.0.1.0.0',
'summary': """Payslip Pivot View Report.""",
'description': """Payslip monthly report.
This module gives a pivot view for the HR managers. they can see all the 'NET' amount of payslips in all states""",
'author': 'Cybrosys Techno Solutions',
'company': 'Cybrosys Techno Solutions',
'maintainer': 'Cybrosys Techno Solutions',
'website': 'https://www.cybrosys.com',
'category': 'Generic Modules/Human Resources',
'depends': ['hr_payroll'],
'license': 'LGPL-3',
'data': [
'security/ir.model.access.csv',
'views/menu_payslip_report.xml'
],
'demo': [],
'images': ['static/description/banner.jpg'],
'installable': True,
'auto_install': False,
}

45
hr_payslip_monthly_report/__manifest__.py~

@ -0,0 +1,45 @@
# -*- coding: utf-8 -*-
##############################################################################
#
# Cybrosys Technologies Pvt. Ltd.
# Copyright (C) 2017-TODAY Cybrosys Technologies(<http://www.cybrosys.com>).
# Author: Nikhil krishnan(<http://www.cybrosys.com>)
# you can modify it under the terms of the GNU LESSER
# GENERAL PUBLIC LICENSE (LGPL v3), Version 3.
#
# It is forbidden to publish, distribute, sublicense, or sell copies
# of the Software or modified copies of the Software.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details.
#
# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE
# GENERAL PUBLIC LICENSE (LGPL v3) along with this program.
# If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
{
'name': 'Payroll-Payslip Reporting',
'version': '10.0.1.0.0',
'summary': """Payslip Pivot View Report.""",
'description': """Payslip monthly report.
This module gives a pivot view for the HR managers. they can see all the 'NET' amount of payslips in all states""",
'author': 'Cybrosys Techno Solutions',
'company': 'Cybrosys Techno Solutions',
'website': 'http://www.cybrosys.com',
'category': 'Human Resources',
'depends': ['hr_payroll'],
'license': 'LGPL-3',
'data': [
'security/ir.model.access.csv',
'views/menu_payslip_report.xml'
],
'demo': [],
'images': ['static/description/banner.jpg'],
'installable': True,
'auto_install': False,
}

27
hr_payslip_monthly_report/models/__init__.py

@ -0,0 +1,27 @@
# -*- coding: utf-8 -*-
##############################################################################
#
# Cybrosys Technologies Pvt. Ltd.
# Copyright (C) 2018-TODAY Cybrosys Technologies(<https://www.cybrosys.com>).
# Author: Cybrosys Technologies(<https://www.cybrosys.com>)
# you can modify it under the terms of the GNU LESSER
# GENERAL PUBLIC LICENSE (LGPL v3), Version 3.
#
# It is forbidden to publish, distribute, sublicense, or sell copies
# of the Software or modified copies of the Software.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details.
#
# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE
# GENERAL PUBLIC LICENSE (LGPL v3) along with this program.
# If not, see <https://www.gnu.org/licenses/>.
#
##############################################################################
from . import hr_payroll_report

71
hr_payslip_monthly_report/models/hr_payroll_report.py

@ -0,0 +1,71 @@
# -*- coding: utf-8 -*-
##############################################################################
#
# Cybrosys Technologies Pvt. Ltd.
# Copyright (C) 2018-TODAY Cybrosys Technologies(<https://www.cybrosys.com>).
# Author: Cybrosys Technologies(<https://www.cybrosys.com>)
# you can modify it under the terms of the GNU LESSER
# GENERAL PUBLIC LICENSE (LGPL v3), Version 3.
#
# It is forbidden to publish, distribute, sublicense, or sell copies
# of the Software or modified copies of the Software.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details.
#
# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE
# GENERAL PUBLIC LICENSE (LGPL v3) along with this program.
# If not, see <https://www.gnu.org/licenses/>.
#
##############################################################################
from odoo import fields, models, tools, api
class PayrollReportView(models.Model):
_name = 'hr.payroll.report.view'
_auto = False
name = fields.Many2one('hr.employee', string='Employee')
date_from = fields.Date(string='From')
date_to = fields.Date(string='To')
state = fields.Selection([('draft', 'Draft'), ('verify', 'Waiting'), ('done', 'Done'), ('cancel', 'Rejected')],
string='Status')
job_id = fields.Many2one('hr.job', string='Job Title')
company_id = fields.Many2one('res.company', string='Company')
department_id = fields.Many2one('hr.department', string='Department')
net = fields.Float(string='Net Salary')
def _select(self):
select_str = """
min(ps.id) as id,emp.id as name,jb.id as job_id,
dp.id as department_id,cmp.id as company_id,
ps.date_from, ps.date_to, sum(psl.total) as net, ps.state as state
"""
return select_str
def _from(self):
from_str = """
hr_payslip_line psl join hr_payslip ps on (ps.employee_id=psl.employee_id and ps.id=psl.slip_id)
join hr_employee emp on (ps.employee_id=emp.id) join hr_department dp on (emp.department_id=dp.id)
join hr_job jb on (emp.department_id=jb.id) join res_company cmp on (cmp.id=ps.company_id) where psl.code='NET'
"""
return from_str
def _group_by(self):
group_by_str = """
group by emp.id,psl.total,ps.date_from, ps.date_to, ps.state,jb.id,dp.id,cmp.id
"""
return group_by_str
@api.model_cr
def init(self):
tools.drop_view_if_exists(self.env.cr, self._table)
self.env.cr.execute("""CREATE or REPLACE VIEW %s as ( SELECT
%s
FROM %s
%s
)""" % (self._table, self._select(), self._from(), self._group_by()))

2
hr_payslip_monthly_report/security/ir.model.access.csv

@ -0,0 +1,2 @@
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_hr_payslip_monthly_report_manager,hr.payroll.report.view,hr_payslip_monthly_report.model_hr_payroll_report_view,hr.group_hr_manager,1,1,1,1
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
2 access_hr_payslip_monthly_report_manager hr.payroll.report.view hr_payslip_monthly_report.model_hr_payroll_report_view hr.group_hr_manager 1 1 1 1

BIN
hr_payslip_monthly_report/static/description/HR Payslip Report view.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 71 KiB

BIN
hr_payslip_monthly_report/static/description/HR report group by.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

BIN
hr_payslip_monthly_report/static/description/Payslip Graph Report.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

BIN
hr_payslip_monthly_report/static/description/banner.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 124 KiB

BIN
hr_payslip_monthly_report/static/description/cybro_logo.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

BIN
hr_payslip_monthly_report/static/description/icon.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

124
hr_payslip_monthly_report/static/description/index.html

@ -0,0 +1,124 @@
<section class="oe_container">
<div class="oe_row oe_spaced">
<h2 class="oe_slogan">Payroll-Payslip Reporting</h2>
<h3 class="oe_slogan">Get an overview of the pay slips as pivot</h3>
<h4 class="oe_slogan">Author : Cybrosys Techno Solutions , www.cybrosys.com</h4>
<div>
<h4><p>Features:</p></h4>
<ul>
<li style="list-style:none !important;"><span style="color:green;"> &#9745;</span>&nbsp;&nbsp; <b>Retrieve pivot view of pay slips.</b></li>
<li style="list-style:none !important;"><span style="color:green; "> &#9745;</span>&nbsp;&nbsp; <b>Able to get Reports</b> </li>
<ul style="padding-left: 36px;padding-top: 2px;">
<li style="list-style:outside !important;">Employee wise,</li>
<li style="list-style:outside !important;">Employee's department wise,</li>
<li style="list-style:outside !important;">Employee's job title wise,</li>
<li style="list-style:outside !important;">Pay slip's date wise,</li>
<li style="list-style:outside !important;">Pay slip's status wise,</li>
<li style="list-style:outside !important;">Company wise.</li>
</ul>
<li style="list-style:none !important;"><span style="color:green;"> &#9745;</span>&nbsp;&nbsp; <b>Spot Export to XLS Report.</b></li>
</ul>
</div>
</div>
</section>
<section class="oe_container oe_dark">
<div class="oe_row oe_spaced">
<h2 class="oe_slogan">Payroll Monthly Statement in Pivot View</h2>
<div class="oe_row oe_spaced">
<div class="oe_span12">
<p class="oe_mt32">
This report helps in payroll analysis. This helps you to check your pay slips and sorting it out from different group
criteria (Employee, Job title, Department, Company, Pay slip etc.).
</p>
</div>
</div>
</div>
</section>
<section class="oe_container">
<div class="oe_row oe_spaced">
<h3 class="oe_slogan">Payroll report as Pivot</h3>
<div class="oe_row oe_spaced">
<div class="oe_span12">
<div class="oe_row_img oe_centered">
<img class="oe_picture oe_screenshot" src="HR Payslip Report view.png">
</div>
</div>
<div class="oe_span12">
<p class="oe_mt32">
HR managers need a complete payroll statement and also payroll monthly statement. From
this pivot view we can easily generate the custom payroll report views in excel format. Also
we can download it from there. From Odoo payroll report we can get only individual employee
pay slip reports. To make the use of HR payroll management system easier we can use this pivot
view to get the payroll/pay slip statement.
</p>
</div>
</div>
</div>
</section>
<section class="oe_container oe_dark">
<div class="oe_row oe_spaced">
<h3 class="oe_slogan">Group by the pivot view</h3>
<div class="oe_row oe_spaced">
<div class="oe_span12">
<div class="oe_row_img oe_centered">
<img class="oe_picture oe_screenshot" src="HR report group by.png">
</div>
</div>
<div class="oe_span12">
<p class="oe_mt32">
In this View we can easily generate custom reports by using the + button,
That is we can make the filters by groups, also we can get the counts too, from the "Measures" Button
</p>
</div>
</div>
</div>
</section>
<section class="oe_container">
<div class="oe_row oe_spaced">
<h3 class="oe_slogan">Graph View</h3>
<div class="oe_row oe_spaced">
<div class="oe_span12">
<div class="oe_row_img oe_centered">
<img class="oe_picture oe_screenshot" src="Payslip Graph Report.png">
</div>
</div>
<div class="oe_span12">
<p class="oe_mt32">
In Pivot view we can easily generate custom Graphs like Pie Chart,Bar Chart, Line Chart.
With date and net salary or date and pay slip's counts.
</p>
</div>
</div>
</div>
</section>
<section class="oe_container oe_dark">
<h2 class="oe_slogan" style="margin-top:20px;" >Need Any Help?</h2>
<div class="oe_slogan" style="margin-top:10px !important;">
<div>
<a class="btn btn-primary btn-lg mt8"
style="color: #FFFFFF !important;border-radius: 0;" href="http://www.cybrosys.com"><i
class="fa fa-envelope"></i> Email </a> <a
class="btn btn-primary btn-lg mt8" style="color: #FFFFFF !important;border-radius: 0;"
href="http://www.cybrosys.com/contact/"><i
class="fa fa-phone"></i> Contact Us </a> <a
class="btn btn-primary btn-lg mt8" style="color: #FFFFFF !important;border-radius: 0;"
href="http://www.cybrosys.com/odoo-customization-and-installation/"><i
class="fa fa-check-square"></i> Request Customization </a>
</div>
<br>
<img src="cybro_logo.png" style="width: 190px; margin-bottom: 20px;" class="center-block">
<div>
<a href="https://twitter.com/cybrosys" target="_blank"><i class="fa fa-2x fa-twitter" style="color:white;background: #00a0d1;width:35px;"></i></a></td>
<a href="https://www.linkedin.com/company/cybrosys-technologies-pvt-ltd" target="_blank"><i class="fa fa-2x fa-linkedin" style="color:white;background: #31a3d6;width:35px;padding-left: 3px;"></i></a></td>
<a href="https://www.facebook.com/cybrosystechnologies" target="_blank"><i class="fa fa-2x fa-facebook" style="color:white;background: #3b5998;width:35px;padding-left: 8px;"></i></a></td>
<a href="https://plus.google.com/106641282743045431892/about" target="_blank"><i class="fa fa-2x fa-google-plus" style="color:white;background: #c53c2c;width:35px;padding-left: 3px;"></i></a></td>
<a href="https://in.pinterest.com/cybrosys" target="_blank"><i class="fa fa-2x fa-pinterest" style="color:white;background: #ac0f18;width:35px;padding-left: 3px;"></i></a></td>
</div>
</div>
</section>

76
hr_payslip_monthly_report/views/menu_payslip_report.xml

@ -0,0 +1,76 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data>
<record id="hr_payroll_report_view_pivot" model="ir.ui.view">
<field name="name">hr.payslip.pivot</field>
<field name="model">hr.payroll.report.view</field>
<field name="arch" type="xml">
<pivot string="Payslip Analysis">
<field name="name" type="row"/>
<field name="date_from" interval="month" type="col"/>
<field name="net" type="measure"/>
</pivot>
</field>
</record>
<record id="hr_payroll_report_view_graph" model="ir.ui.view">
<field name="name">hr.payslip.graph</field>
<field name="model">hr.payroll.report.view</field>
<field name="arch" type="xml">
<graph string="Payslip Analysis">
<field name="date_from" type="row"/>
<field name="net" type="measure"/>
</graph>
</field>
</record>
<record id="hr_payroll_report_view_search" model="ir.ui.view">
<field name="name">hr.payslip.search</field>
<field name="model">hr.payroll.report.view</field>
<field name="arch" type="xml">
<search string="Payslip Analysis">
<field name="name"/>
<field name="date_from"/>
<field name="company_id" groups="base.group_multi_company"/>
<filter string="This Year" name="year" domain="[('date_from','&lt;=', time.strftime('%%Y-12-31')),('date_from','&gt;=',time.strftime('%%Y-01-01')),('date_to','&lt;=', time.strftime('%%Y-12-31')),('date_to','&gt;=',time.strftime('%%Y-01-01'))]"/>
<filter name="Salary" string="Salary" domain="[('state','=', 'done')]"/>
<filter name="Draft" string="Draft" domain="[('state','=','draft')]"/>
<separator/>
<field name="department_id"/>
<group expand="1" string="Group By">
<filter string="Employee" name="Employee" context="{'group_by':'name'}"/>
<filter string="Job" name="job" context="{'group_by':'job_id'}"/>
<filter string="Department" name="department" context="{'group_by':'department_id'}"/>
<filter name="status" string="Status" context="{'group_by':'state'}"/>
<filter string="Company" name="company" groups="base.group_multi_company" context="{'group_by':'company_id'}"/>
</group>
</search>
</field>
</record>
<record id="action_hr_payslip_view_report" model="ir.actions.act_window">
<field name="res_model">hr.payroll.report.view</field>
<field name="name">Payslips</field>
<field name="view_type">form</field>
<field name="view_mode">pivot,graph</field>
<field name="context">{'search_default_year':1}</field>
<field name="help">This report helps in payroll analysis. This helps you to check your pay slips and sorting it out from different group
criteria (Employee, Job title, Department, Company, Pay slip etc.).</field>
</record>
<menuitem
name="Reports"
id="menu_hr_payslip_reports"
parent="hr_payroll.menu_hr_payroll_root" />
<menuitem
id="menu_hr_payslip_view_report"
name="Payslip Report"
parent="menu_hr_payslip_reports"
action="action_hr_payslip_view_report"
groups="hr.group_hr_manager"
sequence="10"/>
</data>
</odoo>

112
hr_payslip_monthly_report/views/quotation_handler.xml~

@ -0,0 +1,112 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data>
<record id="act_sale_order_2_revised" model="ir.actions.act_window">
<field name="name">Revised Quotation Orders</field>
<field name="res_model">sale.order</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="view_id" ref="sale.view_quotation_tree"/>
<field name="domain">[('parent_so_id', '=', active_id)]</field>
<field name="help" type="html">
<p class="oe_view_nocontent_create">
Revised order against this Quotation Order.
</p>
</field>
</record>
<!--In sale order menu, we need to avoid the 'revised' state orders. -->
<record id="sale.action_orders" model="ir.actions.act_window">
<field name="name">Sales Orders</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">sale.order</field>
<field name="view_type">form</field>
<field name="view_mode">tree,kanban,form,calendar,pivot,graph</field>
<field name="search_view_id" ref="sale.sale_order_view_search_inherit_sale"/>
<field name="context">{}</field>
<field name="domain">[('state', 'not in', ('draft','revised','sent', 'cancel'))]</field>
<field name="help" type="html">
<p class="oe_view_nocontent_create">
Create a Quotation, the first step of a new sale.
</p><p>
Once the quotation is confirmed, it becomes a sales order.
You'll be able to invoice it and collect payments.
From the <i>Sales Orders</i> menu, you can track delivery
orders or services.
</p>
</field>
</record>
<record id="sale.action_quotations" model="ir.actions.act_window">
<field name="name">Quotations</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">sale.order</field>
<field name="view_type">form</field>
<field name="view_id" ref="sale.view_quotation_tree"/>
<field name="view_mode">tree,kanban,form,calendar,pivot,graph</field>
<field name="context">{}</field>
<field name="domain">[('state','in',('pre','draft','sent','cancel'))]</field>
<field name="search_view_id" ref="sale.view_sales_order_filter"/>
<field name="help" type="html">
<p class="oe_view_nocontent_create">
Create a Quotation, the first step of a new sale.
</p><p>
Your next actions should flow efficiently: confirm the Quotation
to a Sale Order, then create the Invoice and collect the Payment.
</p><p>
Note that once a Quotation becomes a Sale Order, it will be moved
from the Quotations list to the Sales Order list.
</p>
</field>
</record>
<record id="view_order_form_revised" model="ir.ui.view">
<field name="name">sale.order.form</field>
<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']" position="after">
<button name="make_revision" string="Revise the Quotation" type="object" states="sent" class="btn-primary"/>
<button name="action_quotation_send" string="Send by Email" type="object" states="pre" class="btn-primary"/>
<button name="print_quotation" string="Print" type="object" states="pre" class="btn-primary"/>
<button name="action_cancel" states="pre" type="object" string="Cancel"/>
</xpath>
<xpath expr="//div[@name='button_box']" position="inside">
<button class="oe_inline oe_stat_button" type="action" name="%(act_sale_order_2_revised)d"
icon="fa-bars" attrs="{'invisible':[('state','in',[('draft','revised')]}">
<field string="Revised Quotation Orders" name="revised_order_count" widget="statinfo"/>
</button>
</xpath>
<xpath expr="//field[@name='order_line']" position="attributes">
<attribute name="attrs">{'readonly': [('state', 'in', ('sent','revised','done','cancel'))]}</attribute>
</xpath>
<xpath expr="//field[@name='payment_term_id']" position="attributes">
<attribute name="attrs">{'readonly': [('state', 'in', ('sent','revised','done','cancel'))]}</attribute>
</xpath>
<xpath expr="//field[@name='user_id']" position="attributes">
<attribute name="attrs">{'readonly': [('state', 'in', ('sent','revised','done','cancel'))]}</attribute>
</xpath>
<xpath expr="//field[@name='team_id']" position="attributes">
<attribute name="attrs">{'readonly': [('state', 'in', ('sent','revised','done','cancel'))]}</attribute>
</xpath>
</field>
</record>
<record id="view_quotation_handler_tree" model="ir.ui.view">
<field name="name">sale.order.tree</field>
<field name="model">sale.order</field>
<field name="inherit_id" ref="sale.view_quotation_tree" />
<field name="arch" type="xml">
<xpath expr="//field[@name='state']" position="replace">
<field name="state"/>
</xpath>
</field>
</record>
</data>
</odoo>
Loading…
Cancel
Save