mirror of
https://github.com/frappe/erpnext.git
synced 2026-02-21 10:26:30 +00:00
fix: do not mandate depreciation account for assets without depreciation (#47427)
(cherry picked from commit 51ea33e743)
Co-authored-by: Khushi Rawat <142375893+khushi8112@users.noreply.github.com>
This commit is contained in:
@@ -718,16 +718,15 @@ def get_gl_entries_on_asset_disposal(
|
|||||||
|
|
||||||
|
|
||||||
def get_asset_details(asset, finance_book=None):
|
def get_asset_details(asset, finance_book=None):
|
||||||
fixed_asset_account, accumulated_depr_account, _ = get_depreciation_accounts(
|
value_after_depreciation = asset.get_value_after_depreciation(finance_book)
|
||||||
asset.asset_category, asset.company
|
accumulated_depr_amount = flt(asset.gross_purchase_amount) - flt(value_after_depreciation)
|
||||||
|
|
||||||
|
fixed_asset_account, accumulated_depr_account, _ = get_asset_accounts(
|
||||||
|
asset.asset_category, asset.company, accumulated_depr_amount
|
||||||
)
|
)
|
||||||
disposal_account, depreciation_cost_center = get_disposal_account_and_cost_center(asset.company)
|
disposal_account, depreciation_cost_center = get_disposal_account_and_cost_center(asset.company)
|
||||||
depreciation_cost_center = asset.cost_center or depreciation_cost_center
|
depreciation_cost_center = asset.cost_center or depreciation_cost_center
|
||||||
|
|
||||||
value_after_depreciation = asset.get_value_after_depreciation(finance_book)
|
|
||||||
|
|
||||||
accumulated_depr_amount = flt(asset.gross_purchase_amount) - flt(value_after_depreciation)
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
fixed_asset_account,
|
fixed_asset_account,
|
||||||
asset,
|
asset,
|
||||||
@@ -739,6 +738,48 @@ def get_asset_details(asset, finance_book=None):
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
def get_asset_accounts(asset_category, company, accumulated_depr_amount):
|
||||||
|
fixed_asset_account = accumulated_depreciation_account = depreciation_expense_account = None
|
||||||
|
|
||||||
|
accounts = frappe.db.get_value(
|
||||||
|
"Asset Category Account",
|
||||||
|
filters={"parent": asset_category, "company_name": company},
|
||||||
|
fieldname=[
|
||||||
|
"fixed_asset_account",
|
||||||
|
"accumulated_depreciation_account",
|
||||||
|
"depreciation_expense_account",
|
||||||
|
],
|
||||||
|
as_dict=1,
|
||||||
|
)
|
||||||
|
|
||||||
|
if accounts:
|
||||||
|
fixed_asset_account = accounts.fixed_asset_account
|
||||||
|
accumulated_depreciation_account = accounts.accumulated_depreciation_account
|
||||||
|
depreciation_expense_account = accounts.depreciation_expense_account
|
||||||
|
|
||||||
|
if not fixed_asset_account:
|
||||||
|
frappe.throw(_("Please set Fixed Asset Account in Asset Category {0}").format(asset_category))
|
||||||
|
|
||||||
|
if accumulated_depr_amount:
|
||||||
|
accounts = frappe.get_cached_value(
|
||||||
|
"Company", company, ["accumulated_depreciation_account", "depreciation_expense_account"]
|
||||||
|
)
|
||||||
|
|
||||||
|
if not accumulated_depreciation_account:
|
||||||
|
accumulated_depreciation_account = accounts[0]
|
||||||
|
if not depreciation_expense_account:
|
||||||
|
depreciation_expense_account = accounts[1]
|
||||||
|
|
||||||
|
if not accumulated_depreciation_account or not depreciation_expense_account:
|
||||||
|
frappe.throw(
|
||||||
|
_("Please set Depreciation related Accounts in Asset Category {0} or Company {1}").format(
|
||||||
|
asset_category, company
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
return fixed_asset_account, accumulated_depreciation_account, depreciation_expense_account
|
||||||
|
|
||||||
|
|
||||||
def get_profit_gl_entries(
|
def get_profit_gl_entries(
|
||||||
asset, profit_amount, gl_entries, disposal_account, depreciation_cost_center, date=None
|
asset, profit_amount, gl_entries, disposal_account, depreciation_cost_center, date=None
|
||||||
):
|
):
|
||||||
|
|||||||
Reference in New Issue
Block a user