From 6d791cabd15f9cd6737b220c7305c0ec5ea67646 Mon Sep 17 00:00:00 2001 From: anandbaburajan Date: Mon, 26 Dec 2022 22:13:11 +0530 Subject: [PATCH] chore: more refactoring --- .../doctype/journal_entry/journal_entry.py | 4 +- .../asset_depreciation_schedule.json | 3 +- .../asset_depreciation_schedule.py | 42 ++++++++++++------- .../asset_value_adjustment.py | 1 - ...sset_depreciation_schedules_from_assets.py | 1 - 5 files changed, 32 insertions(+), 19 deletions(-) diff --git a/erpnext/accounts/doctype/journal_entry/journal_entry.py b/erpnext/accounts/doctype/journal_entry/journal_entry.py index b9463bc2101..d69777a21a0 100644 --- a/erpnext/accounts/doctype/journal_entry/journal_entry.py +++ b/erpnext/accounts/doctype/journal_entry/journal_entry.py @@ -24,7 +24,7 @@ from erpnext.accounts.utils import ( get_stock_and_account_balance, ) from erpnext.assets.doctype.asset_depreciation_schedule.asset_depreciation_schedule import ( - get_cancelled_depr_schedule, + get_draft_or_active_depr_schedule, ) from erpnext.controllers.accounts_controller import AccountsController @@ -287,7 +287,7 @@ class JournalEntry(AccountsController): if d.reference_type == "Asset" and d.reference_name: asset = frappe.get_doc("Asset", d.reference_name) for row in asset.get("finance_books"): - depr_schedule = get_cancelled_depr_schedule(asset.name, row.finance_book) + depr_schedule = get_draft_or_active_depr_schedule(asset.name, row.finance_book) for s in depr_schedule: if s.journal_entry == self.name: diff --git a/erpnext/assets/doctype/asset_depreciation_schedule/asset_depreciation_schedule.json b/erpnext/assets/doctype/asset_depreciation_schedule/asset_depreciation_schedule.json index 14e849b7dd3..f6f594c51e9 100644 --- a/erpnext/assets/doctype/asset_depreciation_schedule/asset_depreciation_schedule.json +++ b/erpnext/assets/doctype/asset_depreciation_schedule/asset_depreciation_schedule.json @@ -157,10 +157,11 @@ "read_only": 1 } ], + "in_create": 1, "index_web_pages_for_search": 1, "is_submittable": 1, "links": [], - "modified": "2022-12-15 16:28:44.585745", + "modified": "2022-12-26 20:32:43.342271", "modified_by": "Administrator", "module": "Assets", "name": "Asset Depreciation Schedule", 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 47965cf6aaf..d004bdbf61d 100644 --- a/erpnext/assets/doctype/asset_depreciation_schedule/asset_depreciation_schedule.py +++ b/erpnext/assets/doctype/asset_depreciation_schedule/asset_depreciation_schedule.py @@ -42,6 +42,12 @@ class AssetDepreciationSchedule(Document): ) ) + def on_submit(self): + self.db_set("status", "Active") + + def on_cancel(self): + self.db_set("status", "Cancelled") + def make_draft_asset_depr_schedules_if_not_present(asset_doc): for row in asset_doc.get("finance_books"): @@ -121,6 +127,18 @@ def convert_draft_asset_depr_schedules_into_active(asset_doc): asset_depr_schedule_doc.submit() +def cancel_asset_depr_schedules(asset_doc): + for row in asset_doc.get("finance_books"): + asset_depr_schedule_doc = get_draft_or_active_asset_depr_schedule_doc( + asset_doc.name, row.finance_book + ) + + if not asset_depr_schedule_doc: + continue + + asset_depr_schedule_doc.cancel() + + def make_new_active_asset_depr_schedules_and_cancel_current_ones( asset_doc, notes, date_of_disposal=None, date_of_return=None ): @@ -165,18 +183,6 @@ def get_temp_asset_depr_schedule_doc( return asset_depr_schedule_doc -def cancel_asset_depr_schedules(asset_doc): - for row in asset_doc.get("finance_books"): - asset_depr_schedule_doc = get_draft_or_active_asset_depr_schedule_doc( - asset_doc.name, row.finance_book - ) - - if not asset_depr_schedule_doc: - continue - - asset_depr_schedule_doc.cancel() - - def get_draft_or_active_asset_depr_schedule_name(asset_name, finance_book=None): finance_book_filter = ["finance_book", "is", "not set"] if finance_book: @@ -197,15 +203,23 @@ def get_cancelled_asset_depr_schedule_name(asset_name, finance_book=None): if finance_book: finance_book_filter = ["finance_book", "=", finance_book] - return frappe.db.get_value( + cancelled_asset_depr_schedule_names = frappe.db.get_all( doctype="Asset Depreciation Schedule", filters=[ ["asset", "=", asset_name], finance_book_filter, - ["docstatus", "=", "2"], + ["status", "=", "Cancelled"], ], + order_by="creation desc", + limit=1, + pluck="name", ) + if cancelled_asset_depr_schedule_names: + return cancelled_asset_depr_schedule_names[0] + + return + @frappe.whitelist() def get_draft_or_active_depr_schedule(asset_name, finance_book=None): diff --git a/erpnext/assets/doctype/asset_value_adjustment/asset_value_adjustment.py b/erpnext/assets/doctype/asset_value_adjustment/asset_value_adjustment.py index 3ead832ee2d..90ecfec5af5 100644 --- a/erpnext/assets/doctype/asset_value_adjustment/asset_value_adjustment.py +++ b/erpnext/assets/doctype/asset_value_adjustment/asset_value_adjustment.py @@ -167,7 +167,6 @@ class AssetValueAdjustment(Document): if not asset_data.journal_entry: asset_data.db_update() - new_asset_depr_schedule_doc.status = "Active" new_asset_depr_schedule_doc.submit() diff --git a/erpnext/patches/v15_0/create_asset_depreciation_schedules_from_assets.py b/erpnext/patches/v15_0/create_asset_depreciation_schedules_from_assets.py index 14d3689791b..8dcbb2a1cc8 100644 --- a/erpnext/patches/v15_0/create_asset_depreciation_schedules_from_assets.py +++ b/erpnext/patches/v15_0/create_asset_depreciation_schedules_from_assets.py @@ -30,7 +30,6 @@ def execute(): update_depreciation_schedules(asset.name, asset_depr_schedule_doc.name, fb_row.idx) if asset.docstatus == 1: - asset_depr_schedule_doc.status = "Active" asset_depr_schedule_doc.submit()