From fd6e42e15e529c53f10390d02d6dc19bddf0148d Mon Sep 17 00:00:00 2001 From: ravibharathi656 Date: Thu, 4 Dec 2025 09:17:32 +0530 Subject: [PATCH] fix: remove set_only_once from is_fixed_asset (cherry picked from commit 70521fb9bfd00e00082916b1460ddbb6c82b7b33) # Conflicts: # erpnext/stock/doctype/item/item.json # erpnext/stock/doctype/item/item.py --- erpnext/stock/doctype/item/item.js | 2 +- erpnext/stock/doctype/item/item.json | 7 +++++-- erpnext/stock/doctype/item/item.py | 9 +++++++++ 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/erpnext/stock/doctype/item/item.js b/erpnext/stock/doctype/item/item.js index 2cea6463592..6ec2f4957d9 100644 --- a/erpnext/stock/doctype/item/item.js +++ b/erpnext/stock/doctype/item/item.js @@ -224,7 +224,7 @@ frappe.ui.form.on("Item", { ["is_stock_item", "has_serial_no", "has_batch_no", "has_variants"].forEach((fieldname) => { frm.set_df_property(fieldname, "read_only", stock_exists); }); - + frm.set_df_property("is_fixed_asset", "read_only", frm.doc.__onload?.asset_exists ? 1 : 0); frm.toggle_reqd("customer", frm.doc.is_customer_provided_item ? 1 : 0); frm.set_query("item_group", () => { return { diff --git a/erpnext/stock/doctype/item/item.json b/erpnext/stock/doctype/item/item.json index f0923061e93..5bb05f545fb 100644 --- a/erpnext/stock/doctype/item/item.json +++ b/erpnext/stock/doctype/item/item.json @@ -243,8 +243,7 @@ "default": "0", "fieldname": "is_fixed_asset", "fieldtype": "Check", - "label": "Is Fixed Asset", - "set_only_once": 1 + "label": "Is Fixed Asset" }, { "allow_in_quick_entry": 1, @@ -895,7 +894,11 @@ "image_field": "image", "links": [], "make_attachments_public": 1, +<<<<<<< HEAD "modified": "2025-08-08 14:58:48.674193", +======= + "modified": "2025-12-04 09:11:56.029567", +>>>>>>> 70521fb9bf (fix: remove set_only_once from is_fixed_asset) "modified_by": "Administrator", "module": "Stock", "name": "Item", diff --git a/erpnext/stock/doctype/item/item.py b/erpnext/stock/doctype/item/item.py index e71c8eb6a00..fe5cc4f69ef 100644 --- a/erpnext/stock/doctype/item/item.py +++ b/erpnext/stock/doctype/item/item.py @@ -155,6 +155,7 @@ class Item(Document): self.set_onload("stock_exists", self.stock_ledger_created()) self.set_onload("asset_naming_series", get_asset_naming_series()) self.set_onload("current_valuation_method", get_valuation_method(self.name)) + self.set_onload("asset_exists", self.has_submitted_assets()) def autoname(self): if frappe.db.get_default("item_naming_by") == "Naming Series": @@ -306,9 +307,14 @@ class Item(Document): if self.stock_ledger_created(): frappe.throw(_("Cannot be a fixed asset item as Stock Ledger is created.")) +<<<<<<< HEAD if not self.is_fixed_asset: asset = frappe.db.get_all("Asset", filters={"item_code": self.name, "docstatus": 1}, limit=1) if asset: +======= + if not self.is_fixed_asset and not self.is_new(): + if self.has_submitted_assets(): +>>>>>>> 70521fb9bf (fix: remove set_only_once from is_fixed_asset) frappe.throw( _('"Is Fixed Asset" cannot be unchecked, as Asset record exists against the item') ) @@ -525,6 +531,9 @@ class Item(Document): ) return self._stock_ledger_created + def has_submitted_assets(self): + return bool(frappe.db.exists("Asset", {"item_code": self.name, "docstatus": 1})) + def update_item_price(self): frappe.db.sql( """