From 3488ba05eb2b3d32083b15c699893f46a136fe6b Mon Sep 17 00:00:00 2001 From: khushi8112 Date: Tue, 15 Jul 2025 12:22:50 +0530 Subject: [PATCH 1/5] fix: split and set value after depreciation --- erpnext/assets/doctype/asset/asset.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/erpnext/assets/doctype/asset/asset.py b/erpnext/assets/doctype/asset/asset.py index 616680d07ba..649678d879f 100644 --- a/erpnext/assets/doctype/asset/asset.py +++ b/erpnext/assets/doctype/asset/asset.py @@ -1215,6 +1215,10 @@ def update_existing_asset(asset, remaining_qty, new_asset_name): opening_accumulated_depreciation = flt( (asset.opening_accumulated_depreciation * remaining_qty) / asset.asset_quantity ) + value_after_depreciation = flt( + (asset.value_after_depreciation * remaining_qty) / asset.asset_quantity, + asset.precision("gross_purchase_amount"), + ) frappe.db.set_value( "Asset", @@ -1222,6 +1226,7 @@ def update_existing_asset(asset, remaining_qty, new_asset_name): { "opening_accumulated_depreciation": opening_accumulated_depreciation, "gross_purchase_amount": remaining_gross_purchase_amount, + "value_after_depreciation": value_after_depreciation, "asset_quantity": remaining_qty, }, ) @@ -1283,6 +1288,9 @@ def create_new_asset_after_split(asset, split_qty): new_asset.opening_accumulated_depreciation = opening_accumulated_depreciation new_asset.asset_quantity = split_qty new_asset.split_from = asset.name + new_asset.value_after_depreciation = flt( + (asset.value_after_depreciation * split_qty) / asset.asset_quantity, asset.precision("gross_purchase_amount") + ) for row in new_asset.get("finance_books"): row.value_after_depreciation = flt((row.value_after_depreciation * split_qty) / asset.asset_quantity) From f35fd9842e3f285b607d1bb69b0d819a29c729cd Mon Sep 17 00:00:00 2001 From: khushi8112 Date: Tue, 15 Jul 2025 13:30:35 +0530 Subject: [PATCH 2/5] fix: updated test --- erpnext/assets/doctype/asset/test_asset.py | 1 + 1 file changed, 1 insertion(+) diff --git a/erpnext/assets/doctype/asset/test_asset.py b/erpnext/assets/doctype/asset/test_asset.py index 9c8db82f41b..5108f0931b7 100644 --- a/erpnext/assets/doctype/asset/test_asset.py +++ b/erpnext/assets/doctype/asset/test_asset.py @@ -487,6 +487,7 @@ class TestAsset(AssetSetup): self.assertEqual(new_asset.gross_purchase_amount, 24000) self.assertEqual(new_asset.opening_accumulated_depreciation, 4000) self.assertEqual(new_asset.split_from, asset.name) + self.assertEqual(new_asset.value_after_depreciation, 16000) self.assertEqual(depr_schedule_of_new_asset[0].depreciation_amount, 4000) self.assertEqual(depr_schedule_of_new_asset[1].depreciation_amount, 4000) From 68162f79a1e891b80b750b45912319c611ccfce2 Mon Sep 17 00:00:00 2001 From: khushi8112 Date: Tue, 15 Jul 2025 13:40:00 +0530 Subject: [PATCH 3/5] chore: run pre-commit --- erpnext/assets/doctype/asset/asset.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/erpnext/assets/doctype/asset/asset.py b/erpnext/assets/doctype/asset/asset.py index 649678d879f..019c97114fa 100644 --- a/erpnext/assets/doctype/asset/asset.py +++ b/erpnext/assets/doctype/asset/asset.py @@ -1289,7 +1289,8 @@ def create_new_asset_after_split(asset, split_qty): new_asset.asset_quantity = split_qty new_asset.split_from = asset.name new_asset.value_after_depreciation = flt( - (asset.value_after_depreciation * split_qty) / asset.asset_quantity, asset.precision("gross_purchase_amount") + (asset.value_after_depreciation * split_qty) / asset.asset_quantity, + asset.precision("gross_purchase_amount"), ) for row in new_asset.get("finance_books"): From 4383d29d7b2a3cad3d88c82ecdc049da14c51126 Mon Sep 17 00:00:00 2001 From: khushi8112 Date: Tue, 15 Jul 2025 14:34:00 +0530 Subject: [PATCH 4/5] fix: set value after depreciation when creating test asset --- erpnext/assets/doctype/asset/test_asset.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/erpnext/assets/doctype/asset/test_asset.py b/erpnext/assets/doctype/asset/test_asset.py index 5108f0931b7..571b8734991 100644 --- a/erpnext/assets/doctype/asset/test_asset.py +++ b/erpnext/assets/doctype/asset/test_asset.py @@ -1707,6 +1707,9 @@ def create_asset(**args): "is_composite_asset": args.is_composite_asset or 0, "asset_quantity": args.get("asset_quantity") or 1, "depr_entry_posting_status": args.depr_entry_posting_status or "", + "value_after_depreciation": ( + (args.gross_purchase_amount or 100000) - (args.opening_accumulated_depreciation or 0) + ), } ) From c57ca1ae29028d9e366159bd88d0d4cd99e54481 Mon Sep 17 00:00:00 2001 From: khushi8112 Date: Tue, 15 Jul 2025 15:36:13 +0530 Subject: [PATCH 5/5] fix: incorrect test --- erpnext/assets/doctype/asset/test_asset.py | 4 ---- 1 file changed, 4 deletions(-) diff --git a/erpnext/assets/doctype/asset/test_asset.py b/erpnext/assets/doctype/asset/test_asset.py index 571b8734991..9c8db82f41b 100644 --- a/erpnext/assets/doctype/asset/test_asset.py +++ b/erpnext/assets/doctype/asset/test_asset.py @@ -487,7 +487,6 @@ class TestAsset(AssetSetup): self.assertEqual(new_asset.gross_purchase_amount, 24000) self.assertEqual(new_asset.opening_accumulated_depreciation, 4000) self.assertEqual(new_asset.split_from, asset.name) - self.assertEqual(new_asset.value_after_depreciation, 16000) self.assertEqual(depr_schedule_of_new_asset[0].depreciation_amount, 4000) self.assertEqual(depr_schedule_of_new_asset[1].depreciation_amount, 4000) @@ -1707,9 +1706,6 @@ def create_asset(**args): "is_composite_asset": args.is_composite_asset or 0, "asset_quantity": args.get("asset_quantity") or 1, "depr_entry_posting_status": args.depr_entry_posting_status or "", - "value_after_depreciation": ( - (args.gross_purchase_amount or 100000) - (args.opening_accumulated_depreciation or 0) - ), } )