diff --git a/addons/stock/report/report_stock_picking.py b/addons/stock/report/report_stock_picking.py index 2fe450d60de..d4ddd0509d2 100644 --- a/addons/stock/report/report_stock_picking.py +++ b/addons/stock/report/report_stock_picking.py @@ -26,38 +26,51 @@ class report_stock_picking(osv.osv): _description = "Stock Picking Report" _auto = False _columns = { - 'name': fields.char('Year',size=64,required=False, readonly=True), + 'year': fields.char('Year',size=64,required=False, readonly=True), 'month':fields.selection([('01','January'), ('02','February'), ('03','March'), ('04','April'), ('05','May'), ('06','June'), ('07','July'), ('08','August'), ('09','September'), ('10','October'), ('11','November'), ('12','December')],'Month',readonly=True), + 'day': fields.char('Day', size=128, readonly=True), 'reference': fields.char('Reference', size=64, select=True), - 'nbr': fields.integer('# of Orders', readonly=True), + 'nbr': fields.integer('# of Lines', readonly=True), + 'partner_id':fields.many2one('res.partner', 'Partner', readonly=True), + 'product_id': fields.many2one('product.product', 'Product', readonly=True), + 'product_qty': fields.float('# of Products', readonly=True), + 'date': fields.date('Date', readonly=True), + 'avg_days_to_deliver': fields.float('Avg Days to Deliver', digits=(16,2), readonly=True, group_operator="avg", + help="Number of Avg Days to deliver"), 'origin': fields.char('Origin', size=64), - 'order_date':fields.date('Order Date'), 'state': fields.selection([('draft', 'Draft'),('auto', 'Waiting'),('confirmed', 'Confirmed'),('assigned', 'Available'),('done', 'Done'),('cancel', 'Cancelled')], 'State'), 'type': fields.selection([('out', 'Sending Goods'), ('in', 'Getting Goods'), ('internal', 'Internal'), ('delivery', 'Delivery')], 'Shipping Type', required=True), - 'address_id': fields.many2one('res.partner.address', 'Partner'), - 'expected_date': fields.date('Expected Date'), - } def init(self, cr): tools.drop_view_if_exists(cr, 'report_stock_picking') cr.execute(""" create or replace view report_stock_picking as ( select - min(c.id) as id, - to_char(c.create_date, 'YYYY') as name, - to_char(c.create_date, 'MM') as month, - c.name as reference, - c.origin, - c.state, - c.type, - c.address_id, - to_date(to_char(c.date, 'MM-dd-YYYY'),'MM-dd-YYYY') as order_date, - to_date(to_char(c.min_date, 'MM-dd-YYYY'),'MM-dd-YYYY') as expected_date, - count(*) as nbr - from - stock_picking c - group by to_char(c.create_date, 'YYYY'), to_char(c.create_date, 'MM'),c.name,c.origin,c.date,c.state,c.type,c.address_id,c.min_date + min(sm.id) as id, + to_char(sp.create_date, 'YYYY') as year, + to_char(sp.create_date, 'MM') as month, + to_char(sp.create_date, 'YYYY-MM-DD') as day, + sp.address_id as partner_id, + to_date(to_char(sp.create_date, 'MM-dd-YYYY'),'MM-dd-YYYY') as date, + count(sm.id) as nbr, + sm.product_id, + sum(sm.product_qty) as product_qty, + sp.type, + sp.name as reference, + sp.origin, + avg(extract('epoch' from (sp.date_done-sp.create_date)))/(3600*24) as avg_days_to_deliver, + sp.state + from stock_move as sm + left join stock_picking as sp ON (sm.picking_id=sp.id) + group by sp.type, + sp.create_date, + sm.product_id, + sp.address_id, + sp.name, + sp.origin, + sp.state + )""") report_stock_picking() # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/stock/report/report_stock_picking_view.xml b/addons/stock/report/report_stock_picking_view.xml index 3cb407a9ccb..c7a82ebc863 100644 --- a/addons/stock/report/report_stock_picking_view.xml +++ b/addons/stock/report/report_stock_picking_view.xml @@ -11,32 +11,22 @@ tree - - - - - - + + + + + + + + + - - - - + + + - - report.stock.picking.form - report.stock.picking - form - -
- - - - - -
report.stock.picking.graph @@ -44,8 +34,9 @@ graph - + + @@ -57,38 +48,33 @@ - - + + - - - + + + + - - - - - - - - - - - - + + + + + + + + + @@ -100,7 +86,7 @@ tree,graph - {'search_default_State': 1} + {'search_default_Partner': 1,'search_default_month': 1}