blob: dc094e1c918d060d81948a419404e198ee42de80 [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
Chinmay D. Pai86636212020-03-11 16:20:07 +05309from erpnext.assets.doctype.asset.asset import make_sales_invoice
Kanchan Chauhane58a41a2017-10-17 15:17:24 +053010from erpnext.assets.doctype.asset.depreciation import post_depreciation_entries, scrap_asset
Nabin Hait3edefb12016-07-20 16:13:18 +053011
Chinmay D. Pai86636212020-03-11 16:20:07 +053012
Nabin Hait3edefb12016-07-20 16:13:18 +053013def work():
14 frappe.set_user(frappe.db.get_global('demo_accounts_user'))
15
Nabin Hait117be7d2017-04-18 14:02:07 +053016 # Enable booking asset depreciation entry automatically
17 frappe.db.set_value("Accounts Settings", None, "book_asset_depreciation_entry_automatically", 1)
Chinmay D. Pai86636212020-03-11 16:20:07 +053018
Nabin Hait3edefb12016-07-20 16:13:18 +053019 # post depreciation entries as on today
20 post_depreciation_entries()
Chinmay D. Pai86636212020-03-11 16:20:07 +053021
Nabin Hait3edefb12016-07-20 16:13:18 +053022 # scrap a random asset
23 frappe.db.set_value("Company", "Wind Power LLC", "disposal_account", "Gain/Loss on Asset Disposal - WPL")
Chinmay D. Pai86636212020-03-11 16:20:07 +053024
Nabin Hait3edefb12016-07-20 16:13:18 +053025 asset = get_random_asset()
26 scrap_asset(asset.name)
Nabin Hait3edefb12016-07-20 16:13:18 +053027
Chinmay D. Pai86636212020-03-11 16:20:07 +053028 # Sell a random asset
29 sell_an_asset()
30
Nabin Hait3edefb12016-07-20 16:13:18 +053031
32def sell_an_asset():
33 asset = get_random_asset()
34 si = make_sales_invoice(asset.name, asset.item_code, "Wind Power LLC")
35 si.customer = get_random("Customer")
36 si.get("items")[0].rate = asset.value_after_depreciation * 0.8 \
37 if asset.value_after_depreciation else asset.gross_purchase_amount * 0.9
38 si.save()
39 si.submit()
Chinmay D. Pai86636212020-03-11 16:20:07 +053040
41
Nabin Hait3edefb12016-07-20 16:13:18 +053042def get_random_asset():
43 return frappe.db.sql(""" select name, item_code, value_after_depreciation, gross_purchase_amount
Chinmay D. Pai86636212020-03-11 16:20:07 +053044 from `tabAsset`
Nabin Hait3edefb12016-07-20 16:13:18 +053045 where docstatus=1 and status not in ("Scrapped", "Sold") order by rand() limit 1""", as_dict=1)[0]