From 5cced71ce41cdb10cd633830db20a034dec002af Mon Sep 17 00:00:00 2001 From: Dany Robert Date: Sun, 16 May 2021 12:43:57 +0530 Subject: [PATCH] fix: Get the exchange rate based on date. --- erpnext/setup/utils.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/erpnext/setup/utils.py b/erpnext/setup/utils.py index e66b1b5331a..33af28687c6 100644 --- a/erpnext/setup/utils.py +++ b/erpnext/setup/utils.py @@ -93,19 +93,20 @@ def get_exchange_rate(from_currency, to_currency, transaction_date=None, args=No try: cache = frappe.cache() - key = "currency_exchange_rate_{0}:{1}:{2}".format(transaction_date,from_currency, to_currency) + key = "currency_exchange_rate_{0}:{1}:{2}".format(transaction_date, from_currency, to_currency) value = cache.get(key) if not value: import requests - api_url = "https://api.exchangerate.host/latest" + api_url = "https://api.exchangerate.host/convert" response = requests.get(api_url, params={ - "symbols": from_currency+","+to_currency, - "base": from_currency + "date": transaction_date, + "from": from_currency, + "to": to_currency }) # expire in 6 hours response.raise_for_status() - value = response.json()["rates"][to_currency] + value = response.json()["result"] cache.setex(key, value, 6 * 60 * 60) return flt(value) except: