[IMP] improving Sales Statistics
bzr revid: fp@tinyerp.com-20100304065440-6hg532wjiasx6zu7
This commit is contained in:
parent
5d62aa1469
commit
64a92b687c
|
@ -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','>=',time.strftime('%Y-%m-01')),('state','<>','draft'),('state','<>','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>
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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"/>
|
||||
|
|
Loading…
Reference in New Issue