diff --git a/addons/mrp/models/mrp_production.py b/addons/mrp/models/mrp_production.py
index 294cb96d2d45e28fb89e9289eb4b878ed09dba59..aa71bd2111b6352558d23adb07dbee5b37dd0d60 100644
--- a/addons/mrp/models/mrp_production.py
+++ b/addons/mrp/models/mrp_production.py
@@ -1387,11 +1387,7 @@ class MrpProduction(models.Model):
         return backorders
 
     def button_mark_done(self):
-        self._check_company()
-        for order in self:
-            # TODO : multi _check_sn_uniqueness + error message with MO name
-            order._check_sn_uniqueness()
-
+        self._button_mark_done_sanity_checks()
         res = self._pre_button_mark_done()
         if res is not True:
             return res
@@ -1466,6 +1462,11 @@ class MrpProduction(models.Model):
             return self._action_generate_backorder_wizard(quantity_issues)
         return True
 
+    def _button_mark_done_sanity_checks(self):
+        self._check_company()
+        for order in self:
+            order._check_sn_uniqueness()
+
     def do_unreserve(self):
         for production in self:
             production.move_raw_ids.filtered(lambda x: x.state not in ('done', 'cancel'))._do_unreserve()