From 6e47db7c1d37e2ac91a5cc03445d8f241bacd5c7 Mon Sep 17 00:00:00 2001 From: Ankush Menat Date: Tue, 31 May 2022 12:48:55 +0530 Subject: [PATCH] feat: keep version log of counter changes --- .../document_naming_settings.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/frappe/core/doctype/document_naming_settings/document_naming_settings.py b/frappe/core/doctype/document_naming_settings/document_naming_settings.py index 5273cb861c..533f43bfa4 100644 --- a/frappe/core/doctype/document_naming_settings/document_naming_settings.py +++ b/frappe/core/doctype/document_naming_settings/document_naming_settings.py @@ -180,18 +180,31 @@ class DocumentNamingSettings(Document): if frappe.db.get_value("Series", db_prefix, "name", order_by="name") is None: frappe.db.sql("insert into `tabSeries` (`name`, `current`) values (%s, 0)", (db_prefix)) + previous_value = frappe.db.get_value("Series", db_prefix, "current", order_by="name") + ( frappe.qb.update(series) .set(series.current, cint(self.current_value)) .where(series.name == db_prefix) ).run() + self.create_version_log_for_change(db_prefix, previous_value, cint(self.current_value)) + frappe.msgprint( _("Series counter for {} updated to {} successfully").format(self.prefix, self.current_value), alert=True, indicator="green", ) + def create_version_log_for_change(self, series, old, new): + version = frappe.new_doc("Version") + version.ref_doctype = "Series" + version.docname = series + version.data = frappe.as_json({"changed": [["current", old, new]]}) + version.flags.ignore_links = True # series is not a "real" doctype + version.flags.ignore_permissions = True + version.insert() + @frappe.whitelist() def preview_series(self) -> str: """Preview what the naming series will generate."""