blob: 72cd420550af1fa52f153fce52c46183e7d156cc [file] [log] [blame]
Nabin Hait3edefb12016-07-20 16:13:18 +05301# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
2# License: GNU General Public License v3. See license.txt
3
Nabin Hait3edefb12016-07-20 16:13:18 +05304
5import frappe
6from frappe.utils.make_random import get_random
Chillar Anand915b3432021-09-02 16:44:59 +05307
Chinmay D. Pai86636212020-03-11 16:20:07 +05308from erpnext.assets.doctype.asset.asset import make_sales_invoice
Kanchan Chauhane58a41a2017-10-17 15:17:24 +05309from erpnext.assets.doctype.asset.depreciation import post_depreciation_entries, scrap_asset
Nabin Hait3edefb12016-07-20 16:13:18 +053010
Chinmay D. Pai86636212020-03-11 16:20:07 +053011
Nabin Hait3edefb12016-07-20 16:13:18 +053012def work():
13 frappe.set_user(frappe.db.get_global('demo_accounts_user'))
14
Nabin Hait117be7d2017-04-18 14:02:07 +053015 # Enable booking asset depreciation entry automatically
16 frappe.db.set_value("Accounts Settings", None, "book_asset_depreciation_entry_automatically", 1)
Chinmay D. Pai86636212020-03-11 16:20:07 +053017
Nabin Hait3edefb12016-07-20 16:13:18 +053018 # post depreciation entries as on today
19 post_depreciation_entries()
Chinmay D. Pai86636212020-03-11 16:20:07 +053020
Nabin Hait3edefb12016-07-20 16:13:18 +053021 # scrap a random asset
22 frappe.db.set_value("Company", "Wind Power LLC", "disposal_account", "Gain/Loss on Asset Disposal - WPL")
Chinmay D. Pai86636212020-03-11 16:20:07 +053023
Nabin Hait3edefb12016-07-20 16:13:18 +053024 asset = get_random_asset()
25 scrap_asset(asset.name)
Nabin Hait3edefb12016-07-20 16:13:18 +053026
Chinmay D. Pai86636212020-03-11 16:20:07 +053027 # Sell a random asset
28 sell_an_asset()
29
Nabin Hait3edefb12016-07-20 16:13:18 +053030
31def sell_an_asset():
32 asset = get_random_asset()
33 si = make_sales_invoice(asset.name, asset.item_code, "Wind Power LLC")
34 si.customer = get_random("Customer")
35 si.get("items")[0].rate = asset.value_after_depreciation * 0.8 \
36 if asset.value_after_depreciation else asset.gross_purchase_amount * 0.9
37 si.save()
38 si.submit()
Chinmay D. Pai86636212020-03-11 16:20:07 +053039
40
Nabin Hait3edefb12016-07-20 16:13:18 +053041def get_random_asset():
42 return frappe.db.sql(""" select name, item_code, value_after_depreciation, gross_purchase_amount
Chinmay D. Pai86636212020-03-11 16:20:07 +053043 from `tabAsset`
Nabin Hait3edefb12016-07-20 16:13:18 +053044 where docstatus=1 and status not in ("Scrapped", "Sold") order by rand() limit 1""", as_dict=1)[0]