[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
This commit is contained in:
+12
-6
@@ -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,
|
||||
|
||||
@@ -645,6 +645,7 @@
|
||||
<field name="arch" type="xml">
|
||||
<search string="Internal Picking List">
|
||||
<field name="name" string="Internal Picking List" filter_domain="['|',('name','ilike', self),('origin','ilike',self)]"/>
|
||||
<filter icon="terp-check" name="draft" string="Draft" domain="[('state','=','draft')]" help="Draft Internal Moves"/>
|
||||
<filter icon="terp-check" name="available" string="Ready" domain="[('state','=','assigned')]" help="Assigned Internal Moves"/>
|
||||
<filter icon="terp-camera_test" name="confirmed" string="Waiting" domain="[('state','=','confirmed')]" help="Confirmed Internal Moves"/>
|
||||
<filter icon="terp-dialog-close" name="done" string="Done" domain="[('state','=','done')]" help="Pickings already processed"/>
|
||||
@@ -666,6 +667,41 @@
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="action_picking_tree_draft" model="ir.actions.act_window">
|
||||
<field name="name">Draft Transfers</field>
|
||||
<field name="res_model">stock.picking</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form,calendar</field>
|
||||
<field name="domain"></field>
|
||||
<field name="context">{
|
||||
'search_default_picking_type_id': [active_id],
|
||||
'default_picking_type_id': active_id,
|
||||
'contact_display': 'partner_address',
|
||||
'search_default_draft': 1,
|
||||
}
|
||||
</field>
|
||||
<field name="search_view_id" ref="view_picking_internal_search"/>
|
||||
</record>
|
||||
|
||||
<record id="action_picking_tree_ready" model="ir.actions.act_window">
|
||||
<field name="name">Ready Transfers</field>
|
||||
<field name="res_model">stock.picking</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form,calendar</field>
|
||||
<field name="domain"></field>
|
||||
<field name="context">{
|
||||
'search_default_picking_type_id': [active_id],
|
||||
'default_picking_type_id': active_id,
|
||||
'contact_display': 'partner_address',
|
||||
'search_default_available': 1,
|
||||
}
|
||||
</field>
|
||||
<field name="search_view_id" ref="view_picking_internal_search"/>
|
||||
</record>
|
||||
|
||||
|
||||
<record id="action_picking_tree_waiting" model="ir.actions.act_window">
|
||||
<field name="name">Waiting Transfers</field>
|
||||
<field name="res_model">stock.picking</field>
|
||||
@@ -1231,7 +1267,8 @@
|
||||
<kanban version="7.0" class="oe_background_grey">
|
||||
<field name="complete_name"/>
|
||||
<field name="color"/>
|
||||
<field name="count_picking"/>
|
||||
<field name="count_picking_ready"/>
|
||||
<field name="count_picking_draft"/>
|
||||
<field name="count_picking_waiting"/>
|
||||
<field name="count_picking_late"/>
|
||||
<field name="count_picking_backorders"/>
|
||||
@@ -1260,11 +1297,21 @@
|
||||
</div>
|
||||
<div class="oe_items_list oe_kanban_ellipsis">
|
||||
<div>
|
||||
<a name="%(action_picking_tree)d" type="action">
|
||||
<field name="count_picking"/> Ready
|
||||
<a name="%(action_picking_tree_draft)d" type="action">
|
||||
<field name="count_picking_draft"/> Draft
|
||||
</a>
|
||||
<t t-if="record.count_picking.raw_value > 0">
|
||||
<a name="%(action_picking_tree)d" type="action">
|
||||
<t t-if="record.count_picking_draft.raw_value > 0">
|
||||
<a name="%(action_picking_tree_draft)d" type="action">
|
||||
<field name="weekly_picking" widget="stock_sparkline">Weekly Moves</field>
|
||||
</a>
|
||||
</t>
|
||||
</div>
|
||||
<div>
|
||||
<a name="%(action_picking_tree_ready)d" type="action">
|
||||
<field name="count_picking_ready"/> Ready
|
||||
</a>
|
||||
<t t-if="record.count_picking_ready.raw_value > 0">
|
||||
<a name="%(action_picking_tree_ready)d" type="action">
|
||||
<field name="weekly_picking" widget="stock_sparkline">Weekly Moves</field>
|
||||
</a>
|
||||
</t>
|
||||
|
||||
Reference in New Issue
Block a user