diff --git a/jikimo_purchase_tier_validation/models/models.py b/jikimo_purchase_tier_validation/models/models.py index 879d51dd..02648830 100644 --- a/jikimo_purchase_tier_validation/models/models.py +++ b/jikimo_purchase_tier_validation/models/models.py @@ -18,6 +18,19 @@ class jikimo_purchase_tier_validation(models.Model): # 是否已上传合同文件 is_upload_contract_file = fields.Boolean(string='是否已上传合同文件', default=False) + def button_confirm(self): + self = self.with_context(skip_validation=True) + return super().button_confirm() + + def _check_state_conditions(self, vals): + self.ensure_one() + if self._context.get('skip_validation'): + return False + return ( + self._check_state_from_condition() + and vals.get(self._state_field) in self._state_to + ) + def request_validation(self): for record in self: missing_fields = [] @@ -29,6 +42,9 @@ class jikimo_purchase_tier_validation(models.Model): if missing_fields: raise ValidationError(_('如下字段要求必须填写:%s') % '、'.join(missing_fields)) + if not record.contract_document_id: + raise ValidationError(_('合同文件必须上传')) + return super(jikimo_purchase_tier_validation, self).request_validation() # 上传合同文件