Demo data for fixed asset depreciation
diff --git a/erpnext/demo/user/fixed_asset.py b/erpnext/demo/user/fixed_asset.py
new file mode 100644
index 0000000..bf3199e
--- /dev/null
+++ b/erpnext/demo/user/fixed_asset.py
@@ -0,0 +1,59 @@
+
+# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
+# License: GNU General Public License v3. See license.txt
+
+from __future__ import unicode_literals
+
+import frappe
+from frappe.utils.make_random import get_random
+from erpnext.accounts.doctype.asset.asset import make_purchase_invoice, make_sales_invoice
+from erpnext.accounts.doctype.asset.depreciation import post_depreciation_entries, scrap_asset
+
+def work():
+ frappe.set_user(frappe.db.get_global('demo_accounts_user'))
+
+ asset_list = make_asset_purchase_entry()
+
+ if not asset_list:
+ # fixed_asset.work() already run
+ return
+
+ # post depreciation entries as on today
+ post_depreciation_entries()
+
+ # scrap a random asset
+ frappe.db.set_value("Company", "Wind Power LLC", "disposal_account", "Gain/Loss on Asset Disposal - WPL")
+
+ asset = get_random_asset()
+ scrap_asset(asset.name)
+
+ # Sell a random asset
+ sell_an_asset()
+
+def make_asset_purchase_entry():
+ asset_list = frappe.get_all("Asset", filters={"purchase_invoice": ["in", ("", None)]},
+ fields=["name", "item_code", "gross_purchase_amount", "company", "purchase_date"])
+
+ # make purchase invoice
+ for asset in asset_list:
+ pi = make_purchase_invoice(asset.name, asset.item_code, asset.gross_purchase_amount,
+ asset.company, asset.purchase_date)
+ pi.supplier = get_random("Supplier")
+ pi.save()
+ pi.submit()
+
+ return asset_list
+
+def sell_an_asset():
+ asset = get_random_asset()
+ si = make_sales_invoice(asset.name, asset.item_code, "Wind Power LLC")
+ si.customer = get_random("Customer")
+ si.get("items")[0].rate = asset.value_after_depreciation * 0.8 \
+ if asset.value_after_depreciation else asset.gross_purchase_amount * 0.9
+ si.save()
+ si.submit()
+
+def get_random_asset():
+ return frappe.db.sql(""" select name, item_code, value_after_depreciation, gross_purchase_amount
+ from `tabAsset`
+ where docstatus=1 and status not in ("Scrapped", "Sold") order by rand() limit 1""", as_dict=1)[0]
diff --git a/erpnext/demo/user/hr.py b/erpnext/demo/user/hr.py
index bd86507..50f15bb 100644
--- a/erpnext/demo/user/hr.py
+++ b/erpnext/demo/user/hr.py
@@ -124,4 +124,4 @@
def get_random_item():
return frappe.db.sql_list(""" select name from `tabItem` where
- has_variants = 0 order by rand() limit 1""")[0]
+ has_variants=0 and is_stock_item=0 and is_fixed_asset=0 order by rand() limit 1""")[0]