From 35d8ff40ec3a64d58cc535d671c8f0e99c9dd177 Mon Sep 17 00:00:00 2001 From: l0gesh29 Date: Thu, 28 Nov 2024 17:04:44 +0530 Subject: [PATCH] feat: validate amended from record docstatus --- frappe/model/document.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/frappe/model/document.py b/frappe/model/document.py index 8aa75f1e24..e7507f0d02 100644 --- a/frappe/model/document.py +++ b/frappe/model/document.py @@ -392,6 +392,7 @@ class Document(BaseDocument, DocRef): self.flags.in_insert = True if self.get("amended_from"): + self.validate_amended_from() self.copy_attachments_from_amended_from() relink_mismatched_files(self) @@ -480,6 +481,13 @@ class Document(BaseDocument, DocRef): return self + def validate_amended_from(self): + if frappe.db.get_value(self.doctype, self.get("amended_from"), "docstatus") != 2: + message = _( + "{0} cannot be amended because it is not cancelled. Please cancel the document before creating an amendment." + ).format(frappe.utils.get_link_to_form(self.doctype, self.get("amended_from"))) + frappe.throw(message, title=_("Amendment Not Allowed")) + def copy_attachments_from_amended_from(self): """Copy attachments from `amended_from`""" from frappe.desk.form.load import get_attachments