mirror of
https://github.com/frappe/erpnext.git
synced 2026-06-02 11:49:10 +00:00
[jsonrates api] add from global defaults
This commit is contained in:
@@ -66,6 +66,20 @@
|
|||||||
"label": "Disable Rounded Total",
|
"label": "Disable Rounded Total",
|
||||||
"permlevel": 0,
|
"permlevel": 0,
|
||||||
"read_only": 0
|
"read_only": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldname": "section_break_8",
|
||||||
|
"fieldtype": "Section Break",
|
||||||
|
"permlevel": 0,
|
||||||
|
"precision": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"description": "For automatic exchange rates go to jsonrates.com and signup for an API key",
|
||||||
|
"fieldname": "jsonrates_api_key",
|
||||||
|
"fieldtype": "Data",
|
||||||
|
"label": "jsonrates.com API Key",
|
||||||
|
"permlevel": 0,
|
||||||
|
"precision": ""
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"hide_toolbar": 0,
|
"hide_toolbar": 0,
|
||||||
@@ -73,7 +87,7 @@
|
|||||||
"idx": 1,
|
"idx": 1,
|
||||||
"in_create": 1,
|
"in_create": 1,
|
||||||
"issingle": 1,
|
"issingle": 1,
|
||||||
"modified": "2015-03-02 02:23:20.688406",
|
"modified": "2015-05-07 05:43:49.760061",
|
||||||
"modified_by": "Administrator",
|
"modified_by": "Administrator",
|
||||||
"module": "Setup",
|
"module": "Setup",
|
||||||
"name": "Global Defaults",
|
"name": "Global Defaults",
|
||||||
|
|||||||
@@ -17,6 +17,7 @@ keydict = {
|
|||||||
'hide_currency_symbol':'hide_currency_symbol',
|
'hide_currency_symbol':'hide_currency_symbol',
|
||||||
'account_url':'account_url',
|
'account_url':'account_url',
|
||||||
'disable_rounded_total': 'disable_rounded_total',
|
'disable_rounded_total': 'disable_rounded_total',
|
||||||
|
'jsonrates_api_key': 'jsonrates_api_key'
|
||||||
}
|
}
|
||||||
|
|
||||||
from frappe.model.document import Document
|
from frappe.model.document import Document
|
||||||
|
|||||||
@@ -60,14 +60,16 @@ def before_tests():
|
|||||||
|
|
||||||
@frappe.whitelist()
|
@frappe.whitelist()
|
||||||
def get_exchange_rate(from_currency, to_currency):
|
def get_exchange_rate(from_currency, to_currency):
|
||||||
if frappe.conf.jsonrates_api_key:
|
jsonrates_api_key = frappe.conf.jsonrates_api_key or frappe.db.get_default("jsonrates_api_key")
|
||||||
|
|
||||||
|
if jsonrates_api_key:
|
||||||
cache = frappe.cache()
|
cache = frappe.cache()
|
||||||
key = "currency_exchange_rate:{0}:{1}".format(from_currency, to_currency)
|
key = "currency_exchange_rate:{0}:{1}".format(from_currency, to_currency)
|
||||||
value = cache.get(key)
|
value = cache.get(key)
|
||||||
if not value:
|
if not value:
|
||||||
import requests
|
import requests
|
||||||
response = requests.get("http://jsonrates.com/get/?from={0}&to={1}&apiKey={2}".format(from_currency,
|
response = requests.get("http://jsonrates.com/get/?from={0}&to={1}&apiKey={2}".format(from_currency,
|
||||||
to_currency, frappe.conf.jsonrates_api_key))
|
to_currency, jsonrates_api_key))
|
||||||
# expire in 24 hours
|
# expire in 24 hours
|
||||||
value = response.json().get("rate")
|
value = response.json().get("rate")
|
||||||
cache.setex(key, value, 24 * 60 * 60)
|
cache.setex(key, value, 24 * 60 * 60)
|
||||||
|
|||||||
Reference in New Issue
Block a user