Currency rates need to be manually set if you want to use different currencies in registers like sale or purchase, it would be nice if we automatically update those rates once per day.
Proposal
We could add a daily cron which would check and get the rates for the currencies.
Those rates would be updated based on company currency.
I’ve researched, and we could use an open source api or we could directly parse a xml given by the European Central Bank (the only problem it’s that we would need to convert the currencies as it only gives the rates for euros)
Agree, we should add a selection of currency update sources, having by default the forex-python option.
Indeed if we make the field non mandatory we allow users to deactivate the update of currencies.
Also I think there is the when to make the update and with which rate (like starting day, average of the day etc.). Maybe the which should be included in the selection option.
But we need that the cron task if it miss some rates (cron fail the last time it runs for example), it should complete the missing rate depending of the frequency.
The problem with fetching the rate on request is that it is not only needed when compute is called. For example it is needed for SQL report.
Also it may be a problem to block all transactions because the external service is down.
Indeed it is doable with the proposed design. You just have to create two cron’s with monthly frequency and each one a different day of the month like 1 and 15.
I meant less then 5 incoming invoices a month with other currencies - for the cron there is no need to run it in that strange frequency
Since yours goes core there is no need for other module.