blob: e4474151f6bd2b8dc2540cfcc518f965a4d9a21a [file] [log] [blame]
Anand Doshi486f9df2012-07-19 13:40:31 +05301from __future__ import unicode_literals
Nabin Hait6d7b0ce2017-06-15 11:09:27 +05302import frappe
3
Anand Doshi7e0479b2012-04-05 18:27:56 +05304install_docs = [
Rushabh Mehta94157332015-07-13 15:06:12 +05305 {"doctype":"Role", "role_name":"Stock Manager", "name":"Stock Manager"},
6 {"doctype":"Role", "role_name":"Item Manager", "name":"Item Manager"},
7 {"doctype":"Role", "role_name":"Stock User", "name":"Stock User"},
Anand Doshi24e18562012-04-17 11:45:35 +05308 {"doctype":"Role", "role_name":"Quality Manager", "name":"Quality Manager"},
Saurabh6bc7b892016-07-14 14:03:19 +05309 {"doctype":"Item Group", "item_group_name":"All Item Groups", "is_group": 1},
Rushabh Mehta6f9915c2013-01-16 17:48:17 +053010 {"doctype":"Item Group", "item_group_name":"Default",
Saurabh6bc7b892016-07-14 14:03:19 +053011 "parent_item_group":"All Item Groups", "is_group": 0},
Anand Doshi7e0479b2012-04-05 18:27:56 +053012]
Nabin Hait6d7b0ce2017-06-15 11:09:27 +053013
14def get_warehouse_account_map():
15 if not frappe.flags.warehouse_account_map or frappe.flags.in_test:
16 warehouse_account = frappe._dict()
17
18 for d in frappe.get_all('Warehouse', filters = {"is_group": 0},
19 fields = ["name", "account", "parent_warehouse", "company"]):
20 if not d.account:
21 d.account = get_warehouse_account(d.name, d.company)
22
23 if d.account:
24 d.account_currency = frappe.db.get_value('Account', d.account, 'account_currency')
25 warehouse_account.setdefault(d.name, d)
26
27 frappe.flags.warehouse_account_map = warehouse_account
28 return frappe.flags.warehouse_account_map
29
30def get_warehouse_account(warehouse, company):
31 lft, rgt = frappe.db.get_value("Warehouse", warehouse, ["lft", "rgt"])
32 account = frappe.db.sql("""
33 select
34 account from `tabWarehouse`
35 where
36 lft <= %s and rgt >= %s and company = %s
37 and account is not null and ifnull(account, '') !=''
38 order by lft desc limit 1""", (lft, rgt, company), as_list=1)
39
40 account = account[0][0] if account else None
41
42 if not account:
43 account = get_company_default_inventory_account(company)
44
45 return account
46
47def get_company_default_inventory_account(company):
48 return frappe.db.get_value('Company', company, 'default_inventory_account')