feat: add date filter in the fixed asset register (#19799)
* feat: add date filter in the fixed asset register
* fix: remove function from keyword argument
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 426caaa..8c737d0 100644
--- a/erpnext/assets/report/fixed_asset_register/fixed_asset_register.js
+++ b/erpnext/assets/report/fixed_asset_register/fixed_asset_register.js
@@ -26,5 +26,11 @@
fieldtype: "Link",
options: "Finance Book"
},
+ {
+ fieldname:"date",
+ label: __("Date"),
+ fieldtype: "Date",
+ default: frappe.datetime.get_today()
+ },
]
};
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 f395499..57b68b4 100644
--- a/erpnext/assets/report/fixed_asset_register/fixed_asset_register.py
+++ b/erpnext/assets/report/fixed_asset_register/fixed_asset_register.py
@@ -4,7 +4,7 @@
from __future__ import unicode_literals
import frappe
from frappe import _
-from frappe.utils import cstr
+from frappe.utils import cstr, today, flt
def execute(filters=None):
filters = frappe._dict(filters or {})
@@ -86,8 +86,8 @@
"width": 90
},
{
- "label": _("Current Value"),
- "fieldname": "current_value",
+ "label": _("Asset Value"),
+ "fieldname": "asset_value",
"options": "Currency",
"width": 90
},
@@ -114,7 +114,7 @@
data = []
conditions = get_conditions(filters)
- current_value_map = get_finance_book_value_map(filters.finance_book)
+ depreciation_amount_map = get_finance_book_value_map(filters.date, filters.finance_book)
pr_supplier_map = get_purchase_receipt_supplier_map()
pi_supplier_map = get_purchase_invoice_supplier_map()
@@ -125,7 +125,9 @@
"available_for_use_date", "status", "purchase_invoice"])
for asset in assets_record:
- if current_value_map.get(asset.name) is not None:
+ asset_value = asset.gross_purchase_amount - flt(asset.opening_accumulated_depreciation) \
+ - flt(depreciation_amount_map.get(asset.name))
+ if asset_value:
row = {
"asset_id": asset.name,
"asset_name": asset.asset_name,
@@ -138,19 +140,24 @@
"location": asset.location,
"asset_category": asset.asset_category,
"purchase_date": asset.purchase_date,
- "current_value": current_value_map.get(asset.name)
+ "asset_value": asset_value
}
data.append(row)
return data
-def get_finance_book_value_map(finance_book=''):
+def get_finance_book_value_map(date, finance_book=''):
+ if not date:
+ date = today()
return frappe._dict(frappe.db.sql(''' Select
- parent, value_after_depreciation
- FROM `tabAsset Finance Book`
+ parent, SUM(depreciation_amount)
+ FROM `tabDepreciation Schedule`
WHERE
- parentfield='finance_books'
- AND ifnull(finance_book, '')=%s''', cstr(finance_book)))
+ parentfield='schedules'
+ AND schedule_date<=%s
+ AND journal_entry IS NOT NULL
+ AND ifnull(finance_book, '')=%s
+ GROUP BY parent''', (date, cstr(finance_book))))
def get_purchase_receipt_supplier_map():
return frappe._dict(frappe.db.sql(''' Select