From acd22690a52f5a19bcef43f16c5d52e52fb7d0bc Mon Sep 17 00:00:00 2001 From: Cedric Snauwaert Date: Mon, 16 Sep 2013 16:38:49 +0200 Subject: [PATCH] [FIX]stock: fix picking kanban view to show correct view when clicking button and have correct percentage of late/backorders picking bzr revid: csn@openerp.com-20130916143849-lw3as1rayo74v30s --- addons/stock/stock.py | 18 ++++++++---- addons/stock/stock_view.xml | 57 +++++++++++++++++++++++++++++++++---- 2 files changed, 64 insertions(+), 11 deletions(-) diff --git a/addons/stock/stock.py b/addons/stock/stock.py index 7ca6a87c960..f705d52d20f 100644 --- a/addons/stock/stock.py +++ b/addons/stock/stock.py @@ -2474,7 +2474,7 @@ class stock_picking_type(osv.osv): for id in ids: created_domain = [ ('picking_type_id', '=', id), - ('state', 'not in', ['draft', 'cancel']), + ('state', 'not in', ['done', 'cancel']), ('date', '>=', groupby_begin), ('date', '<', groupby_end), ] @@ -2484,15 +2484,17 @@ class stock_picking_type(osv.osv): def _get_picking_count(self, cr, uid, ids, field_names, arg, context=None): obj = self.pool.get('stock.picking') domains = { + 'count_picking_draft': [('state', '=', 'draft')], 'count_picking_waiting': [('state','=','confirmed')], - 'count_picking': [('state','=','assigned')], - 'count_picking_late': [('min_date','<', time.strftime('%Y-%m-%d %H:%M:%S'))], - 'count_picking_backorders': [('backorder_id','<>', False)], + 'count_picking_ready': [('state','=','assigned')], + 'count_picking': [('state','in',('assigned','waiting','confirmed'))], + 'count_picking_late': [('min_date','<', time.strftime('%Y-%m-%d %H:%M:%S')), ('state','in',('assigned','waiting','confirmed'))], + 'count_picking_backorders': [('backorder_id','<>', False), ('state','!=','done')], } result = {} for field in domains: data = obj.read_group(cr, uid, domains[field] + - [('state', 'not in',('done','cancel','draft')), ('picking_type_id', 'in', ids)], + [('state', 'not in',('done','cancel')), ('picking_type_id', 'in', ids)], ['picking_type_id'], ['picking_type_id'], context=context) count = dict(map(lambda x: (x['picking_type_id'] and x['picking_type_id'][0], x['picking_type_id_count']), data)) for tid in ids: @@ -2500,7 +2502,7 @@ class stock_picking_type(osv.osv): for tid in ids: if result[tid]['count_picking']: result[tid]['rate_picking_late'] = result[tid]['count_picking_late'] *100 / result[tid]['count_picking'] - result[tid]['rate_picking_backorders'] = result[tid]['count_picking_backorders'] *100 / result[tid]['count_picking'] + result[tid]['rate_picking_backorders'] = result[tid]['count_picking_backorders'] *100 / (result[tid]['count_picking'] + result[tid]['count_picking_draft']) else: result[tid]['rate_picking_late'] = 0 result[tid]['rate_picking_backorders'] = 0 @@ -2586,6 +2588,10 @@ class stock_picking_type(osv.osv): type='string', string='Scheduled pickings per week'), + 'count_picking_draft': fields.function(_get_picking_count, + type='integer', multi='_get_picking_count'), + 'count_picking_ready': fields.function(_get_picking_count, + type='integer', multi='_get_picking_count'), 'count_picking': fields.function(_get_picking_count, type='integer', multi='_get_picking_count'), 'count_picking_waiting': fields.function(_get_picking_count, diff --git a/addons/stock/stock_view.xml b/addons/stock/stock_view.xml index 2a144cd2e3d..c098abd0593 100644 --- a/addons/stock/stock_view.xml +++ b/addons/stock/stock_view.xml @@ -645,6 +645,7 @@ + @@ -666,6 +667,41 @@ + + Draft Transfers + stock.picking + ir.actions.act_window + form + tree,form,calendar + + { + 'search_default_picking_type_id': [active_id], + 'default_picking_type_id': active_id, + 'contact_display': 'partner_address', + 'search_default_draft': 1, + } + + + + + + Ready Transfers + stock.picking + ir.actions.act_window + form + tree,form,calendar + + { + 'search_default_picking_type_id': [active_id], + 'default_picking_type_id': active_id, + 'contact_display': 'partner_address', + 'search_default_available': 1, + } + + + + + Waiting Transfers stock.picking @@ -1231,7 +1267,8 @@ - + + @@ -1260,11 +1297,21 @@