diff --git a/sf_quality/models/stock.py b/sf_quality/models/stock.py index 89bbf005..7abb238e 100644 --- a/sf_quality/models/stock.py +++ b/sf_quality/models/stock.py @@ -21,7 +21,7 @@ class StockPicking(models.Model): “警告:存在不合格产品XXXX n 件、YYYYY m件,继续调拨请点“确认”,否则请取消?” """ context = self.env.context - if (not (isinstance(res, dict) and res.get('type') == 'ir.actions.act_window') + if (not (not isinstance(res, bool) and res.get('type') == 'ir.actions.act_window') and not context.get('again_validate') and self.quality_check_ids.filtered(lambda qc: qc.quality_state == 'fail')): # 回滚事务,为二次确认/取消做准备 @@ -36,8 +36,14 @@ class StockPicking(models.Model): else: number = sum(self.move_ids_without_package.filtered( lambda ml: ml.product_id == product_id).mapped('quantity_done')) - fail_check_text = (f'{fail_check_text}、{product_id.name} {number}件' - if fail_check_text != '' else f'{product_id.name} {number}件') + if number == 0: + number = sum(self.move_ids_without_package.filtered( + lambda ml: ml.product_id == product_id).mapped('reserved_availability')) + if number == 0: + number = sum(self.move_ids_without_package.filtered( + lambda ml: ml.product_id == product_id).mapped('product_uom_qty')) + fail_check_text = (f'{fail_check_text}、{product_id.display_name} {number}件' + if fail_check_text != '' else f'{product_id.display_name} {number}件') return { 'type': 'ir.actions.act_window', 'res_model': 'picking.validate.check.wizard',