diff --git a/erpnext/accounts/doctype/accounts_settings/accounts_settings.json b/erpnext/accounts/doctype/accounts_settings/accounts_settings.json index ea08b973e4593a3d738b6e61f7895950e657a92d..0e2d02ce0445b5b551190a67b23a9c3dedb60596 100644 --- a/erpnext/accounts/doctype/accounts_settings/accounts_settings.json +++ b/erpnext/accounts/doctype/accounts_settings/accounts_settings.json @@ -58,7 +58,7 @@ "post_change_gl_entries", "assets_tab", "asset_settings_section", - "calculate_depr_using_total_days", + "calculate_daily_depreciation_using", "column_break_gjcc", "book_asset_depreciation_entry_automatically", "closing_settings_tab", @@ -490,13 +490,6 @@ "fieldname": "column_break_gjcc", "fieldtype": "Column Break" }, - { - "default": "0", - "description": "Enable this option to calculate daily depreciation by considering the total number of days in the entire depreciation period, (including leap years) while using daily pro-rata based depreciation", - "fieldname": "calculate_depr_using_total_days", - "fieldtype": "Check", - "label": "Calculate daily depreciation using total days in depreciation period" - }, { "fieldname": "france_section", "fieldtype": "Section Break", @@ -508,6 +501,14 @@ "fieldname": "use_supplier_invoice_number_in_fec", "fieldtype": "Check", "label": "Use supplier invoice number in FEC" + }, + { + "default": "Total years in depreciation period", + "description": "This field lets you select your preferred method for calculating pro rata depreciation. Each approach has different implication. For detailed explanations, please refer to the Documentation.", + "fieldname": "calculate_daily_depreciation_using", + "fieldtype": "Select", + "label": "Calculate Daily Pro-rata Depreciation Using", + "options": "Total days in depreciation period\nTotal years in depreciation period" } ], "icon": "uil uil-setting", @@ -515,7 +516,7 @@ "index_web_pages_for_search": 1, "issingle": 1, "links": [], - "modified": "2024-09-12 16:15:48.241124", + "modified": "2024-10-21 04:29:02.556355", "modified_by": "Administrator", "module": "Accounts", "name": "Accounts Settings", diff --git a/erpnext/accounts/doctype/accounts_settings/accounts_settings.py b/erpnext/accounts/doctype/accounts_settings/accounts_settings.py index ea8511b92db06c027af5c70cc92f58fb25e7ed72..c11406dff88eace1dba285c755bfdc23ed59fc33 100644 --- a/erpnext/accounts/doctype/accounts_settings/accounts_settings.py +++ b/erpnext/accounts/doctype/accounts_settings/accounts_settings.py @@ -33,7 +33,9 @@ class AccountsSettings(Document): book_deferred_entries_based_on: DF.Literal["Days", "Months"] book_deferred_entries_via_journal_entry: DF.Check book_tax_discount_loss: DF.Check - calculate_depr_using_total_days: DF.Check + calculate_daily_depreciation_using: DF.Literal[ + "Total days in depreciation period", "Total years in depreciation period" + ] check_supplier_invoice_uniqueness: DF.Check credit_controller: DF.Link | None default_payment_days: DF.Int diff --git a/erpnext/assets/doctype/asset_depreciation_schedule/asset_depreciation_schedule.py b/erpnext/assets/doctype/asset_depreciation_schedule/asset_depreciation_schedule.py index 6ebed219e6c4a2fae5e9a6b76dc8397a73baa8ca..164e7027bebb8c5ebf8c0c59b4c2adf069a14d4e 100644 --- a/erpnext/assets/doctype/asset_depreciation_schedule/asset_depreciation_schedule.py +++ b/erpnext/assets/doctype/asset_depreciation_schedule/asset_depreciation_schedule.py @@ -730,7 +730,10 @@ def get_daily_prorata_based_straight_line_depr( def get_daily_depr_amount(asset, row, schedule_idx, amount): - if cint(frappe.db.get_single_value("Accounts Settings", "calculate_depr_using_total_days")): + if ( + frappe.db.get_single_value("Accounts Settings", "calculate_daily_depreciation_using") + == "Total days in depreciation period" + ): total_days = ( date_diff( get_last_day( diff --git a/erpnext/assets/doctype/asset_depreciation_schedule/test_asset_depreciation_schedule.py b/erpnext/assets/doctype/asset_depreciation_schedule/test_asset_depreciation_schedule.py index c9fa0ba59da0603dd99133cfa018c1893c30760c..c25a9faec67f7fdf3a6694a82d076634450408c8 100644 --- a/erpnext/assets/doctype/asset_depreciation_schedule/test_asset_depreciation_schedule.py +++ b/erpnext/assets/doctype/asset_depreciation_schedule/test_asset_depreciation_schedule.py @@ -76,7 +76,9 @@ class TestAssetDepreciationSchedule(FrappeTestCase): self.assertEqual(schedules, expected_schedules) def test_schedule_for_slm_for_existing_asset_daily_pro_rata_enabled(self): - frappe.db.set_single_value("Accounts Settings", "calculate_depr_using_total_days", 1) + frappe.db.set_single_value( + "Accounts Settings", "calculate_daily_depreciation_using", "Total days in depreciation period" + ) asset = create_asset( calculate_depreciation=1, depreciation_method="Straight Line", @@ -114,7 +116,9 @@ class TestAssetDepreciationSchedule(FrappeTestCase): for d in get_depr_schedule(asset.name, "Draft") ] self.assertEqual(schedules, expected_schedules) - frappe.db.set_single_value("Accounts Settings", "calculate_depr_using_total_days", 0) + frappe.db.set_single_value( + "Accounts Settings", "calculate_daily_depreciation_using", "Total years in depreciation period" + ) def test_schedule_for_slm_for_existing_asset(self): asset = create_asset( @@ -187,7 +191,9 @@ class TestAssetDepreciationSchedule(FrappeTestCase): # Enable Checkbox to Calculate depreciation using total days in depreciation period def test_daily_prorata_based_depr_after_enabling_configuration(self): - frappe.db.set_single_value("Accounts Settings", "calculate_depr_using_total_days", 1) + frappe.db.set_single_value( + "Accounts Settings", "calculate_daily_depreciation_using", "Total days in depreciation period" + ) asset = create_asset( calculate_depreciation=1, @@ -245,7 +251,9 @@ class TestAssetDepreciationSchedule(FrappeTestCase): for d in get_depr_schedule(asset.name, "Draft") ] self.assertEqual(schedules, expected_schedule) - frappe.db.set_single_value("Accounts Settings", "calculate_depr_using_total_days", 0) + frappe.db.set_single_value( + "Accounts Settings", "calculate_daily_depreciation_using", "Total years in depreciation period" + ) # Test for Written Down Value Method # Frequency of deprciation = 3