# -*- coding: utf-8 -*- # Part of Odoo. See LICENSE file for full copyright and licensing details. from odoo import api, fields, models, _ class ConfirmExpiry(models.TransientModel): _inherit = 'expiry.picking.confirmation' production_ids = fields.Many2many('mrp.production', readonly=True) workorder_id = fields.Many2one('mrp.workorder', readonly=True) @api.depends('lot_ids') def _compute_descriptive_fields(self): if self.production_ids or self.workorder_id: # Shows expired lots only if we are more than one expired lot. self.show_lots = len(self.lot_ids) > 1 if self.show_lots: # For multiple expired lots, they are listed in the wizard view. self.description = _( "You are going to use some expired components." "\nDo you confirm you want to proceed?" ) else: # For one expired lot, its name is written in the wizard message. self.description = _( "You are going to use the component %(product_name)s, %(lot_name)s which is expired." "\nDo you confirm you want to proceed?", product_name=self.lot_ids.product_id.display_name, lot_name=self.lot_ids.name, ) else: super(ConfirmExpiry, self)._compute_descriptive_fields() def confirm_produce(self): ctx = dict(self._context, skip_expired=True) ctx.pop('default_lot_ids') return self.production_ids.with_context(ctx).button_mark_done() def confirm_workorder(self): ctx = dict(self._context, skip_expired=True) ctx.pop('default_lot_ids') return self.workorder_id.with_context(ctx).record_production()