Nabin Hait | 3edefb1 | 2016-07-20 16:13:18 +0530 | [diff] [blame] | 1 | # Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors |
| 2 | # License: GNU General Public License v3. See license.txt |
| 3 | |
Nabin Hait | 3edefb1 | 2016-07-20 16:13:18 +0530 | [diff] [blame] | 4 | |
| 5 | import frappe |
| 6 | from frappe.utils.make_random import get_random |
Chillar Anand | 915b343 | 2021-09-02 16:44:59 +0530 | [diff] [blame] | 7 | |
Chinmay D. Pai | 8663621 | 2020-03-11 16:20:07 +0530 | [diff] [blame] | 8 | from erpnext.assets.doctype.asset.asset import make_sales_invoice |
Kanchan Chauhan | e58a41a | 2017-10-17 15:17:24 +0530 | [diff] [blame] | 9 | from erpnext.assets.doctype.asset.depreciation import post_depreciation_entries, scrap_asset |
Nabin Hait | 3edefb1 | 2016-07-20 16:13:18 +0530 | [diff] [blame] | 10 | |
Chinmay D. Pai | 8663621 | 2020-03-11 16:20:07 +0530 | [diff] [blame] | 11 | |
Nabin Hait | 3edefb1 | 2016-07-20 16:13:18 +0530 | [diff] [blame] | 12 | def work(): |
| 13 | frappe.set_user(frappe.db.get_global('demo_accounts_user')) |
| 14 | |
Nabin Hait | 117be7d | 2017-04-18 14:02:07 +0530 | [diff] [blame] | 15 | # Enable booking asset depreciation entry automatically |
| 16 | frappe.db.set_value("Accounts Settings", None, "book_asset_depreciation_entry_automatically", 1) |
Chinmay D. Pai | 8663621 | 2020-03-11 16:20:07 +0530 | [diff] [blame] | 17 | |
Nabin Hait | 3edefb1 | 2016-07-20 16:13:18 +0530 | [diff] [blame] | 18 | # post depreciation entries as on today |
| 19 | post_depreciation_entries() |
Chinmay D. Pai | 8663621 | 2020-03-11 16:20:07 +0530 | [diff] [blame] | 20 | |
Nabin Hait | 3edefb1 | 2016-07-20 16:13:18 +0530 | [diff] [blame] | 21 | # scrap a random asset |
| 22 | frappe.db.set_value("Company", "Wind Power LLC", "disposal_account", "Gain/Loss on Asset Disposal - WPL") |
Chinmay D. Pai | 8663621 | 2020-03-11 16:20:07 +0530 | [diff] [blame] | 23 | |
Nabin Hait | 3edefb1 | 2016-07-20 16:13:18 +0530 | [diff] [blame] | 24 | asset = get_random_asset() |
| 25 | scrap_asset(asset.name) |
Nabin Hait | 3edefb1 | 2016-07-20 16:13:18 +0530 | [diff] [blame] | 26 | |
Chinmay D. Pai | 8663621 | 2020-03-11 16:20:07 +0530 | [diff] [blame] | 27 | # Sell a random asset |
| 28 | sell_an_asset() |
| 29 | |
Nabin Hait | 3edefb1 | 2016-07-20 16:13:18 +0530 | [diff] [blame] | 30 | |
| 31 | def 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. Pai | 8663621 | 2020-03-11 16:20:07 +0530 | [diff] [blame] | 39 | |
| 40 | |
Nabin Hait | 3edefb1 | 2016-07-20 16:13:18 +0530 | [diff] [blame] | 41 | def get_random_asset(): |
| 42 | return frappe.db.sql(""" select name, item_code, value_after_depreciation, gross_purchase_amount |
Chinmay D. Pai | 8663621 | 2020-03-11 16:20:07 +0530 | [diff] [blame] | 43 | from `tabAsset` |
Nabin Hait | 3edefb1 | 2016-07-20 16:13:18 +0530 | [diff] [blame] | 44 | where docstatus=1 and status not in ("Scrapped", "Sold") order by rand() limit 1""", as_dict=1)[0] |