Merge pull request #39305 from GursheenK/naming_series_FY

fix: naming series variable parsing for FY
diff --git a/erpnext/accounts/test/test_utils.py b/erpnext/accounts/test/test_utils.py
index 3cb5e42..c439d4b 100644
--- a/erpnext/accounts/test/test_utils.py
+++ b/erpnext/accounts/test/test_utils.py
@@ -23,6 +23,10 @@
 		super(TestUtils, cls).setUpClass()
 		make_test_objects("Address", ADDRESS_RECORDS)
 
+	@classmethod
+	def tearDownClass(cls):
+		frappe.db.rollback()
+
 	def test_get_party_shipping_address(self):
 		address = get_party_shipping_address("Customer", "_Test Customer 1")
 		self.assertEqual(address, "_Test Billing Address 2 Title-Billing")
@@ -126,6 +130,38 @@
 		self.assertEqual(len(payment_entry.references), 1)
 		self.assertEqual(payment_entry.difference_amount, 0)
 
+	def test_naming_series_variable_parsing(self):
+		"""
+		Tests parsing utility used by Naming Series Variable hook for FY
+		"""
+		from frappe.custom.doctype.property_setter.property_setter import make_property_setter
+		from frappe.utils import nowdate
+
+		from erpnext.accounts.utils import get_fiscal_year
+		from erpnext.buying.doctype.supplier.test_supplier import create_supplier
+
+		# Configure Supplier Naming in Buying Settings
+		frappe.db.set_default("supp_master_name", "Auto Name")
+
+		# Configure Autoname in Supplier DocType
+		make_property_setter(
+			"Supplier", None, "naming_rule", "Expression", "Data", for_doctype="Doctype"
+		)
+		make_property_setter(
+			"Supplier", None, "autoname", "SUP-.FY.-.#####", "Data", for_doctype="Doctype"
+		)
+
+		fiscal_year = get_fiscal_year(nowdate())[0]
+
+		# Create Supplier
+		supplier = create_supplier()
+
+		# Check Naming Series in generated Supplier ID
+		doc_name = supplier.name.split("-")
+		self.assertEqual(len(doc_name), 3)
+		self.assertSequenceEqual(doc_name[0:2], ("SUP", fiscal_year))
+		frappe.db.set_default("supp_master_name", "Supplier Name")
+
 
 ADDRESS_RECORDS = [
 	{
diff --git a/erpnext/accounts/utils.py b/erpnext/accounts/utils.py
index 25fbe17..f933209 100644
--- a/erpnext/accounts/utils.py
+++ b/erpnext/accounts/utils.py
@@ -1275,12 +1275,12 @@
 def parse_naming_series_variable(doc, variable):
 	if variable == "FY":
 		if doc:
-			date = doc.get("posting_date") or doc.get("transaction_date")
+			date = doc.get("posting_date") or doc.get("transaction_date") or getdate()
 			company = doc.get("company")
 		else:
 			date = getdate()
 			company = None
-		return get_fiscal_year(date=date, company=company).name
+		return get_fiscal_year(date=date, company=company)[0]
 
 
 @frappe.whitelist()