да как же..
Во-первых, фиксировать курс обмена на момент транзакции. Я же уплотил деньги, посчитал их по курсу какому-то. То что раньше я заплатил 2 рубля и это был доллар, а через 3 месяца доллар 2.5 - у меня не стало больше денег. Фиксация курса обмена в транзакции - это must. Я сколько не писал обработок транзакций, везде курс обмена фиксировался на момент сделки.
Во-вторых, курс можно фиксировать во время прихода.
Если я получил ЗП 10-го апреля по курсу 2.52, то и трачу я эти деньги по курсу 2.52, не зависимо от того, что 20-го апреля курс уже 2.40. (но это опциональная фича и, вероятно, подойдёт только для тех у кого ЗП зафиксирована в долларах, получает по курсу в рублях, платит рублёвой картой, а базовая валюта - доллар. Это почти все в РБ :)
Хочу понять как это должно работать.
Например доллар — базовая валюта. У нас есть 100$ и 240 BYN. Итого у нас 200$. Зафиксировали.
Дальше курс рубля вырос в 2 раза. Мы потратили все наши рубли и в пересчёте на доллары мы потратили 200$. По вашей логике программа должна показать, что денег у нас нет, а на самом деле вот 100$ лежит, как быть?