Bugfix/fix indirect calculation in exchange rate service for specific date (#2026)

* Fix indirect calculation

* Update changelog
pull/2027/head
Thomas Kaul 1 year ago committed by GitHub
parent 24cfb26c5b
commit 1d0ba5fe4b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -11,6 +11,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Improved the language localization for German (`de`) - Improved the language localization for German (`de`)
### Fixed
- Fixed the exchange rate service for a specific date (indirect calculation via base currency) used in activities with a manual currency
## 1.274.0 - 2023-05-29 ## 1.274.0 - 2023-05-29
### Added ### Added

@ -186,28 +186,42 @@ export class ExchangeRateDataService {
factor = marketData?.marketPrice; factor = marketData?.marketPrice;
} else { } else {
// Calculate indirectly via base currency // Calculate indirectly via base currency
let marketPriceBaseCurrencyFromCurrency: number;
let marketPriceBaseCurrencyToCurrency: number;
try { try {
const [ if (this.baseCurrency === aFromCurrency) {
{ marketPrice: marketPriceBaseCurrencyFromCurrency }, marketPriceBaseCurrencyFromCurrency = 1;
{ marketPrice: marketPriceBaseCurrencyToCurrency } } else {
] = await Promise.all([ marketPriceBaseCurrencyFromCurrency = (
this.marketDataService.get({ await this.marketDataService.get({
dataSource, dataSource,
date: aDate, date: aDate,
symbol: `${this.baseCurrency}${aFromCurrency}` symbol: `${this.baseCurrency}${aFromCurrency}`
}), })
this.marketDataService.get({ )?.marketPrice;
dataSource, }
date: aDate,
symbol: `${this.baseCurrency}${aToCurrency}`
})
]);
// Calculate the opposite direction
factor =
(1 / marketPriceBaseCurrencyFromCurrency) *
marketPriceBaseCurrencyToCurrency;
} catch {} } catch {}
try {
if (this.baseCurrency === aToCurrency) {
marketPriceBaseCurrencyToCurrency = 1;
} else {
marketPriceBaseCurrencyToCurrency = (
await this.marketDataService.get({
dataSource,
date: aDate,
symbol: `${this.baseCurrency}${aToCurrency}`
})
)?.marketPrice;
}
} catch {}
// Calculate the opposite direction
factor =
(1 / marketPriceBaseCurrencyFromCurrency) *
marketPriceBaseCurrencyToCurrency;
} }
} }

Loading…
Cancel
Save