blob: a734ffd127d12778907d2df4d4f84778f4c45090 [file] [log] [blame]
Rushabh Mehtaad45e312013-11-20 12:59:58 +05301# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
Rushabh Mehtae67d1fb2013-08-05 14:59:54 +05302# License: GNU General Public License v3. See license.txt
Anand Doshi9d9aec12013-01-17 15:44:57 +05303
4from __future__ import unicode_literals
Rushabh Mehta793ba6b2014-02-14 15:47:51 +05305import frappe
Rushabh Mehtaa1516472014-04-30 19:38:28 +05306from frappe import _, throw
Anand Doshi9d9aec12013-01-17 15:44:57 +05307
8def get_company_currency(company):
Anand Doshie9baaa62014-02-26 12:35:33 +05309 currency = frappe.db.get_value("Company", company, "default_currency")
Anand Doshi9d9aec12013-01-17 15:44:57 +053010 if not currency:
Anand Doshie9baaa62014-02-26 12:35:33 +053011 currency = frappe.db.get_default("currency")
Anand Doshi9d9aec12013-01-17 15:44:57 +053012 if not currency:
Rushabh Mehtaff938022014-04-15 18:40:00 +053013 throw(_('Please specify Default Currency in Company Master and Global Defaults'))
Rushabh Mehta9f0d6252014-04-14 19:20:45 +053014
Anand Doshif8f0c0d2013-01-17 20:20:56 +053015 return currency
16
Anand Doshi61a2f682013-06-21 17:55:31 +053017def get_root_of(doctype):
18 """Get root element of a DocType with a tree structure"""
Rushabh Mehta9f0d6252014-04-14 19:20:45 +053019 result = frappe.db.sql_list("""select name from `tab%s`
20 where lft=1 and rgt=(select max(rgt) from `tab%s` where docstatus < 2)""" %
Nabin Hait869913c2013-06-28 15:00:24 +053021 (doctype, doctype))
Anand Doshi61a2f682013-06-21 17:55:31 +053022 return result[0] if result else None
Rushabh Mehta9f0d6252014-04-14 19:20:45 +053023
Anand Doshi61a2f682013-06-21 17:55:31 +053024def get_ancestors_of(doctype, name):
25 """Get ancestor elements of a DocType with a tree structure"""
Anand Doshie9baaa62014-02-26 12:35:33 +053026 lft, rgt = frappe.db.get_value(doctype, name, ["lft", "rgt"])
Rushabh Mehta9f0d6252014-04-14 19:20:45 +053027 result = frappe.db.sql_list("""select name from `tab%s`
Anand Doshi99100a42013-07-04 17:13:53 +053028 where lft<%s and rgt>%s order by lft desc""" % (doctype, "%s", "%s"), (lft, rgt))
29 return result or []
Anand Doshi61a2f682013-06-21 17:55:31 +053030
Rushabh Mehta793ba6b2014-02-14 15:47:51 +053031@frappe.whitelist()
Rushabh Mehta4a404e92013-08-09 18:11:35 +053032def get_price_list_currency(price_list):
Rushabh Mehta9f0d6252014-04-14 19:20:45 +053033 price_list_currency = frappe.db.get_value("Price List", {"name": price_list,
Akhilesh Darjeee82eee52014-01-20 16:09:45 +053034 "enabled": 1}, "currency")
35
36 if not price_list_currency:
Rushabh Mehta9f0d6252014-04-14 19:20:45 +053037 throw(_("Price List {0} is disabled").format(price_list))
Akhilesh Darjeee82eee52014-01-20 16:09:45 +053038 else:
Rushabh Mehta9f0d6252014-04-14 19:20:45 +053039 return {"price_list_currency": price_list_currency}
Rushabh Mehtaa1516472014-04-30 19:38:28 +053040
41def before_tests():
42 # complete setup if missing
43 from erpnext.setup.page.setup_wizard.setup_wizard import setup_account
44 if not frappe.get_list("Item Group"):
45 setup_account({
46 "currency" :"USD",
47 "first_name" :"Test",
48 "last_name" :"User",
49 "company_name" :"Wind Power LLC",
50 "timezone" :"America/New_York",
51 "company_abbr" :"WP",
52 "industry" :"Manufacturing",
53 "country" :"United States",
54 "fy_start_date" :"2014-01-01",
55 "fy_end_date" :"2014-12-31",
56 "language" :"english",
57 "company_tagline" :"Testing",
58 "email" :"test@erpnext.com",
59 "password" :"test"
60 })
61
62 frappe.db.sql("delete from `tabLeave Allocation`")
63 frappe.db.sql("delete from `tabLeave Application`")
64 frappe.db.sql("delete from `tabSalary Slip`")
65 frappe.db.sql("delete from `tabItem Price`")
66 frappe.db.commit()