1# -*- coding: utf-8 -*-
2# Part of Odoo. See LICENSE file for full copyright and licensing details.
3
4from odoo import api, fields, models, _
5
6
7class MrpProduction(models.Model):
8    _inherit = 'mrp.production'
9
10    sale_order_count = fields.Integer(
11        "Count of Source SO",
12        compute='_compute_sale_order_count',
13        groups='sales_team.group_sale_salesman')
14
15    @api.depends('procurement_group_id.mrp_production_ids.move_dest_ids.group_id.sale_id')
16    def _compute_sale_order_count(self):
17        for production in self:
18            production.sale_order_count = len(production.procurement_group_id.mrp_production_ids.move_dest_ids.group_id.sale_id)
19
20    def action_view_sale_orders(self):
21        self.ensure_one()
22        sale_order_ids = self.procurement_group_id.mrp_production_ids.move_dest_ids.group_id.sale_id.ids
23        action = {
24            'res_model': 'sale.order',
25            'type': 'ir.actions.act_window',
26        }
27        if len(sale_order_ids) == 1:
28            action.update({
29                'view_mode': 'form',
30                'res_id': sale_order_ids[0],
31            })
32        else:
33            action.update({
34                'name': _("Sources Sale Orders of %s", self.name),
35                'domain': [('id', 'in', sale_order_ids)],
36                'view_mode': 'tree,form',
37            })
38        return action
39