I have a parent/child relationship on two custom entities, and I want to do a rollup on the parent from the currency amounts of the children. Our base currency is CAD, and let's say the children in this case are all USD. Child record 1 is created, with a USD amount of $1000, and at the time the exchange rate is .71, so the CAD is $1408.45. Later, the exchange rate changes to .75, and we update it accordingly. Child record 1 does not change (and we wouldn't want it to, since that's the payment we received at the exchange rate we received). Now, we create child record 2, also with a USD amount of $1000. This time, the CAD amount is $1333.33.
If I do a rollup on these, and my parent record is set to CAD, then I get $2741.78 as both the amount and the base amount. If I set the parent record to USD, it seems to do the rollup at the base amount, so it's still $2741.78, and then translates the US amount from that at the current exchange rate, so the USD amount rollup shows as $2056.34. But I didn't receive $2056.34 USD, I received $2000 USD.
Is there any way to do this rollup on the amounts actually received in the transaction currency, as well as the amounts actually received in the base currency?