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
+