From 670d61547fb6a7ee86050c2f1020cd247f12df52 Mon Sep 17 00:00:00 2001 From: Gursheen Anand Date: Wed, 10 Jan 2024 22:05:02 +0530 Subject: [PATCH 1/4] fix: date in master document for dictionary condition (cherry picked from commit d96a777edd9cad698b9d9bb90863c1080eacb36f) # Conflicts: # erpnext/accounts/utils.py --- erpnext/accounts/utils.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/erpnext/accounts/utils.py b/erpnext/accounts/utils.py index 52b0c34673a..fd1e2914a4f 100644 --- a/erpnext/accounts/utils.py +++ b/erpnext/accounts/utils.py @@ -1222,8 +1222,18 @@ def get_autoname_with_number(number_value, doc_title, company): def parse_naming_series_variable(doc, variable): if variable == "FY": +<<<<<<< HEAD date = doc.get("posting_date") or doc.get("transaction_date") or getdate() return get_fiscal_year(date=date, company=doc.get("company"))[0] +======= + if doc: + 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)[0] +>>>>>>> d96a777edd (fix: date in master document for dictionary condition) @frappe.whitelist() From d95b14d5b8f03c646a90186ce013af0cf42225b9 Mon Sep 17 00:00:00 2001 From: Gursheen Anand Date: Wed, 10 Jan 2024 22:06:06 +0530 Subject: [PATCH 2/4] test: naming series variable parsing (cherry picked from commit bbdf98a8f0a53b0b4c5a73eb1842401d67314760) --- erpnext/accounts/test/test_utils.py | 35 +++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/erpnext/accounts/test/test_utils.py b/erpnext/accounts/test/test_utils.py index 3d5e5fc4ec7..3243e3dcc63 100644 --- a/erpnext/accounts/test/test_utils.py +++ b/erpnext/accounts/test/test_utils.py @@ -22,6 +22,9 @@ class TestUtils(unittest.TestCase): super(TestUtils, cls).setUpClass() make_test_objects("Address", ADDRESS_RECORDS) + def tearDown(self): + 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") @@ -125,6 +128,38 @@ class TestUtils(unittest.TestCase): 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" + ) + + # Create Fiscal Year for Current Year + 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)) + ADDRESS_RECORDS = [ { From 6bd01f227eea82f434efa1e3bdb4f9ab2a3e0f26 Mon Sep 17 00:00:00 2001 From: Gursheen Anand Date: Thu, 11 Jan 2024 12:22:08 +0530 Subject: [PATCH 3/4] fix: reset default after test (cherry picked from commit 813b7a96fbb0ff048c112dec5551edf5980d0955) --- erpnext/accounts/test/test_utils.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/erpnext/accounts/test/test_utils.py b/erpnext/accounts/test/test_utils.py index 3243e3dcc63..660cb62d2c5 100644 --- a/erpnext/accounts/test/test_utils.py +++ b/erpnext/accounts/test/test_utils.py @@ -22,7 +22,8 @@ class TestUtils(unittest.TestCase): super(TestUtils, cls).setUpClass() make_test_objects("Address", ADDRESS_RECORDS) - def tearDown(self): + @classmethod + def tearDownClass(cls): frappe.db.rollback() def test_get_party_shipping_address(self): @@ -149,7 +150,6 @@ class TestUtils(unittest.TestCase): "Supplier", None, "autoname", "SUP-.FY.-.#####", "Data", for_doctype="Doctype" ) - # Create Fiscal Year for Current Year fiscal_year = get_fiscal_year(nowdate())[0] # Create Supplier @@ -159,6 +159,7 @@ class TestUtils(unittest.TestCase): 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 = [ From 5336cd49c90ede14fd3cb525444da2f7dcb4b3f5 Mon Sep 17 00:00:00 2001 From: rohitwaghchaure Date: Sun, 14 Jan 2024 09:41:48 +0530 Subject: [PATCH 4/4] chore: fix conflicts --- erpnext/accounts/utils.py | 5 ----- 1 file changed, 5 deletions(-) diff --git a/erpnext/accounts/utils.py b/erpnext/accounts/utils.py index fd1e2914a4f..d9fb75a86d2 100644 --- a/erpnext/accounts/utils.py +++ b/erpnext/accounts/utils.py @@ -1222,10 +1222,6 @@ def get_autoname_with_number(number_value, doc_title, company): def parse_naming_series_variable(doc, variable): if variable == "FY": -<<<<<<< HEAD - date = doc.get("posting_date") or doc.get("transaction_date") or getdate() - return get_fiscal_year(date=date, company=doc.get("company"))[0] -======= if doc: date = doc.get("posting_date") or doc.get("transaction_date") or getdate() company = doc.get("company") @@ -1233,7 +1229,6 @@ def parse_naming_series_variable(doc, variable): date = getdate() company = None return get_fiscal_year(date=date, company=company)[0] ->>>>>>> d96a777edd (fix: date in master document for dictionary condition) @frappe.whitelist()