diff --git a/addons/mrp/models/mrp_production.py b/addons/mrp/models/mrp_production.py index 8e8308b4f4b..8f89508659b 100644 --- a/addons/mrp/models/mrp_production.py +++ b/addons/mrp/models/mrp_production.py @@ -2695,3 +2695,31 @@ class MrpProduction(models.Model): action = self.env.ref("stock.label_lot_template").report_action(lot_id.id, config=False) clean_action(action, self.env) return action + + def action_open_label_layout(self): + view = self.env.ref('stock.product_label_layout_form_picking') + return { + 'name': _('Choose Labels Layout'), + 'type': 'ir.actions.act_window', + 'res_model': 'product.label.layout', + 'views': [(view.id, 'form')], + 'target': 'new', + 'context': { + 'default_product_ids': self.move_finished_ids.product_id.ids, + 'default_move_ids': self.move_finished_ids.ids, + 'default_picking_quantity': 'picking'}, + } + + def action_open_label_type(self): + move_line_ids = self.move_finished_ids.mapped('move_line_ids') + if self.user_has_groups('stock.group_production_lot') and move_line_ids.lot_id: + view = self.env.ref('stock.picking_label_type_form') + return { + 'name': _('Choose Type of Labels To Print'), + 'type': 'ir.actions.act_window', + 'res_model': 'picking.label.type', + 'views': [(view.id, 'form')], + 'target': 'new', + 'context': {'default_picking_ids': self.move_finished_ids}, + } + return self.action_open_label_layout() diff --git a/addons/mrp/views/mrp_production_views.xml b/addons/mrp/views/mrp_production_views.xml index ed2881db2a0..58ac1cf4f95 100644 --- a/addons/mrp/views/mrp_production_views.xml +++ b/addons/mrp/views/mrp_production_views.xml @@ -164,6 +164,7 @@ invisible="not id or state in ('done', 'cancel') or not confirm_cancel" confirm="Some product moves have already been confirmed, this manufacturing order can't be completely cancelled. Are you still sure you want to process?"/>