diff --git a/fusion_plating/fusion_plating_configurator/models/sale_order.py b/fusion_plating/fusion_plating_configurator/models/sale_order.py index c1079122..988a54db 100644 --- a/fusion_plating/fusion_plating_configurator/models/sale_order.py +++ b/fusion_plating/fusion_plating_configurator/models/sale_order.py @@ -114,6 +114,33 @@ class SaleOrder(models.Model): compute='_compute_margin', ) + x_fc_workorder_count = fields.Integer( + string='Active WOs', + compute='_compute_workorder_count', + ) + + def _compute_workorder_count(self): + WO = self.env['mrp.workorder'].sudo() + for rec in self: + if not rec.name: + rec.x_fc_workorder_count = 0 + continue + rec.x_fc_workorder_count = WO.search_count([ + ('production_id.origin', '=', rec.name), + ('state', 'not in', ('done', 'cancel')), + ]) + + def action_view_workorders(self): + self.ensure_one() + return { + 'type': 'ir.actions.act_window', + 'name': 'Work Orders', + 'res_model': 'mrp.workorder', + 'view_mode': 'list,form', + 'domain': [('production_id.origin', '=', self.name)], + 'context': {'search_default_group_production_id': 1}, + } + @api.depends('commitment_date') def _compute_deadline_countdown(self): from datetime import datetime diff --git a/fusion_plating/fusion_plating_configurator/views/sale_order_views.xml b/fusion_plating/fusion_plating_configurator/views/sale_order_views.xml index 268bf5fd..271e5cde 100644 --- a/fusion_plating/fusion_plating_configurator/views/sale_order_views.xml +++ b/fusion_plating/fusion_plating_configurator/views/sale_order_views.xml @@ -33,6 +33,14 @@ PO +