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