diff --git a/erpnext/assets/doctype/asset/depreciation.py b/erpnext/assets/doctype/asset/depreciation.py index 9bc3a488c8..3530fbd6de 100644 --- a/erpnext/assets/doctype/asset/depreciation.py +++ b/erpnext/assets/doctype/asset/depreciation.py @@ -294,7 +294,7 @@ def reverse_depreciation_entry_made_after_disposal(asset, date): for schedule_idx, schedule in enumerate(depr_schedule): if schedule.schedule_date == date: if not disposal_was_made_on_original_schedule_date( - asset, schedule, schedule_idx, date + schedule_idx, row, date ) or disposal_happens_in_the_future(date): reverse_journal_entry = make_reverse_journal_entry(schedule.journal_entry) @@ -318,15 +318,14 @@ def get_depreciation_amount_in_je(journal_entry): # if the invoice had been posted on the date the depreciation was initially supposed to happen, the depreciation shouldn't be undone -def disposal_was_made_on_original_schedule_date(asset, schedule, row, posting_date_of_disposal): - for finance_book in asset.get("finance_books"): - if schedule.finance_book == finance_book.finance_book: - orginal_schedule_date = add_months( - finance_book.depreciation_start_date, row * cint(finance_book.frequency_of_depreciation) - ) +def disposal_was_made_on_original_schedule_date(schedule_idx, row, posting_date_of_disposal): + orginal_schedule_date = add_months( + row.depreciation_start_date, schedule_idx * cint(row.frequency_of_depreciation) + ) + + if orginal_schedule_date == posting_date_of_disposal: + return True - if orginal_schedule_date == posting_date_of_disposal: - return True return False 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 8d854dcad9..35c461a972 100644 --- a/erpnext/assets/doctype/asset_depreciation_schedule/asset_depreciation_schedule.py +++ b/erpnext/assets/doctype/asset_depreciation_schedule/asset_depreciation_schedule.py @@ -50,17 +50,18 @@ def update_draft_asset_depr_schedules(asset_doc, date_of_disposal=None, date_of_ def prepare_draft_asset_depr_schedule_data( asset_depr_schedule_doc, asset_doc, row, date_of_disposal, date_of_return ): - set_draft_asset_depr_schedule_details(asset_depr_schedule_doc, asset_doc.name, row) + set_draft_asset_depr_schedule_details(asset_depr_schedule_doc, asset_doc, row) make_depr_schedule(asset_depr_schedule_doc, asset_doc, row, date_of_disposal) - set_accumulated_depreciation( - asset_depr_schedule_doc, asset_doc, row, date_of_disposal, date_of_return - ) + set_accumulated_depreciation(asset_depr_schedule_doc, row, date_of_disposal, date_of_return) -def set_draft_asset_depr_schedule_details(asset_depr_schedule_doc, asset_name, row): - asset_depr_schedule_doc.asset = asset_name +def set_draft_asset_depr_schedule_details(asset_depr_schedule_doc, asset_doc, row): + asset_depr_schedule_doc.asset = asset_doc.name asset_depr_schedule_doc.finance_book = row.finance_book asset_depr_schedule_doc.finance_book_id = row.idx + asset_depr_schedule_doc.opening_accumulated_depreciation = ( + asset_doc.opening_accumulated_depreciation + ) asset_depr_schedule_doc.depreciation_method = row.depreciation_method asset_depr_schedule_doc.total_number_of_depreciations = row.total_number_of_depreciations asset_depr_schedule_doc.frequency_of_depreciation = row.frequency_of_depreciation @@ -99,9 +100,7 @@ def make_new_active_asset_depr_schedules_and_cancel_current_ones( new_asset_depr_schedule_doc = frappe.copy_doc(current_asset_depr_schedule_doc) make_depr_schedule(new_asset_depr_schedule_doc, asset_doc, row, date_of_disposal) - set_accumulated_depreciation( - new_asset_depr_schedule_doc, asset_doc, row, date_of_disposal, date_of_return - ) + set_accumulated_depreciation(new_asset_depr_schedule_doc, row, date_of_disposal, date_of_return) new_asset_depr_schedule_doc.notes = notes @@ -243,8 +242,6 @@ def _make_depr_schedule(asset_depr_schedule_doc, asset_doc, row, start, date_of_ date_of_disposal, depreciation_amount, row.depreciation_method, - row.finance_book, - row.idx, ) break @@ -309,8 +306,6 @@ def _make_depr_schedule(asset_depr_schedule_doc, asset_doc, row, start, date_of_ schedule_date, depreciation_amount, row.depreciation_method, - row.finance_book, - row.idx, ) @@ -339,8 +334,6 @@ def add_depr_schedule_row( schedule_date, depreciation_amount, depreciation_method, - finance_book, - finance_book_id, ): asset_depr_schedule_doc.append( "depreciation_schedule", @@ -348,15 +341,12 @@ def add_depr_schedule_row( "schedule_date": schedule_date, "depreciation_amount": depreciation_amount, "depreciation_method": depreciation_method, - "finance_book": finance_book, - "finance_book_id": finance_book_id, }, ) def set_accumulated_depreciation( asset_depr_schedule_doc, - asset_doc, row, date_of_disposal=None, date_of_return=None, @@ -367,17 +357,14 @@ def set_accumulated_depreciation( for d in asset_depr_schedule_doc.get("depreciation_schedule") if d.depreciation_method == "Straight Line" ] - finance_books = [] + + accumulated_depreciation = flt(asset_depr_schedule_doc.opening_accumulated_depreciation) + value_after_depreciation = flt(row.value_after_depreciation) for i, d in enumerate(asset_depr_schedule_doc.get("depreciation_schedule")): if ignore_booked_entry and d.journal_entry: continue - if int(d.finance_book_id) not in finance_books: - accumulated_depreciation = flt(asset_doc.opening_accumulated_depreciation) - value_after_depreciation = flt(asset_doc.get_value_after_depreciation(d.finance_book_id)) - finance_books.append(int(d.finance_book_id)) - depreciation_amount = flt(d.depreciation_amount, d.precision("depreciation_amount")) value_after_depreciation -= flt(depreciation_amount) 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 4783565323..d1538097b4 100644 --- a/erpnext/assets/doctype/asset_value_adjustment/asset_value_adjustment.py +++ b/erpnext/assets/doctype/asset_value_adjustment/asset_value_adjustment.py @@ -155,7 +155,7 @@ class AssetValueAdjustment(Document): d.db_update() - set_accumulated_depreciation(new_asset_depr_schedule_doc, asset, d, ignore_booked_entry=True) + set_accumulated_depreciation(new_asset_depr_schedule_doc, d, ignore_booked_entry=True) for asset_data in depr_schedule: if not asset_data.journal_entry: asset_data.db_update() diff --git a/erpnext/assets/doctype/depreciation_schedule/depreciation_schedule.json b/erpnext/assets/doctype/depreciation_schedule/depreciation_schedule.json index 1a669f9de1..882c4bf00b 100644 --- a/erpnext/assets/doctype/depreciation_schedule/depreciation_schedule.json +++ b/erpnext/assets/doctype/depreciation_schedule/depreciation_schedule.json @@ -7,25 +7,15 @@ "editable_grid": 1, "engine": "InnoDB", "field_order": [ - "finance_book", "schedule_date", "depreciation_amount", "column_break_3", "accumulated_depreciation_amount", "journal_entry", "make_depreciation_entry", - "finance_book_id", "depreciation_method" ], "fields": [ - { - "fieldname": "finance_book", - "fieldtype": "Link", - "in_list_view": 1, - "label": "Finance Book", - "options": "Finance Book", - "read_only": 1 - }, { "fieldname": "schedule_date", "fieldtype": "Date", @@ -69,14 +59,6 @@ "fieldtype": "Button", "label": "Make Depreciation Entry" }, - { - "fieldname": "finance_book_id", - "fieldtype": "Data", - "hidden": 1, - "label": "Finance Book Id", - "print_hide": 1, - "read_only": 1 - }, { "fieldname": "depreciation_method", "fieldtype": "Select", @@ -89,7 +71,7 @@ ], "istable": 1, "links": [], - "modified": "2022-11-29 18:27:05.748012", + "modified": "2022-12-06 20:35:50.264281", "modified_by": "Administrator", "module": "Assets", "name": "Depreciation Schedule",