diff --git a/erpnext/assets/doctype/asset/depreciation.py b/erpnext/assets/doctype/asset/depreciation.py index a954d1c9981..f9880e80930 100644 --- a/erpnext/assets/doctype/asset/depreciation.py +++ b/erpnext/assets/doctype/asset/depreciation.py @@ -54,7 +54,7 @@ def book_depreciation_entries(date): (depr_schedule_name, asset_name, sch_start_idx, sch_end_idx) = data try: - make_depreciation_entry( + _make_depreciation_entry( depr_schedule_name, date, sch_start_idx, @@ -129,7 +129,7 @@ def get_companies_with_frozen_limits(): def make_depreciation_entry_on_disposal(asset_doc, disposal_date=None): for row in asset_doc.get("finance_books"): depr_schedule_name = get_asset_depr_schedule_name(asset_doc.name, "Active", row.finance_book) - make_depreciation_entry(depr_schedule_name, disposal_date) + _make_depreciation_entry(depr_schedule_name, disposal_date) def get_credit_debit_accounts_for_asset(asset_category, company): @@ -172,6 +172,22 @@ def make_depreciation_entry( sch_start_idx: int | None = None, sch_end_idx: int | None = None, accounting_dimensions: list[dict] | None = None, +): + depr_schedule_doc = frappe.get_doc("Asset Depreciation Schedule", depr_schedule_name) + frappe.has_permission("Asset Depreciation Schedule", "write", depr_schedule_doc, throw=True) + frappe.has_permission("Asset", "write", depr_schedule_doc.asset, throw=True) + + return _make_depreciation_entry( + depr_schedule_name, date, sch_start_idx, sch_end_idx, accounting_dimensions + ) + + +def _make_depreciation_entry( + depr_schedule_name: str, + date: DateTimeLikeObject | None = None, + sch_start_idx: int | None = None, + sch_end_idx: int | None = None, + accounting_dimensions: list[dict] | None = None, ): frappe.has_permission("Journal Entry", throw=True) date = date or today()