From 253a06ceafc0ad7db129014977d1087b217468e8 Mon Sep 17 00:00:00 2001 From: mgw <1392924357@qq.com> Date: Thu, 26 Dec 2024 16:33:43 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=A1=AE=E8=AE=A4=E8=AE=A2?= =?UTF-8?q?=E5=8D=95=E6=97=B6=E7=9A=84=E5=88=A4=E5=AE=9A=E9=80=BB=E8=BE=91?= =?UTF-8?q?=EF=BC=8C=E8=B0=83=E6=95=B4=E6=8F=90=E7=A4=BA=E8=AF=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../models/models.py | 32 +++++++++++++++---- 1 file changed, 25 insertions(+), 7 deletions(-) diff --git a/jikimo_purchase_tier_validation/models/models.py b/jikimo_purchase_tier_validation/models/models.py index 6f07f6d6..6108880d 100644 --- a/jikimo_purchase_tier_validation/models/models.py +++ b/jikimo_purchase_tier_validation/models/models.py @@ -18,6 +18,12 @@ class jikimo_purchase_tier_validation(models.Model): # 是否已上传合同文件 is_upload_contract_file = fields.Boolean(string='是否已上传合同文件', default=False) + def button_confirm(self): + for record in self: + if record.need_validation and record.validation_status != 'validated': + raise ValidationError(_('请先完成审批!')) + return super().button_confirm() + # def button_confirm(self): # self = self.with_context(skip_validation=True) # return super().button_confirm() @@ -33,17 +39,29 @@ class jikimo_purchase_tier_validation(models.Model): def request_validation(self): for record in self: - missing_fields = [] - if not record.partner_ref: - missing_fields.append('合同名称') - if not record.contract_number: - missing_fields.append('合同编号') + error_messages = [] + + # 检查必填字段 + required_fields = { + 'partner_ref': '合同名称', + 'contract_number': '合同编号' + } + + missing_fields = [ + name for field, name in required_fields.items() + if not record[field] + ] if missing_fields: - raise ValidationError(_('如下字段要求必须填写:%s') % '、'.join(missing_fields)) + error_messages.append('1、如下字段要求必须填写:%s' % '、'.join(missing_fields)) + # 检查合同文件 if not record.contract_document_id: - raise ValidationError(_('合同文件必须上传')) + error_messages.append('2、必须点击上传合同文件') + + # 如果有任何错误,一次性显示所有错误信息 + if error_messages: + raise ValidationError('\n'.join(error_messages)) return super(jikimo_purchase_tier_validation, self).request_validation()