From a0f2510b01889166d6421289c0ce8b3c10a9dbe3 Mon Sep 17 00:00:00 2001 From: Pratik Vyas Date: Tue, 30 Jun 2015 12:36:17 +0530 Subject: [PATCH] Change currency exchange rate api to fixer.io --- .../doctype/global_defaults/global_defaults.json | 16 +--------------- .../doctype/global_defaults/global_defaults.py | 1 - erpnext/setup/utils.py | 15 ++++++++------- 3 files changed, 9 insertions(+), 23 deletions(-) diff --git a/erpnext/setup/doctype/global_defaults/global_defaults.json b/erpnext/setup/doctype/global_defaults/global_defaults.json index 777ae3b78b..c7330d0c89 100644 --- a/erpnext/setup/doctype/global_defaults/global_defaults.json +++ b/erpnext/setup/doctype/global_defaults/global_defaults.json @@ -66,20 +66,6 @@ "label": "Disable Rounded Total", "permlevel": 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, @@ -87,7 +73,7 @@ "idx": 1, "in_create": 1, "issingle": 1, - "modified": "2015-05-07 05:43:49.760061", + "modified": "2015-06-30 03:00:26.420003", "modified_by": "Administrator", "module": "Setup", "name": "Global Defaults", diff --git a/erpnext/setup/doctype/global_defaults/global_defaults.py b/erpnext/setup/doctype/global_defaults/global_defaults.py index a3fa3a9c5f..efdc875249 100644 --- a/erpnext/setup/doctype/global_defaults/global_defaults.py +++ b/erpnext/setup/doctype/global_defaults/global_defaults.py @@ -17,7 +17,6 @@ keydict = { 'hide_currency_symbol':'hide_currency_symbol', 'account_url':'account_url', 'disable_rounded_total': 'disable_rounded_total', - 'jsonrates_api_key': 'jsonrates_api_key' } from frappe.model.document import Document diff --git a/erpnext/setup/utils.py b/erpnext/setup/utils.py index cef60799a1..f661edb2b6 100644 --- a/erpnext/setup/utils.py +++ b/erpnext/setup/utils.py @@ -60,20 +60,21 @@ def before_tests(): @frappe.whitelist() def get_exchange_rate(from_currency, to_currency): - jsonrates_api_key = frappe.conf.jsonrates_api_key or frappe.db.get_default("jsonrates_api_key") - - if jsonrates_api_key: + try: cache = frappe.cache() key = "currency_exchange_rate:{0}:{1}".format(from_currency, to_currency) value = cache.get(key) if not value: import requests - response = requests.get("http://jsonrates.com/get/?from={0}&to={1}&apiKey={2}".format(from_currency, - to_currency, jsonrates_api_key)) + response = requests.get("http://api.fixer.io/latest", params={ + "base": from_currency, + "symbols": to_currency + }) # expire in 24 hours - value = response.json().get("rate") + response.raise_for_status() + value = response.json()["rates"][to_currency] cache.setex(key, value, 24 * 60 * 60) return flt(value) - else: + except: exchange = "%s-%s" % (from_currency, to_currency) return flt(frappe.db.get_value("Currency Exchange", exchange, "exchange_rate"))