fix: Scrap Asset Accounting Dimensions (#31949)
* fix: Scrap Asset Accounting Dimensions
diff --git a/erpnext/accounts/doctype/sales_invoice/sales_invoice.py b/erpnext/accounts/doctype/sales_invoice/sales_invoice.py
index e51938b..94db9a9 100644
--- a/erpnext/accounts/doctype/sales_invoice/sales_invoice.py
+++ b/erpnext/accounts/doctype/sales_invoice/sales_invoice.py
@@ -1081,7 +1081,7 @@
if self.is_return:
fixed_asset_gl_entries = get_gl_entries_on_asset_regain(
- asset, item.base_net_amount, item.finance_book
+ asset, item.base_net_amount, item.finance_book, self.get("doctype"), self.get("name")
)
asset.db_set("disposal_date", None)
@@ -1091,7 +1091,7 @@
else:
fixed_asset_gl_entries = get_gl_entries_on_asset_disposal(
- asset, item.base_net_amount, item.finance_book
+ asset, item.base_net_amount, item.finance_book, self.get("doctype"), self.get("name")
)
asset.db_set("disposal_date", self.posting_date)
diff --git a/erpnext/assets/doctype/asset/asset.js b/erpnext/assets/doctype/asset/asset.js
index a43a16c..5512d41 100644
--- a/erpnext/assets/doctype/asset/asset.js
+++ b/erpnext/assets/doctype/asset/asset.js
@@ -230,7 +230,7 @@
datasets: [{
color: 'green',
values: asset_values,
- formatted: asset_values.map(d => d.toFixed(2))
+ formatted: asset_values.map(d => d?.toFixed(2))
}]
},
type: 'line'
diff --git a/erpnext/assets/doctype/asset/depreciation.py b/erpnext/assets/doctype/asset/depreciation.py
index 7438638..a4bb960 100644
--- a/erpnext/assets/doctype/asset/depreciation.py
+++ b/erpnext/assets/doctype/asset/depreciation.py
@@ -235,7 +235,9 @@
asset.set_status()
-def get_gl_entries_on_asset_regain(asset, selling_amount=0, finance_book=None):
+def get_gl_entries_on_asset_regain(
+ asset, selling_amount=0, finance_book=None, voucher_type=None, voucher_no=None
+):
(
fixed_asset_account,
asset,
@@ -247,28 +249,45 @@
) = get_asset_details(asset, finance_book)
gl_entries = [
- {
- "account": fixed_asset_account,
- "debit_in_account_currency": asset.gross_purchase_amount,
- "debit": asset.gross_purchase_amount,
- "cost_center": depreciation_cost_center,
- },
- {
- "account": accumulated_depr_account,
- "credit_in_account_currency": accumulated_depr_amount,
- "credit": accumulated_depr_amount,
- "cost_center": depreciation_cost_center,
- },
+ asset.get_gl_dict(
+ {
+ "account": fixed_asset_account,
+ "debit_in_account_currency": asset.gross_purchase_amount,
+ "debit": asset.gross_purchase_amount,
+ "cost_center": depreciation_cost_center,
+ "posting_date": getdate(),
+ },
+ item=asset,
+ ),
+ asset.get_gl_dict(
+ {
+ "account": accumulated_depr_account,
+ "credit_in_account_currency": accumulated_depr_amount,
+ "credit": accumulated_depr_amount,
+ "cost_center": depreciation_cost_center,
+ "posting_date": getdate(),
+ },
+ item=asset,
+ ),
]
profit_amount = abs(flt(value_after_depreciation)) - abs(flt(selling_amount))
if profit_amount:
- get_profit_gl_entries(profit_amount, gl_entries, disposal_account, depreciation_cost_center)
+ get_profit_gl_entries(
+ asset, profit_amount, gl_entries, disposal_account, depreciation_cost_center
+ )
+
+ if voucher_type and voucher_no:
+ for entry in gl_entries:
+ entry["voucher_type"] = voucher_type
+ entry["voucher_no"] = voucher_no
return gl_entries
-def get_gl_entries_on_asset_disposal(asset, selling_amount=0, finance_book=None):
+def get_gl_entries_on_asset_disposal(
+ asset, selling_amount=0, finance_book=None, voucher_type=None, voucher_no=None
+):
(
fixed_asset_account,
asset,
@@ -280,23 +299,38 @@
) = get_asset_details(asset, finance_book)
gl_entries = [
- {
- "account": fixed_asset_account,
- "credit_in_account_currency": asset.gross_purchase_amount,
- "credit": asset.gross_purchase_amount,
- "cost_center": depreciation_cost_center,
- },
- {
- "account": accumulated_depr_account,
- "debit_in_account_currency": accumulated_depr_amount,
- "debit": accumulated_depr_amount,
- "cost_center": depreciation_cost_center,
- },
+ asset.get_gl_dict(
+ {
+ "account": fixed_asset_account,
+ "credit_in_account_currency": asset.gross_purchase_amount,
+ "credit": asset.gross_purchase_amount,
+ "cost_center": depreciation_cost_center,
+ "posting_date": getdate(),
+ },
+ item=asset,
+ ),
+ asset.get_gl_dict(
+ {
+ "account": accumulated_depr_account,
+ "debit_in_account_currency": accumulated_depr_amount,
+ "debit": accumulated_depr_amount,
+ "cost_center": depreciation_cost_center,
+ "posting_date": getdate(),
+ },
+ item=asset,
+ ),
]
profit_amount = flt(selling_amount) - flt(value_after_depreciation)
if profit_amount:
- get_profit_gl_entries(profit_amount, gl_entries, disposal_account, depreciation_cost_center)
+ get_profit_gl_entries(
+ asset, profit_amount, gl_entries, disposal_account, depreciation_cost_center
+ )
+
+ if voucher_type and voucher_no:
+ for entry in gl_entries:
+ entry["voucher_type"] = voucher_type
+ entry["voucher_no"] = voucher_no
return gl_entries
@@ -333,15 +367,21 @@
)
-def get_profit_gl_entries(profit_amount, gl_entries, disposal_account, depreciation_cost_center):
+def get_profit_gl_entries(
+ asset, profit_amount, gl_entries, disposal_account, depreciation_cost_center
+):
debit_or_credit = "debit" if profit_amount < 0 else "credit"
gl_entries.append(
- {
- "account": disposal_account,
- "cost_center": depreciation_cost_center,
- debit_or_credit: abs(profit_amount),
- debit_or_credit + "_in_account_currency": abs(profit_amount),
- }
+ asset.get_gl_dict(
+ {
+ "account": disposal_account,
+ "cost_center": depreciation_cost_center,
+ debit_or_credit: abs(profit_amount),
+ debit_or_credit + "_in_account_currency": abs(profit_amount),
+ "posting_date": getdate(),
+ },
+ item=asset,
+ )
)
diff --git a/erpnext/assets/doctype/asset_capitalization/asset_capitalization.py b/erpnext/assets/doctype/asset_capitalization/asset_capitalization.py
index 2e6f0ad..93194c0 100644
--- a/erpnext/assets/doctype/asset_capitalization/asset_capitalization.py
+++ b/erpnext/assets/doctype/asset_capitalization/asset_capitalization.py
@@ -428,7 +428,11 @@
asset.reload()
fixed_asset_gl_entries = get_gl_entries_on_asset_disposal(
- asset, item.asset_value, item.get("finance_book") or self.get("finance_book")
+ asset,
+ item.asset_value,
+ item.get("finance_book") or self.get("finance_book"),
+ self.get("doctype"),
+ self.get("name"),
)
asset.db_set("disposal_date", self.posting_date)