diff --git a/erpnext/assets/doctype/asset/asset.py b/erpnext/assets/doctype/asset/asset.py index 7f5e4debf29..23cb4d4d515 100644 --- a/erpnext/assets/doctype/asset/asset.py +++ b/erpnext/assets/doctype/asset/asset.py @@ -351,7 +351,7 @@ class Asset(AccountsController): if len(self.get("finance_books")) > 1 and any(start): self.sort_depreciation_schedule() - + def _make_depreciation_schedule( self, finance_book, start, date_of_disposal, value_after_depreciation=None ): @@ -428,7 +428,7 @@ class Asset(AccountsController): schedule_date = get_last_day(schedule_date) # if asset is being sold - if date_of_disposal: + if date_of_disposal and getdate(schedule_date) >= getdate(date_of_disposal): from_date = self.get_from_date_for_disposal(finance_book) depreciation_amount, days, months = self.get_pro_rata_amt( finance_book, diff --git a/erpnext/assets/doctype/asset/depreciation.py b/erpnext/assets/doctype/asset/depreciation.py index 22bd6b1d6ff..a0c4439ee76 100644 --- a/erpnext/assets/doctype/asset/depreciation.py +++ b/erpnext/assets/doctype/asset/depreciation.py @@ -157,7 +157,6 @@ def get_depreciation_cost_center_and_depreciation_series_for_company(): return res - @frappe.whitelist() def make_depreciation_entry( asset_name, @@ -210,9 +209,7 @@ def make_depreciation_entry( debit_account, accounting_dimensions, ) - frappe.db.commit() except Exception as e: - frappe.db.rollback() depreciation_posting_error = e asset.set_status() @@ -467,13 +464,14 @@ def restore_asset(asset_name): def depreciate_asset(asset, date): if not asset.calculate_depreciation: return - + asset.flags.ignore_validate_update_after_submit = True asset.prepare_depreciation_data(date_of_disposal=date) asset.save() make_depreciation_entry(asset.name, date) - + + asset.reload() cancel_depreciation_entries(asset, date)