diff --git a/quality_control/models/quality.py b/quality_control/models/quality.py index 7992021f..2c25cd34 100644 --- a/quality_control/models/quality.py +++ b/quality_control/models/quality.py @@ -232,6 +232,8 @@ class QualityCheck(models.Model): def do_publish(self): """发布出厂检验报告""" self.ensure_one() + self._check_measure_line() + self._check_check_qty_and_total_qty() # 1. 获取报告动作 report_action = self.env.ref('sf_quality.action_report_quality_inspection') @@ -294,6 +296,26 @@ class QualityCheck(models.Model): # 返回成功消息 return True + # 发布前校验明细行列均非空 + def _check_measure_line(self): + for record in self: + if not record.measure_line_ids: + raise UserError(_('请先添加测量明细')) + for line in record.measure_line_ids: + if not line.measure_item: + raise UserError(_('有检测项目值为空')) + for i in range(1, record.column_nums + 1): + if not getattr(line, f'measure_value{i}'): + raise UserError(_('有测量值为空')) + + + # 发布前校验检验数与总数量、检验数与测量件数(即测量列数) + def _check_check_qty_and_total_qty(self): + for record in self: + if int(record.check_qty) <= int(record.total_qty): + raise UserError(_('检验数不可超过总数量')) + if int(record.column_nums) >= int(record.check_qty): + raise UserError(_('测量件数不可超过检验数')) def do_cancel_publish(self): """