Currency conversions in Joom Donation

  • Peter Roberts
  • Topic Author
  • Offline
  • New Member
  • New Member
More
11 years 2 months ago #25089 by Peter Roberts
Currency conversions in Joom Donation was created by Peter Roberts
Hi Tuan,

Firstly congratulations on the birth of your son!!

I have returned to Joom Donation after nearly 4 years, and am very impressed by how far that you have developed the product. Well done.

One feature that I need is still missing - the ability to report on donations received in multiple currencies.

I recognise that the options for receiving multiple currencies have been greatly improved, but the philosophy still appears to be based on donations coming in only one currency. Thus, while the admin has the choice of choosing any base currency, and a donor can choose any currency that they want to pay in, Joom Donation only tallies those donations as one currency-neutral 'amount' to which an arbitrary currency-sign is assigned by the admin in the backend

As a consequence of this, donations of 100 YEN and 100 USD are presented as both being in the same currency in the various places that donations are presented - even the thermometer. Thus when donations have been received as a mixed basket of dollars, yen, euro, kroners, etc. the thermomemter loses its meaning, and so does the Donors List.

To implement tthe ability to accommodate a basket of currencies seems like a relatively easy to thing to do and the following steps seem viable:

1. Add a 'currency' field to the '__jd_donors' table so that the donor's currency is recorded in the database along with the rest of their details.

2. Add the corresponding 'currency' field to the template forms in the Donor List component / JDform / jdonation_donors_module so that the donor's currency and amount are both published in adjacent columns. Thus, a donation of 100 YEN followed by a donation of 100 USD can be differentiated with the correct currency code.

After these two simple steps, a very helpful and modest ability to deal with and present multiple currencies would have been accomplished. After seeing all of the other wonderful improvements you have made to Joom DOnation, I was quite astonished that Joom Donation still does not record the donor's currency - a very fundamental piece of data.

The thermometer could deal with mixed currencies by the following additional steps:

3. Create a backend exchange-rate table in the database that contains the currency conversions. In its simplest form this could just be hand-edited by the administrator (perhaps with timestamp showing when table was last edited for option of showing the timestamp on front-end).

The table would be edited by the administator to include all of the rates for (at least) the active currencies selected in the com_jdonation backend. Those currencies not activated could be ignored by the admin and just left blank or zero or 9999 in the exchange-rate table. The table would be conversions compared to the USD - the international standard base currency.

If a Campaign used, say, Thai Baht (THB) as the base currency, and a donor made a donation in Norwegian Kroner (NOK), then the component/thermometer could then look-up the back-end exchange-rate table and on the fly calculate the NOK donation in THB - i.e. THB = THB/USD x USD/NOK x NOK_donation_amount.

While a simple hand-edited exchange-rate table would offer tremendous improvement in the ability to deal with currencies, a more elaborate option of a daily look-up to the Google or Yahoo foreign exchange rates on the www would make this top-notch. There are already many JED extensions that do this type of thing - some like 'Currency Exchange Informer' allow the update period in minutes to be chosen by admin. The various tables that show donor lists could have the option of showing the Campaign's base currency AS WELL AS !! the original donation's currency. This would be an unessential - nice to have - feature that would enable a sum of all donations in the base currency to be provided (but this would be accomplished by thermometer any / as well).

4. To top this off, an admin-definable novelty 'currency' could also be accommodated in the exchange-rate table and the Campaign coniguration.

Often schools and church-groups 'sell' imaginary pavers or bricks to raise funds for their building funds. Similarly, aid groups might sell goats or sheep as part of a fundraising campaign. Thus, the thermometer target might be to 'sell' 10,000 bricks or 200 goats (for a herd). Then the Campaign would have, say, 'goats' as its base currency and exchange-rate table would either be just the fund-raising 'price' of a goat in USD (simplest implementation), or could have the price of a goat in each currency such as NOK 600 or THB 3,000 (as a slightly more elaborate implementation).

Thus if someone donated NOK 150, the donor list could show that they have donated both NOK 150 in the original currency and 0.25 goats in the campaign's base (novelty) currency.

I have started doing my own hack to implement these ideas but with my modest programming skills it is taking me some time - on top of tracking down the locations of the code needed to be changed. Then, there is the dilemma of what happens when there is a Joom Donation update.

The ability to handle baskets of currencies is a feature that would likely be attractive to many users, and help to internationalise Joom Donation further. The present inability to handle baskets of currencies is a limitation of Joom Donation which affects any user who collects donations in more than one currency. The ability to handle novelty currencies such a goats or bricks would be an attractive bonus capability for Joom Donation to have.

Might this idea be the sort of improvement that you would consider implementing fo Joom Donation?

I recognise that life is very hectic for you at present with your new son, and so I am willing to keep going with my own personalisation.


Thanks,
Peter.

Please Log in or Create an account to join the conversation.

Moderators: Mr. DamDũng Nguyễn Việt