[report] Added asset depreciation ledger report
diff --git a/erpnext/accounts/report/asset_depreciation_ledger/__init__.py b/erpnext/accounts/report/asset_depreciation_ledger/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/erpnext/accounts/report/asset_depreciation_ledger/__init__.py
diff --git a/erpnext/accounts/report/asset_depreciation_ledger/asset_depreciation_ledger.js b/erpnext/accounts/report/asset_depreciation_ledger/asset_depreciation_ledger.js
new file mode 100644
index 0000000..9fa99c7
--- /dev/null
+++ b/erpnext/accounts/report/asset_depreciation_ledger/asset_depreciation_ledger.js
@@ -0,0 +1,41 @@
+// Copyright (c) 2016, Frappe Technologies Pvt. Ltd. and contributors
+// For license information, please see license.txt
+
+frappe.query_reports["Asset Depreciation Ledger"] = {
+ "filters": [
+ {
+ "fieldname":"company",
+ "label": __("Company"),
+ "fieldtype": "Link",
+ "options": "Company",
+ "default": frappe.defaults.get_user_default("Company"),
+ "reqd": 1
+ },
+ {
+ "fieldname":"from_date",
+ "label": __("From Date"),
+ "fieldtype": "Date",
+ "default": frappe.datetime.add_months(frappe.datetime.get_today(), -1),
+ "reqd": 1
+ },
+ {
+ "fieldname":"to_date",
+ "label": __("To Date"),
+ "fieldtype": "Date",
+ "default": frappe.datetime.get_today(),
+ "reqd": 1
+ },
+ {
+ "fieldname":"asset",
+ "label": __("Asset"),
+ "fieldtype": "Link",
+ "options": "Asset"
+ },
+ {
+ "fieldname":"asset_category",
+ "label": __("Asset Category"),
+ "fieldtype": "Link",
+ "options": "Asset Category"
+ }
+ ]
+}
diff --git a/erpnext/accounts/report/asset_depreciation_ledger/asset_depreciation_ledger.json b/erpnext/accounts/report/asset_depreciation_ledger/asset_depreciation_ledger.json
new file mode 100644
index 0000000..67c36fa
--- /dev/null
+++ b/erpnext/accounts/report/asset_depreciation_ledger/asset_depreciation_ledger.json
@@ -0,0 +1,18 @@
+{
+ "add_total_row": 0,
+ "apply_user_permissions": 1,
+ "creation": "2016-04-08 14:49:58.133098",
+ "disabled": 0,
+ "docstatus": 0,
+ "doctype": "Report",
+ "idx": 0,
+ "is_standard": "Yes",
+ "modified": "2016-04-08 14:49:58.133098",
+ "modified_by": "Administrator",
+ "module": "Accounts",
+ "name": "Asset Depreciation Ledger",
+ "owner": "Administrator",
+ "ref_doctype": "Asset",
+ "report_name": "Asset Depreciation Ledger",
+ "report_type": "Script Report"
+}
\ No newline at end of file
diff --git a/erpnext/accounts/report/asset_depreciation_ledger/asset_depreciation_ledger.py b/erpnext/accounts/report/asset_depreciation_ledger/asset_depreciation_ledger.py
new file mode 100644
index 0000000..5497384
--- /dev/null
+++ b/erpnext/accounts/report/asset_depreciation_ledger/asset_depreciation_ledger.py
@@ -0,0 +1,118 @@
+# Copyright (c) 2013, Frappe Technologies Pvt. Ltd. and contributors
+# For license information, please see license.txt
+
+from __future__ import unicode_literals
+import frappe
+from frappe import _
+
+def execute(filters=None):
+ columns, data = get_columns(), get_data(filters)
+ return columns, data
+
+def get_data(filters):
+ data = frappe.db.sql("""
+ select
+ a.name as asset, a.asset_category, a.status,
+ a.depreciation_method, a.purchase_date, a.gross_purchase_amount,
+ ds.schedule_date as depreciation_date, ds.depreciation_amount,
+ ds.accumulated_depreciation_amount,
+ (a.gross_purchase_amount - ds.accumulated_depreciation_amount) as amount_after_depreciation,
+ ds.journal_entry as depreciation_entry
+ from
+ `tabAsset` a, `tabDepreciation Schedule` ds
+ where
+ a.name = ds.parent
+ and a.docstatus=1
+ and ifnull(ds.journal_entry, '') != ''
+ and ds.schedule_date between %(from_date)s and %(to_date)s
+ and a.company = %(company)s
+ {conditions}
+ order by
+ a.name asc, ds.schedule_date asc
+ """.format(conditions=get_filter_conditions(filters)), filters, as_dict=1)
+
+ return data
+
+def get_filter_conditions(filters):
+ conditions = ""
+
+ if filters.get("asset"):
+ conditions += " and a.name = %(asset)s"
+
+ if filters.get("asset_category"):
+ conditions += " and a.asset_category = %(asset_category)s"
+
+ return conditions
+
+def get_columns():
+ return [
+ {
+ "label": _("Asset"),
+ "fieldname": "asset",
+ "fieldtype": "Link",
+ "options": "Asset",
+ "width": 120
+ },
+ {
+ "label": _("Depreciation Date"),
+ "fieldname": "depreciation_date",
+ "fieldtype": "Date",
+ "width": 120
+ },
+ {
+ "label": _("Purchase Amount"),
+ "fieldname": "gross_purchase_amount",
+ "fieldtype": "Currency",
+ "width": 120
+ },
+ {
+ "label": _("Depreciation Amount"),
+ "fieldname": "depreciation_amount",
+ "fieldtype": "Currency",
+ "width": 140
+ },
+ {
+ "label": _("Accumulated Depreciation Amount"),
+ "fieldname": "accumulated_depreciation_amount",
+ "fieldtype": "Currency",
+ "width": 210
+ },
+ {
+ "label": _("Amount After Depreciation"),
+ "fieldname": "amount_after_depreciation",
+ "fieldtype": "Currency",
+ "width": 180
+ },
+ {
+ "label": _("Depreciation Entry"),
+ "fieldname": "depreciation_entry",
+ "fieldtype": "Link",
+ "options": "Journal Entry",
+ "width": 140
+ },
+ {
+ "label": _("Asset Category"),
+ "fieldname": "asset_category",
+ "fieldtype": "Link",
+ "options": "Asset Category",
+ "width": 120
+ },
+ {
+ "label": _("Current Status"),
+ "fieldname": "status",
+ "fieldtype": "Data",
+ "width": 120
+ },
+ {
+ "label": _("Depreciation Method"),
+ "fieldname": "depreciation_method",
+ "fieldtype": "Data",
+ "width": 130
+ },
+ {
+ "label": _("Purchase Date"),
+ "fieldname": "purchase_date",
+ "fieldtype": "Date",
+ "width": 120
+ }
+ ]