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