[IMP] improving Sales Statistics

bzr revid: fp@tinyerp.com-20100304065440-6hg532wjiasx6zu7
This commit is contained in:
Fabien Pinckaers 2010-03-04 07:54:40 +01:00
parent 5d62aa1469
commit 64a92b687c
3 changed files with 5 additions and 86 deletions

View File

@ -1,89 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<record id="view_sale_order_report_tree" model="ir.ui.view">
<field name="name">report.sale.order.tree</field>
<field name="model">sale.order</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="Sale Orders">
<field name="name"/>
<field name="partner_id"/>
<field name="date_order"/>
<field name="invoiced_rate" widget="progressbar"/>
<field name="picked_rate" widget="progressbar"/>
<field name="amount_untaxed"/>
<field name="amount_tax"/>
<field name="amount_total" sum="Total Amount"/>
<field name="state"/>
</tree>
</field>
</record>
<record id="action_sale_order_report_all" model="ir.actions.act_window">
<field name="name">Sale Orders By Partner </field>
<field name="res_model">sale.order</field>
<field name="view_type">form</field>
<field name="view_mode">graph,tree</field>
<field name="context">{'report':True}</field>
<field name="domain">[('date_order','&gt;=',time.strftime('%Y-%m-01')),('state','&lt;&gt;','draft'),('state','&lt;&gt;','cancel')]</field>
<field name="search_view_id" ref="sale.view_sales_order_filter"/>
</record>
<record model="ir.actions.act_window.view" id="action_sale_order_01">
<field name="sequence" eval="2"/>
<field name="view_mode">tree</field>
<field name="view_id" ref="sale.view_sale_order_report_tree"/>
<field name="act_window_id" ref="action_sale_order_report_all"/>
</record>
<record model="ir.actions.act_window.view" id="action_sale_order_02">
<field name="sequence" eval="1"/>
<field name="view_mode">graph</field>
<field name="view_id" ref="sale.view_sale_order_graph"/>
<field name="act_window_id" ref="action_sale_order_report_all"/>
</record>
<!-- Sale Orders by Product-->
<record id="view_order_report_tree" model="ir.ui.view">
<field name="name">report.sale.order.line.tree</field>
<field name="model">sale.order.line</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="Sale Orders by Product">
<field name="order_id"/>
<field name="product_uom_qty" />
<field name="product_uos_qty"/>
<field name="product_uos"/>
<field name="product_id"/>
<field name="price_unit" />
<field name="price_net"/>
<field name="price_subtotal" sum="Total"/>
<field name="state"/>
</tree>
</field>
</record>
<record id="action_order_report_tree_all" model="ir.actions.act_window">
<field name="name">Sale Orders by Product</field>
<field name="res_model">sale.order.line</field>
<field name="view_type">form</field>
<field name="view_mode">graph,tree</field>
<field name="context">{'report':True}</field>
<field name="domain">[('product_uom_qty','!=','0')]</field>
<field name="search_view_id" ref="sale.view_sales_order_line_filter"/>
</record>
<record model="ir.actions.act_window.view" id="action_order_product01">
<field name="sequence" eval="2"/>
<field name="view_mode">tree</field>
<field name="view_id" ref="view_order_report_tree"/>
<field name="act_window_id" ref="action_order_report_tree_all"/>
</record>
<record model="ir.actions.act_window.view" id="action_order_product02">
<field name="sequence" eval="1"/>
<field name="view_mode">graph</field>
<field name="view_id" ref="sale.view_order_line_graph"/>
<field name="act_window_id" ref="action_order_report_tree_all"/>
</record>
</data>
</openerp>
</data>
</openerp>

View File

@ -35,13 +35,13 @@ class sale_report(osv.osv):
('05','May'), ('06','June'), ('07','July'), ('08','August'), ('09','September'),
('10','October'), ('11','November'), ('12','December')], 'Month',readonly=True),
'product_id':fields.many2one('product.product', 'Product', readonly=True),
'product_uom':fields.many2one('product.uom', 'UoM', readonly=True),
'product_qty':fields.float('Qty', readonly=True),
'partner_id':fields.many2one('res.partner', 'Partner', readonly=True),
'shop_id':fields.many2one('sale.shop', 'Shop', readonly=True),
'company_id':fields.many2one('res.company', 'Company', readonly=True),
'user_id':fields.many2one('res.users', 'Salesman', readonly=True),
'price_total':fields.float('Total Price', readonly=True),
'delay':fields.float('Avg Closing Days', digits=(16,2), readonly=True),
'price_average':fields.float('Average Price', readonly=True),
'nbr':fields.integer('# of Lines', readonly=True),
'state': fields.selection([
@ -71,6 +71,7 @@ class sale_report(osv.osv):
s.user_id as user_id,
s.shop_id as shop_id,
s.company_id as company_id,
extract(epoch from avg(s.date_confirm-s.create_date))/(24*60*60)::decimal(16,2) as delay,
sum(l.product_uom_qty*l.price_unit) as price_total,
(sum(l.product_uom_qty*l.price_unit)/sum(l.product_uom_qty * u.factor))::decimal(16,2) as price_average,
count(*) as nbr,

View File

@ -16,6 +16,7 @@
<field name="partner_id"/>
<field name="product_id"/>
<field name="product_qty"/>
<field name="delay" avg="Days to Close"/>
<field name="nbr" sum="# of Lines"/>
<field name="price_average" avg="Average Price"/>
<field name="price_total" sum="Total Price"/>