diff --git a/erpnext/accounts/doctype/sales_invoice/test_sales_invoice.py b/erpnext/accounts/doctype/sales_invoice/test_sales_invoice.py index 367f3f82ccd..1ee6f55801b 100644 --- a/erpnext/accounts/doctype/sales_invoice/test_sales_invoice.py +++ b/erpnext/accounts/doctype/sales_invoice/test_sales_invoice.py @@ -2981,7 +2981,7 @@ class TestSalesInvoice(ERPNextTestSuite): expected_values = [ ["2020-06-30", 1366.12, 1366.12], ["2021-06-30", 20000.0, 21366.12], - ["2021-09-30", 5041.1, 26407.22], + ["2021-09-30", 5041.34, 26407.46], ] for i, schedule in enumerate(get_depr_schedule(asset.name, "Active")): diff --git a/erpnext/assets/doctype/asset/test_asset.py b/erpnext/assets/doctype/asset/test_asset.py index 382b6840ac0..77621d0874c 100644 --- a/erpnext/assets/doctype/asset/test_asset.py +++ b/erpnext/assets/doctype/asset/test_asset.py @@ -256,14 +256,12 @@ class TestAsset(AssetSetup): asset.precision("gross_purchase_amount"), ) - second_asset_depr_schedule.depreciation_amount = 9000 + second_asset_depr_schedule.depreciation_amount = 8932.70 second_asset_depr_schedule.asset_doc = asset second_asset_depr_schedule.get_finance_book_row() second_asset_depr_schedule.fetch_asset_details() pro_rata_amount, _, _ = second_asset_depr_schedule._get_pro_rata_amt( - asset.finance_books[0], - 9000, add_days(get_last_day(add_months(purchase_date, 1)), 1), date, original_schedule_date=get_last_day(nowdate()), @@ -347,7 +345,7 @@ class TestAsset(AssetSetup): self.assertEqual(second_asset_depr_schedule.status, "Active") self.assertEqual(first_asset_depr_schedule.status, "Cancelled") - second_asset_depr_schedule.depreciation_amount = 9000 + second_asset_depr_schedule.depreciation_amount = 8932.70 second_asset_depr_schedule.asset_doc = asset second_asset_depr_schedule.get_finance_book_row() second_asset_depr_schedule.fetch_asset_details() @@ -950,12 +948,12 @@ class TestDepreciationMethods(AssetSetup): ) expected_schedules = [ - ["2022-02-28", 310.89, 310.89], - ["2022-03-31", 654.45, 965.34], - ["2022-04-30", 654.45, 1619.79], - ["2022-05-31", 654.45, 2274.24], - ["2022-06-30", 654.45, 2928.69], - ["2022-07-15", 2071.31, 5000.0], + ["2022-02-28", 337.72, 337.72], + ["2022-03-31", 675.45, 1013.17], + ["2022-04-30", 675.45, 1688.62], + ["2022-05-31", 675.45, 2364.07], + ["2022-06-30", 675.45, 3039.52], + ["2022-07-15", 1960.48, 5000.0], ] schedules = [ @@ -1030,6 +1028,7 @@ class TestDepreciationBasics(AssetSetup): "depreciation_start_date": "2020-12-31", }, ) + asset.submit() asset_depr_schedule_doc = get_asset_depr_schedule_doc(asset.name, "Active") @@ -1361,7 +1360,7 @@ class TestDepreciationBasics(AssetSetup): asset_depr_schedule_doc = get_asset_depr_schedule_doc(asset.name, "Active") - asset_depr_schedule_doc.clear_depr_schedule() + asset_depr_schedule_doc.clear() self.assertEqual(len(asset_depr_schedule_doc.get("depreciation_schedule")), 1) @@ -1408,15 +1407,15 @@ class TestDepreciationBasics(AssetSetup): asset.load_from_db() asset_depr_schedule_doc_1 = get_asset_depr_schedule_doc(asset.name, "Active", "Test Finance Book 1") - asset_depr_schedule_doc_1.clear_depr_schedule() + asset_depr_schedule_doc_1.clear() self.assertEqual(len(asset_depr_schedule_doc_1.get("depreciation_schedule")), 3) asset_depr_schedule_doc_2 = get_asset_depr_schedule_doc(asset.name, "Active", "Test Finance Book 2") - asset_depr_schedule_doc_2.clear_depr_schedule() + asset_depr_schedule_doc_2.clear() self.assertEqual(len(asset_depr_schedule_doc_2.get("depreciation_schedule")), 3) asset_depr_schedule_doc_3 = get_asset_depr_schedule_doc(asset.name, "Active", "Test Finance Book 3") - asset_depr_schedule_doc_3.clear_depr_schedule() + asset_depr_schedule_doc_3.clear() self.assertEqual(len(asset_depr_schedule_doc_3.get("depreciation_schedule")), 0) def test_depreciation_schedules_are_set_up_for_multiple_finance_books(self): diff --git a/erpnext/assets/doctype/asset_depreciation_schedule/deppreciation_schedule_controller.py b/erpnext/assets/doctype/asset_depreciation_schedule/deppreciation_schedule_controller.py index fd1d45f98cd..42f0d98fa4e 100644 --- a/erpnext/assets/doctype/asset_depreciation_schedule/deppreciation_schedule_controller.py +++ b/erpnext/assets/doctype/asset_depreciation_schedule/deppreciation_schedule_controller.py @@ -244,7 +244,9 @@ class DepreciationScheduleController(StraightLineMethod, WDVMethod): ) if getdate(computed_available_for_use_date) < getdate(self.asset_doc.available_for_use_date): computed_available_for_use_date = self.asset_doc.available_for_use_date - depr_booked_for_months = date_diff(last_depr_date, computed_available_for_use_date) / (365 / 12) + depr_booked_for_months = (date_diff(last_depr_date, computed_available_for_use_date) + 1) / ( + 365 / 12 + ) return depr_booked_for_months def get_total_pending_days_or_years(self): 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 d68eed660a3..947ce82e45d 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 @@ -142,22 +142,22 @@ class TestAssetDepreciationSchedule(IntegrationTestCase): ) expected_schedules = [ - ["2024-07-31", 30.4, 295.7], - ["2024-08-31", 30.4, 326.1], - ["2024-09-30", 30.4, 356.5], - ["2024-10-31", 30.4, 386.9], - ["2024-11-30", 30.4, 417.3], - ["2024-12-31", 30.4, 447.7], - ["2025-01-31", 30.4, 478.1], - ["2025-02-28", 30.4, 508.5], - ["2025-03-31", 30.4, 538.9], - ["2025-04-30", 30.4, 569.3], - ["2025-05-31", 30.4, 599.7], - ["2025-06-30", 30.4, 630.1], - ["2025-07-31", 30.4, 660.5], - ["2025-08-31", 30.4, 690.9], - ["2025-09-30", 30.4, 721.3], - ["2025-10-10", 9.7, 731.0], + ["2024-07-31", 30.46, 295.76], + ["2024-08-31", 30.46, 326.22], + ["2024-09-30", 30.46, 356.68], + ["2024-10-31", 30.46, 387.14], + ["2024-11-30", 30.46, 417.6], + ["2024-12-31", 30.46, 448.06], + ["2025-01-31", 30.46, 478.52], + ["2025-02-28", 30.46, 508.98], + ["2025-03-31", 30.46, 539.44], + ["2025-04-30", 30.46, 569.9], + ["2025-05-31", 30.46, 600.36], + ["2025-06-30", 30.46, 630.82], + ["2025-07-31", 30.46, 661.28], + ["2025-08-31", 30.46, 691.74], + ["2025-09-30", 30.46, 722.2], + ["2025-10-10", 8.8, 731.0], ] schedules = [ [cstr(d.schedule_date), flt(d.depreciation_amount, 2), d.accumulated_depreciation_amount] @@ -180,15 +180,15 @@ class TestAssetDepreciationSchedule(IntegrationTestCase): ) expected_schedules = [ - ["2024-12-31", 60.9, 284.05], - ["2025-03-31", 60.9, 344.95], - ["2025-06-30", 60.9, 405.85], - ["2025-09-30", 60.9, 466.75], - ["2025-12-31", 60.9, 527.65], - ["2026-03-31", 60.9, 588.55], - ["2026-06-30", 60.9, 649.45], - ["2026-09-30", 60.9, 710.35], - ["2026-11-01", 20.65, 731.0], + ["2024-12-31", 60.98, 284.13], + ["2025-03-31", 60.98, 345.11], + ["2025-06-30", 60.98, 406.09], + ["2025-09-30", 60.98, 467.07], + ["2025-12-31", 60.98, 528.05], + ["2026-03-31", 60.98, 589.03], + ["2026-06-30", 60.98, 650.01], + ["2026-09-30", 60.98, 710.99], + ["2026-11-01", 20.01, 731.0], ] schedules = [ [cstr(d.schedule_date), flt(d.depreciation_amount, 2), d.accumulated_depreciation_amount] @@ -541,17 +541,17 @@ class TestAssetDepreciationSchedule(IntegrationTestCase): ) expected_depreciation_before_repair = [ - ["2023-03-31", 41.26, 105.78], - ["2023-04-30", 41.26, 147.04], - ["2023-05-31", 41.26, 188.3], - ["2023-06-30", 41.26, 229.56], - ["2023-07-31", 41.26, 270.82], - ["2023-08-31", 41.26, 312.08], - ["2023-09-30", 41.26, 353.34], - ["2023-10-31", 41.26, 394.6], - ["2023-11-30", 41.26, 435.86], - ["2023-12-31", 41.26, 477.12], - ["2024-01-15", 22.88, 500.0], + ["2023-03-31", 41.39, 105.91], + ["2023-04-30", 41.39, 147.3], + ["2023-05-31", 41.39, 188.69], + ["2023-06-30", 41.39, 230.08], + ["2023-07-31", 41.39, 271.47], + ["2023-08-31", 41.39, 312.86], + ["2023-09-30", 41.39, 354.25], + ["2023-10-31", 41.39, 395.64], + ["2023-11-30", 41.39, 437.03], + ["2023-12-31", 41.39, 478.42], + ["2024-01-15", 21.58, 500.0], ] schedules = [ @@ -573,17 +573,17 @@ class TestAssetDepreciationSchedule(IntegrationTestCase): self.assertEqual(asset_repair.total_repair_cost, 100) expected_depreciation_after_repair = [ - ["2023-03-31", 50.74, 115.26], - ["2023-04-30", 50.74, 166.0], - ["2023-05-31", 50.74, 216.74], - ["2023-06-30", 50.74, 267.48], - ["2023-07-31", 50.74, 318.22], - ["2023-08-31", 50.74, 368.96], - ["2023-09-30", 50.74, 419.7], - ["2023-10-31", 50.74, 470.44], - ["2023-11-30", 50.74, 521.18], - ["2023-12-31", 50.74, 571.92], - ["2024-01-15", 28.08, 600.0], + ["2023-03-31", 50.9, 115.42], + ["2023-04-30", 50.9, 166.32], + ["2023-05-31", 50.9, 217.22], + ["2023-06-30", 50.9, 268.12], + ["2023-07-31", 50.9, 319.02], + ["2023-08-31", 50.9, 369.92], + ["2023-09-30", 50.9, 420.82], + ["2023-10-31", 50.9, 471.72], + ["2023-11-30", 50.9, 522.62], + ["2023-12-31", 50.9, 573.52], + ["2024-01-15", 26.48, 600.0], ] schedules = [ diff --git a/erpnext/assets/doctype/asset_value_adjustment/test_asset_value_adjustment.py b/erpnext/assets/doctype/asset_value_adjustment/test_asset_value_adjustment.py index 46721773cf6..e1d3b7b084f 100644 --- a/erpnext/assets/doctype/asset_value_adjustment/test_asset_value_adjustment.py +++ b/erpnext/assets/doctype/asset_value_adjustment/test_asset_value_adjustment.py @@ -114,12 +114,12 @@ class TestAssetValueAdjustment(IntegrationTestCase): ["2023-05-31", 9983.33, 45408.05], ["2023-06-30", 9983.33, 55391.38], ["2023-07-31", 9983.33, 65374.71], - ["2023-08-31", 9016.37, 74391.08], - ["2023-09-30", 9016.37, 83407.45], - ["2023-10-31", 9016.37, 92423.82], - ["2023-11-30", 9016.37, 101440.19], - ["2023-12-31", 9016.37, 110456.56], - ["2024-01-15", 4718.15, 115174.71], + ["2023-08-31", 9070.36, 74445.07], + ["2023-09-30", 9070.36, 83515.43], + ["2023-10-31", 9070.36, 92585.79], + ["2023-11-30", 9070.36, 101656.15], + ["2023-12-31", 9070.36, 110726.51], + ["2024-01-15", 4448.2, 115174.71], ] schedules = [ @@ -205,24 +205,24 @@ class TestAssetValueAdjustment(IntegrationTestCase): ["2023-05-31", 9983.33, 45408.05], ["2023-06-30", 9983.33, 55391.38], ["2023-07-31", 9983.33, 65374.71], - ["2023-08-31", 2841.93, 68216.64], - ["2023-09-30", 2841.93, 71058.57], - ["2023-10-31", 2841.93, 73900.5], - ["2023-11-30", 2841.93, 76742.43], - ["2023-12-31", 2841.93, 79584.36], - ["2024-01-31", 2841.93, 82426.29], - ["2024-02-29", 2841.93, 85268.22], - ["2024-03-31", 2841.93, 88110.15], - ["2024-04-30", 2841.93, 90952.08], - ["2024-05-31", 2841.93, 93794.01], - ["2024-06-30", 2841.93, 96635.94], - ["2024-07-31", 2841.93, 99477.87], - ["2024-08-31", 2841.93, 102319.8], - ["2024-09-30", 2841.93, 105161.73], - ["2024-10-31", 2841.93, 108003.66], - ["2024-11-30", 2841.93, 110845.59], - ["2024-12-31", 2841.93, 113687.52], - ["2025-01-31", 1487.19, 115174.71], + ["2023-08-31", 2847.27, 68221.98], + ["2023-09-30", 2847.27, 71069.25], + ["2023-10-31", 2847.27, 73916.52], + ["2023-11-30", 2847.27, 76763.79], + ["2023-12-31", 2847.27, 79611.06], + ["2024-01-31", 2847.27, 82458.33], + ["2024-02-29", 2847.27, 85305.6], + ["2024-03-31", 2847.27, 88152.87], + ["2024-04-30", 2847.27, 91000.14], + ["2024-05-31", 2847.27, 93847.41], + ["2024-06-30", 2847.27, 96694.68], + ["2024-07-31", 2847.27, 99541.95], + ["2024-08-31", 2847.27, 102389.22], + ["2024-09-30", 2847.27, 105236.49], + ["2024-10-31", 2847.27, 108083.76], + ["2024-11-30", 2847.27, 110931.03], + ["2024-12-31", 2847.27, 113778.3], + ["2025-01-31", 1396.41, 115174.71], ] schedules = [ @@ -250,12 +250,12 @@ class TestAssetValueAdjustment(IntegrationTestCase): ["2023-05-31", 9983.33, 45408.05], ["2023-06-30", 9983.33, 55391.38], ["2023-07-31", 9983.33, 65374.71], - ["2023-08-31", 8916.79, 74291.5], - ["2023-09-30", 8916.79, 83208.29], - ["2023-10-31", 8916.79, 92125.08], - ["2023-11-30", 8916.79, 101041.87], - ["2023-12-31", 8916.79, 109958.66], - ["2024-01-15", 4666.05, 114624.71], + ["2023-08-31", 8970.18, 74344.89], + ["2023-09-30", 8970.18, 83315.07], + ["2023-10-31", 8970.18, 92285.25], + ["2023-11-30", 8970.18, 101255.43], + ["2023-12-31", 8970.18, 110225.61], + ["2024-01-15", 4399.1, 114624.71], ] schedules = [