Rushabh Mehta | ad45e31 | 2013-11-20 12:59:58 +0530 | [diff] [blame] | 1 | # Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors |
Rushabh Mehta | e67d1fb | 2013-08-05 14:59:54 +0530 | [diff] [blame] | 2 | # License: GNU General Public License v3. See license.txt |
Anand Doshi | 9d9aec1 | 2013-01-17 15:44:57 +0530 | [diff] [blame] | 3 | |
| 4 | from __future__ import unicode_literals |
Rushabh Mehta | 793ba6b | 2014-02-14 15:47:51 +0530 | [diff] [blame] | 5 | import frappe |
| 6 | from frappe import _, msgprint, throw |
Anand Doshi | f8f0c0d | 2013-01-17 20:20:56 +0530 | [diff] [blame] | 7 | import json |
Anand Doshi | 9d9aec1 | 2013-01-17 15:44:57 +0530 | [diff] [blame] | 8 | |
| 9 | def get_company_currency(company): |
Anand Doshi | e9baaa6 | 2014-02-26 12:35:33 +0530 | [diff] [blame] | 10 | currency = frappe.db.get_value("Company", company, "default_currency") |
Anand Doshi | 9d9aec1 | 2013-01-17 15:44:57 +0530 | [diff] [blame] | 11 | if not currency: |
Anand Doshi | e9baaa6 | 2014-02-26 12:35:33 +0530 | [diff] [blame] | 12 | currency = frappe.db.get_default("currency") |
Anand Doshi | 9d9aec1 | 2013-01-17 15:44:57 +0530 | [diff] [blame] | 13 | if not currency: |
Akhilesh Darjee | e82eee5 | 2014-01-20 16:09:45 +0530 | [diff] [blame] | 14 | throw(_('Please specify Default Currency in Company Master \ |
| 15 | and Global Defaults')) |
Anand Doshi | 9d9aec1 | 2013-01-17 15:44:57 +0530 | [diff] [blame] | 16 | |
Anand Doshi | f8f0c0d | 2013-01-17 20:20:56 +0530 | [diff] [blame] | 17 | return currency |
| 18 | |
Anand Doshi | 61a2f68 | 2013-06-21 17:55:31 +0530 | [diff] [blame] | 19 | def get_root_of(doctype): |
| 20 | """Get root element of a DocType with a tree structure""" |
Anand Doshi | e9baaa6 | 2014-02-26 12:35:33 +0530 | [diff] [blame] | 21 | result = frappe.db.sql_list("""select name from `tab%s` |
Nabin Hait | 869913c | 2013-06-28 15:00:24 +0530 | [diff] [blame] | 22 | where lft=1 and rgt=(select max(rgt) from `tab%s` where docstatus < 2)""" % |
| 23 | (doctype, doctype)) |
Anand Doshi | 61a2f68 | 2013-06-21 17:55:31 +0530 | [diff] [blame] | 24 | return result[0] if result else None |
| 25 | |
| 26 | def get_ancestors_of(doctype, name): |
| 27 | """Get ancestor elements of a DocType with a tree structure""" |
Anand Doshi | e9baaa6 | 2014-02-26 12:35:33 +0530 | [diff] [blame] | 28 | lft, rgt = frappe.db.get_value(doctype, name, ["lft", "rgt"]) |
| 29 | result = frappe.db.sql_list("""select name from `tab%s` |
Anand Doshi | 99100a4 | 2013-07-04 17:13:53 +0530 | [diff] [blame] | 30 | where lft<%s and rgt>%s order by lft desc""" % (doctype, "%s", "%s"), (lft, rgt)) |
| 31 | return result or [] |
Anand Doshi | 61a2f68 | 2013-06-21 17:55:31 +0530 | [diff] [blame] | 32 | |
Rushabh Mehta | 793ba6b | 2014-02-14 15:47:51 +0530 | [diff] [blame] | 33 | @frappe.whitelist() |
Rushabh Mehta | 4a404e9 | 2013-08-09 18:11:35 +0530 | [diff] [blame] | 34 | def get_price_list_currency(price_list): |
Anand Doshi | e9baaa6 | 2014-02-26 12:35:33 +0530 | [diff] [blame] | 35 | price_list_currency = frappe.db.get_value("Price List", {"name": price_list, |
Akhilesh Darjee | e82eee5 | 2014-01-20 16:09:45 +0530 | [diff] [blame] | 36 | "enabled": 1}, "currency") |
| 37 | |
| 38 | if not price_list_currency: |
| 39 | throw("{message}: {price_list} {disabled}".format(**{ |
| 40 | "message": _("Price List"), |
| 41 | "price_list": price_list, |
| 42 | "disabled": _("is disabled.") |
| 43 | })) |
| 44 | else: |
| 45 | return {"price_list_currency": price_list_currency} |