fix: provide filter by depreciable assets in fixed asset register (#34803)
diff --git a/erpnext/assets/report/fixed_asset_register/fixed_asset_register.js b/erpnext/assets/report/fixed_asset_register/fixed_asset_register.js
index 06989a9..65a4226 100644
--- a/erpnext/assets/report/fixed_asset_register/fixed_asset_register.js
+++ b/erpnext/assets/report/fixed_asset_register/fixed_asset_register.js
@@ -24,7 +24,7 @@
"label": __("Period Based On"),
"fieldtype": "Select",
"options": ["Fiscal Year", "Date Range"],
- "default": ["Fiscal Year"],
+ "default": "Fiscal Year",
"reqd": 1
},
{
@@ -76,12 +76,6 @@
options: "Asset Category"
},
{
- fieldname:"finance_book",
- label: __("Finance Book"),
- fieldtype: "Link",
- options: "Finance Book"
- },
- {
fieldname:"cost_center",
label: __("Cost Center"),
fieldtype: "Link",
@@ -96,8 +90,20 @@
reqd: 1
},
{
- fieldname:"is_existing_asset",
- label: __("Is Existing Asset"),
+ fieldname:"finance_book",
+ label: __("Finance Book"),
+ fieldtype: "Link",
+ options: "Finance Book",
+ depends_on: "eval: doc.only_depreciable_assets == 1",
+ },
+ {
+ fieldname:"only_depreciable_assets",
+ label: __("Only depreciable assets"),
+ fieldtype: "Check"
+ },
+ {
+ fieldname:"only_existing_assets",
+ label: __("Only existing assets"),
fieldtype: "Check"
},
]
diff --git a/erpnext/assets/report/fixed_asset_register/fixed_asset_register.py b/erpnext/assets/report/fixed_asset_register/fixed_asset_register.py
index 59d43b1..5fbcbe2 100644
--- a/erpnext/assets/report/fixed_asset_register/fixed_asset_register.py
+++ b/erpnext/assets/report/fixed_asset_register/fixed_asset_register.py
@@ -45,8 +45,10 @@
filters.year_end_date = getdate(fiscal_year.year_end_date)
conditions[date_field] = ["between", [filters.year_start_date, filters.year_end_date]]
- if filters.get("is_existing_asset"):
- conditions["is_existing_asset"] = filters.get("is_existing_asset")
+ if filters.get("only_depreciable_assets"):
+ conditions["calculate_depreciation"] = filters.get("only_depreciable_assets")
+ if filters.get("only_existing_assets"):
+ conditions["is_existing_asset"] = filters.get("only_existing_assets")
if filters.get("asset_category"):
conditions["asset_category"] = filters.get("asset_category")
if filters.get("cost_center"):
@@ -102,19 +104,18 @@
]
assets_record = frappe.db.get_all("Asset", filters=conditions, fields=fields)
- assets_linked_to_fb = frappe.db.get_all(
- doctype="Asset Finance Book",
- filters={"finance_book": filters.finance_book or ("is", "not set")},
- pluck="parent",
- )
+ assets_linked_to_fb = None
+
+ if filters.only_depreciable_assets:
+ assets_linked_to_fb = frappe.db.get_all(
+ doctype="Asset Finance Book",
+ filters={"finance_book": filters.finance_book or ("is", "not set")},
+ pluck="parent",
+ )
for asset in assets_record:
- if filters.finance_book:
- if asset.asset_id not in assets_linked_to_fb:
- continue
- else:
- if asset.calculate_depreciation and asset.asset_id not in assets_linked_to_fb:
- continue
+ if assets_linked_to_fb and asset.asset_id not in assets_linked_to_fb:
+ continue
asset_value = get_asset_value_after_depreciation(asset.asset_id, filters.finance_book)
row = {
@@ -172,11 +173,11 @@
"datasets": [
{
"name": _("Asset Value"),
- "values": [d.get("asset_value") for d in labels_values_map.values()],
+ "values": [flt(d.get("asset_value"), 2) for d in labels_values_map.values()],
},
{
"name": _("Depreciatied Amount"),
- "values": [d.get("depreciated_amount") for d in labels_values_map.values()],
+ "values": [flt(d.get("depreciated_amount"), 2) for d in labels_values_map.values()],
},
],
},
@@ -312,7 +313,7 @@
return [
{
- "label": _("Asset Id"),
+ "label": _("Asset ID"),
"fieldtype": "Link",
"fieldname": "asset_id",
"options": "Asset",