chore: refactor by creating is_sold
diff --git a/erpnext/assets/doctype/asset/asset.py b/erpnext/assets/doctype/asset/asset.py
index 87d4c16..b50d9e9 100644
--- a/erpnext/assets/doctype/asset/asset.py
+++ b/erpnext/assets/doctype/asset/asset.py
@@ -660,19 +660,7 @@
 		elif self.docstatus == 1:
 			status = "Submitted"
 
-			item = frappe.qb.DocType("Sales Invoice Item").as_("item")
-			si = frappe.qb.DocType("Sales Invoice").as_("si")
-
-			is_asset_sold = (
-				frappe.qb.from_(item)
-				.select(item.parent)
-				.inner_join(si)
-				.on(item.parent == si.name)
-				.where(item.asset == self.name)
-				.where(si.docstatus == 1)
-			).run()
-
-			if is_asset_sold:
+			if self.is_sold():
 				status = "Sold"
 			elif self.journal_entry_for_scrap:
 				status = "Scrapped"
@@ -690,6 +678,21 @@
 			status = "Cancelled"
 		return status
 
+	def is_sold(self):
+		item = frappe.qb.DocType("Sales Invoice Item").as_("item")
+		si = frappe.qb.DocType("Sales Invoice").as_("si")
+
+		asset_sales_invoice = (
+			frappe.qb.from_(item)
+			.select(item.parent)
+			.inner_join(si)
+			.on(item.parent == si.name)
+			.where(item.asset == self.name)
+			.where(si.docstatus == 1)
+		).run()
+
+		return True if asset_sales_invoice else False
+
 	def get_default_finance_book_idx(self):
 		if not self.get("default_finance_book") and self.company:
 			self.default_finance_book = erpnext.get_default_finance_book(self.company)