[FIX] mrp: manufacturing vignette in inventory dashboard
When clicking on the "manufacturing" vignette in the inventory dashboard, the records were not filtered correctly (example: add a new warehouse, a new "manufacturing" vignette appears for this warehouse in the inventory dashboard, clicking on it would display the MO of all the warehouses). With this fix, as with the pickings, it will only show the count of MO filtered to that specific picking type in the vignette, and clicking on it will displayed the filtered ones. We implementent the method of the compute field the same way the similar method for the picking is implemented. fixes #15008
This commit is contained in:
committed by
Simon Lejeune
parent
d588efba6c
commit
ffe13756f5
@@ -16,12 +16,15 @@ class StockPickingType(models.Model):
|
||||
mrp_picking_types = self.filtered(lambda picking: picking.code == 'mrp_operation')
|
||||
if not mrp_picking_types:
|
||||
return
|
||||
|
||||
MrpProduction = self.env['mrp.production']
|
||||
count_mo_waiting = MrpProduction.search_count([('availability', '=', 'waiting')])
|
||||
count_mo_todo = MrpProduction.search_count([('state', 'in', ('confirmed', 'planned', 'progress'))])
|
||||
count_mo_late = MrpProduction.search_count(['&', ('date_planned_start', '<', fields.Date.today()), ('state', '=', 'confirmed')])
|
||||
for picking in mrp_picking_types:
|
||||
picking.count_mo_waiting = count_mo_waiting
|
||||
picking.count_mo_todo = count_mo_todo
|
||||
picking.count_mo_late = count_mo_late
|
||||
domains = {
|
||||
'count_mo_waiting': [('availability', '=', 'waiting')],
|
||||
'count_mo_todo': [('state', 'in', ('confirmed', 'planned', 'progress'))],
|
||||
'count_mo_late': [('date_planned_start', '<', fields.Date.today()), ('state', '=', 'confirmed')],
|
||||
}
|
||||
for field in domains:
|
||||
data = self.env['mrp.production'].read_group(domains[field] +
|
||||
[('state', 'not in', ('done', 'cancel')), ('picking_type_id', 'in', self.ids)],
|
||||
['picking_type_id'], ['picking_type_id'])
|
||||
count = dict(map(lambda x: (x['picking_type_id'] and x['picking_type_id'][0], x['picking_type_id_count']), data))
|
||||
for record in mrp_picking_types:
|
||||
record[field] = count.get(record.id, 0)
|
||||
@@ -307,7 +307,8 @@
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="view_id" eval="False"/>
|
||||
<field name="search_view_id" ref="view_mrp_production_filter"/>
|
||||
<field name="context">{}</field>
|
||||
<field name="domain">[('picking_type_id', '=', active_id)]</field>
|
||||
<field name="context">{'default_picking_type_id': active_id}</field>
|
||||
</record>
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user