[IMP] sale: add improvements in fields & reporting in sale app

Improve following feature :

-  visible if someone signed the quotation and it should be readonly on the
    quotation.
-  make optional field "customer reference" in list view.
-  make optional field "Expiration" in list view.
-  add sub-menu under the reporting menu:
       1. "Sales" :- redirect to the current report.
       2. "Salespeople" :- redirect to the current report but grouped by
                           salesperson.
       3."products":- redirect to the current report with group by produts.
       4."Customer":- redirect to the report with group by customers.

task-3369999

closes odoo/odoo#133780

Related: odoo/enterprise#46641
Signed-off-by: Victor Feyens (vfe) <vfe@odoo.com>
This commit is contained in:
nikj-odoo
2023-10-06 18:18:26 +00:00
committed by Victor Feyens
parent 844448320d
commit 2719b2100d
3 changed files with 79 additions and 4 deletions
+55
View File
@@ -24,6 +24,31 @@
</field>
</record>
<record id="sale_report_graph_pie" model="ir.ui.view">
<field name="name">sale.report.graph.pie</field>
<field name="model">sale.report</field>
<field name="mode">primary</field>
<field name="inherit_id" ref="view_order_product_graph"/>
<field name="arch" type="xml">
<graph position="attributes">
<attribute name="type">pie</attribute>
</graph>
</field>
</record>
<record id="sale_report_graph_bar" model="ir.ui.view">
<field name="name">sale.report.graph.bar</field>
<field name="model">sale.report</field>
<field name="mode">primary</field>
<field name="inherit_id" ref="view_order_product_graph"/>
<field name="arch" type="xml">
<graph position="attributes">
<attribute name="type">bar</attribute>
<attribute name="order">DESC</attribute>
</graph>
</field>
</record>
<record id="sale_report_view_tree" model="ir.ui.view">
<field name="name">sale.report.view.tree</field>
<field name="model">sale.report</field>
@@ -105,6 +130,36 @@
<field name="help">This report performs analysis on your quotations and sales orders. Analysis check your sales revenues and sort it by different group criteria (salesman, partner, product, etc.) Use this report to perform analysis on sales not having invoiced yet. If you want to analyse your turnover, you should use the Invoice Analysis report in the Accounting application.</field>
</record>
<record id="action_order_report_salesperson" model="ir.actions.act_window">
<field name="name">Sales Analysis By Salespersons</field>
<field name="res_model">sale.report</field>
<field name="view_mode">graph,pivot</field>
<field name="view_id" ref="sale_report_graph_bar"/>
<field name="search_view_id" ref="view_order_product_search"/>
<field name="context">{'search_default_User': 1, 'group_by': 'user_id', 'search_default_filter_order_date': 1}</field>
<field name="help">This report performs analysis on your quotations and sales orders. Analysis check your sales revenues and sort it by different group criteria (salesman, partner, product, etc.) Use this report to perform analysis on sales not having invoiced yet. If you want to analyse your turnover, you should use the Invoice Analysis report in the Accounting application.</field>
</record>
<record id="action_order_report_products" model="ir.actions.act_window">
<field name="name">Sales Analysis Products</field>
<field name="res_model">sale.report</field>
<field name="view_mode">graph,pivot</field>
<field name="view_id" ref="sale_report_graph_pie"/>
<field name="search_view_id" ref="view_order_product_search"/>
<field name="context">{'search_default_Sales': 1, 'search_default_Product': 1, 'group_by_no_leaf':1, 'group_by': 'product_id', 'search_default_filter_order_date': 1}</field>
<field name="help">This report performs analysis on your quotations and sales orders. Analysis check your sales revenues and sort it by different group criteria (salesman, partner, product, etc.) Use this report to perform analysis on sales not having invoiced yet. If you want to analyse your turnover, you should use the Invoice Analysis report in the Accounting application.</field>
</record>
<record id="action_order_report_customers" model="ir.actions.act_window">
<field name="name">Sales Analysis By Customers</field>
<field name="res_model">sale.report</field>
<field name="view_mode">graph,pivot</field>
<field name="view_id" ref="sale_report_graph_bar"/>
<field name="search_view_id" ref="view_order_product_search"/>
<field name="context">{'search_default_Customer': 1, 'group_by': 'partner_id', 'search_default_filter_order_date': 1}</field>
<field name="help">This report performs analysis on your quotations and sales orders. Analysis check your sales revenues and sort it by different group criteria (salesman, partner, product, etc.) Use this report to perform analysis on sales not having invoiced yet. If you want to analyse your turnover, you should use the Invoice Analysis report in the Accounting application.</field>
</record>
<record id="report_all_channels_sales_action" model="ir.actions.act_window">
<field name="name">Sales Analysis</field>
<field name="res_model">sale.report</field>
+20 -2
View File
@@ -72,9 +72,27 @@
<menuitem id="menu_sale_report"
name="Reporting"
action="action_order_report_all"
groups="sales_team.group_sale_manager"
sequence="40"/>
sequence="40">
<menuitem id="menu_reporting_sales"
name="Sales"
action="action_order_report_all"
sequence="10"/>
<menuitem id="menu_reporting_salespeople"
name="Salespersons"
action="action_order_report_salesperson"
sequence="20"/>
<menuitem id="menu_reporting_product"
name="Products"
action="action_order_report_products"
sequence="30"/>
<menuitem id="menu_reporting_customer"
name="Customers"
action="action_order_report_customers"
sequence="40"/>
</menuitem>
<menuitem id="menu_sale_config"
name="Configuration"
+4 -2
View File
@@ -166,6 +166,8 @@
widget="badge"
optional="show"/>
<field name="amount_to_invoice" optional="hide"/>
<field name="client_order_ref" optional="hide"/>
<field name="validity_date" optional="hide"/>
</tree>
</field>
</record>
@@ -731,8 +733,8 @@
</page>
<page groups="base.group_no_one" string="Customer Signature" name="customer_signature" invisible="not require_signature and not signed_by and not signature and not signed_on">
<group>
<field name="signed_by"/>
<field name="signed_on"/>
<field name="signed_by" readonly="signature"/>
<field name="signed_on" readonly="signature"/>
<field name="signature" widget="image"/>
</group>
</page>