diff --git a/erpnext/accounts/doctype/sales_invoice/sales_invoice.py b/erpnext/accounts/doctype/sales_invoice/sales_invoice.py index a99e92d9e0..6e87415644 100644 --- a/erpnext/accounts/doctype/sales_invoice/sales_invoice.py +++ b/erpnext/accounts/doctype/sales_invoice/sales_invoice.py @@ -1185,11 +1185,11 @@ class SalesInvoice(SellingController): if asset.calculate_depreciation: posting_date = frappe.db.get_value("Sales Invoice", self.return_against, "posting_date") reverse_depreciation_entry_made_after_disposal(asset, posting_date) - reset_depreciation_schedule(asset, self.posting_date) + reset_depreciation_schedule(asset, self.posting_date, "Return asset") else: if asset.calculate_depreciation: - depreciate_asset(asset, self.posting_date, notes="Sell asset") + depreciate_asset(asset, self.posting_date, "Sell asset") fixed_asset_gl_entries = get_gl_entries_on_asset_disposal( asset, item.base_net_amount, item.finance_book, self.get("doctype"), self.get("name") diff --git a/erpnext/assets/doctype/asset/depreciation.py b/erpnext/assets/doctype/asset/depreciation.py index a912a93ac5..ba4c7b01fb 100644 --- a/erpnext/assets/doctype/asset/depreciation.py +++ b/erpnext/assets/doctype/asset/depreciation.py @@ -214,7 +214,7 @@ def scrap_asset(asset_name): date = today() - depreciate_asset(asset, date, notes="Scrap asset") + depreciate_asset(asset, date, "Scrap asset") depreciation_series = frappe.get_cached_value( "Company", asset.company, "series_for_depreciation_entry" @@ -246,7 +246,7 @@ def restore_asset(asset_name): asset = frappe.get_doc("Asset", asset_name) reverse_depreciation_entry_made_after_disposal(asset, asset.disposal_date) - reset_depreciation_schedule(asset, asset.disposal_date) + reset_depreciation_schedule(asset, asset.disposal_date, "Restore asset") je = asset.journal_entry_for_scrap @@ -258,20 +258,20 @@ def restore_asset(asset_name): asset.set_status() -def depreciate_asset(asset, date, notes): +def depreciate_asset(asset_doc, date, notes): make_new_active_asset_depr_schedules_and_cancel_current_ones( - asset, date_of_disposal=date, notes=notes + asset_doc, notes, date_of_disposal=date ) - make_depreciation_entry_for_all_asset_depr_schedules(asset, date) + make_depreciation_entry_for_all_asset_depr_schedules(asset_doc, date) -def reset_depreciation_schedule(asset, date, notes): +def reset_depreciation_schedule(asset_doc, date, notes): make_new_active_asset_depr_schedules_and_cancel_current_ones( - asset, date_of_return=date, notes=notes + asset_doc, notes, date_of_return=date ) - modify_depreciation_schedule_for_asset_repairs(asset) + modify_depreciation_schedule_for_asset_repairs(asset_doc) def modify_depreciation_schedule_for_asset_repairs(asset): @@ -283,7 +283,7 @@ def modify_depreciation_schedule_for_asset_repairs(asset): if repair.increase_in_asset_life: asset_repair = frappe.get_doc("Asset Repair", repair.name) asset_repair.modify_depreciation_schedule() - asset.prepare_depreciation_data() + make_new_active_asset_depr_schedules_and_cancel_current_ones(asset, "Asset Repair TODO") def reverse_depreciation_entry_made_after_disposal(asset, date): diff --git a/erpnext/assets/doctype/asset_capitalization/asset_capitalization.py b/erpnext/assets/doctype/asset_capitalization/asset_capitalization.py index 0787894dfd..22459c44ef 100644 --- a/erpnext/assets/doctype/asset_capitalization/asset_capitalization.py +++ b/erpnext/assets/doctype/asset_capitalization/asset_capitalization.py @@ -19,6 +19,9 @@ from erpnext.assets.doctype.asset.depreciation import ( reverse_depreciation_entry_made_after_disposal, ) from erpnext.assets.doctype.asset_category.asset_category import get_asset_category_account +from erpnext.assets.doctype.asset_depreciation_schedule.asset_depreciation_schedule import ( + make_new_active_asset_depr_schedules_and_cancel_current_ones, +) from erpnext.assets.doctype.asset_value_adjustment.asset_value_adjustment import ( get_current_asset_value, ) @@ -427,7 +430,7 @@ class AssetCapitalization(StockController): asset = self.get_asset(item) if asset.calculate_depreciation: - depreciate_asset(asset, self.posting_date, notes="TODO") + depreciate_asset(asset, self.posting_date, "Asset Capitalization TODO") fixed_asset_gl_entries = get_gl_entries_on_asset_disposal( asset, @@ -512,9 +515,9 @@ class AssetCapitalization(StockController): asset_doc.purchase_date = self.posting_date asset_doc.gross_purchase_amount = total_target_asset_value asset_doc.purchase_receipt_amount = total_target_asset_value - asset_doc.prepare_depreciation_data() - asset_doc.flags.ignore_validate_update_after_submit = True - asset_doc.save() + make_new_active_asset_depr_schedules_and_cancel_current_ones( + asset_doc, "Asset Capitalization TODO" + ) elif self.docstatus == 2: for item in self.asset_items: asset = self.get_asset(item) @@ -523,7 +526,7 @@ class AssetCapitalization(StockController): if asset.calculate_depreciation: reverse_depreciation_entry_made_after_disposal(asset, self.posting_date) - reset_depreciation_schedule(asset, self.posting_date) + reset_depreciation_schedule(asset, self.posting_date, "Asset Capitalization TODO") def get_asset(self, item): asset = frappe.get_doc("Asset", item.asset) 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 2480c0303f..ed104c63de 100644 --- a/erpnext/assets/doctype/asset_depreciation_schedule/asset_depreciation_schedule.py +++ b/erpnext/assets/doctype/asset_depreciation_schedule/asset_depreciation_schedule.py @@ -84,7 +84,7 @@ def convert_draft_asset_depr_schedules_into_active(asset_doc): def make_new_active_asset_depr_schedules_and_cancel_current_ones( - asset_doc, date_of_disposal=None, date_of_return=None, notes=None + asset_doc, notes, date_of_disposal=None, date_of_return=None ): for row in asset_doc.get("finance_books"): current_asset_depr_schedule_name = get_asset_depr_schedule_name(asset_doc.name, row.finance_book) diff --git a/erpnext/assets/doctype/asset_repair/asset_repair.py b/erpnext/assets/doctype/asset_repair/asset_repair.py index 962e7fb58d..33530bd89b 100644 --- a/erpnext/assets/doctype/asset_repair/asset_repair.py +++ b/erpnext/assets/doctype/asset_repair/asset_repair.py @@ -10,6 +10,7 @@ from erpnext.accounts.general_ledger import make_gl_entries from erpnext.assets.doctype.asset.asset import get_asset_account from erpnext.assets.doctype.asset_depreciation_schedule.asset_depreciation_schedule import ( get_depr_schedule_from_asset_depr_schedule_of_asset, + make_new_active_asset_depr_schedules_and_cancel_current_ones, ) from erpnext.controllers.accounts_controller import AccountsController @@ -54,10 +55,9 @@ class AssetRepair(AccountsController): and self.increase_in_asset_life ): self.modify_depreciation_schedule() - - self.asset_doc.flags.ignore_validate_update_after_submit = True - self.asset_doc.prepare_depreciation_data() - self.asset_doc.save() + make_new_active_asset_depr_schedules_and_cancel_current_ones( + self.asset_doc, "Asset Repair submit TODO" + ) def before_cancel(self): self.asset_doc = frappe.get_doc("Asset", self.asset) @@ -75,10 +75,9 @@ class AssetRepair(AccountsController): and self.increase_in_asset_life ): self.revert_depreciation_schedule_on_cancellation() - - self.asset_doc.flags.ignore_validate_update_after_submit = True - self.asset_doc.prepare_depreciation_data() - self.asset_doc.save() + make_new_active_asset_depr_schedules_and_cancel_current_ones( + self.asset_doc, "Asset Repair cancel TODO" + ) def check_repair_status(self): if self.repair_status == "Pending":