diff --git a/addons/mrp_subcontracting/i18n/mrp_subcontracting.pot b/addons/mrp_subcontracting/i18n/mrp_subcontracting.pot index 47fada171ff..31bea2e6a94 100644 --- a/addons/mrp_subcontracting/i18n/mrp_subcontracting.pot +++ b/addons/mrp_subcontracting/i18n/mrp_subcontracting.pot @@ -361,6 +361,12 @@ msgid "" "subcontracting." msgstr "" +#. module: mrp_subcontracting +#: code:addons/mrp_subcontracting/models/mrp_production.py:0 +#, python-format +msgid "You must enter a serial number for %s" +msgstr "" + #. module: mrp_subcontracting #: code:addons/mrp_subcontracting/models/mrp_production.py:0 #, python-format diff --git a/addons/mrp_subcontracting/models/mrp_production.py b/addons/mrp_subcontracting/models/mrp_production.py index 599861d34f4..b5bef8c1366 100644 --- a/addons/mrp_subcontracting/models/mrp_production.py +++ b/addons/mrp_subcontracting/models/mrp_production.py @@ -41,6 +41,8 @@ class MrpProduction(models.Model): raise UserError(_("This MO isn't related to a subcontracted move")) if float_is_zero(self.qty_producing, precision_rounding=self.product_uom_id.rounding): return {'type': 'ir.actions.act_window_close'} + if self.product_tracking != 'none' and not self.lot_producing_id: + raise UserError(_('You must enter a serial number for %s') % self.product_id.name) for sml in self.move_raw_ids.move_line_ids: if sml.tracking != 'none' and not sml.lot_id: raise UserError(_('You must enter a serial number for each line of %s') % sml.product_id.name) @@ -67,6 +69,11 @@ class MrpProduction(models.Model): return action return {'type': 'ir.actions.act_window_close'} + def action_subcontracting_discard_remaining_components(self): + self.ensure_one() + self.qty_producing = 0 + return {'type': 'ir.actions.act_window_close'} + def _pre_button_mark_done(self): if self._get_subcontract_move(): return True @@ -141,7 +148,7 @@ class MrpProduction(models.Model): return False if not all(line.lot_id for line in mo.move_raw_ids.filtered(lambda sm: sm.has_tracking != 'none').move_line_ids): return False - if mo.product_id.tracking != 'none' and not mo.lot_producing_id: + if mo.product_tracking != 'none' and not mo.lot_producing_id: return False return True diff --git a/addons/mrp_subcontracting/views/mrp_production_views.xml b/addons/mrp_subcontracting/views/mrp_production_views.xml index 1107d551539..783007ebae0 100644 --- a/addons/mrp_subcontracting/views/mrp_production_views.xml +++ b/addons/mrp_subcontracting/views/mrp_production_views.xml @@ -19,7 +19,7 @@ 1 - {'invisible': [('product_tracking', 'in', ('none', False))], 'required': [('product_tracking', 'not in', ('none', False))]} + {'invisible': [('product_tracking', 'in', ('none', False))]} 1 @@ -46,7 +46,7 @@