fix KSRepLccValueReport

This commit is contained in:
akulikov 2024-12-18 14:20:19 +03:00
parent cf24c196bc
commit 7c57fd8676

View file

@ -192,7 +192,7 @@ public class KSRepLccValueReportBuilder extends CSVReportBuilder<EmptyParams, KS
String securitySymbol = registry.getSecuritySymbol();
RegistryStatus status = IEnumKey.getEnumByKey(RegistryStatus.class, registry.getRegistryStatus());
Rates currencyRate = getRate(securitySymbol, currencyRates);
Rates currencyRate = getRate(securitySymbol, currencyRates, reportDate.toLocalDate());
rates.computeIfAbsent(currencyRate.getCurrencyId(), c -> currencyRate.getValue());
String currency = currencies.computeIfAbsent(currencyRate.getCurrencyId(), s -> registry.getSecuritySymbol());
@ -373,7 +373,7 @@ public class KSRepLccValueReportBuilder extends CSVReportBuilder<EmptyParams, KS
}
private Rates getRate(String securitySymbol, Map<String, Rates> currencyRates) {
private Rates getRate(String securitySymbol, Map<String, Rates> currencyRates, LocalDate reportDate) {
Rates currencyRate = currencyRates.get(securitySymbol);
if (currencyRate == null) {
ImdgPredicateBuilder ratesPB = ratesImdg.predicateBuilder();
@ -381,7 +381,7 @@ public class KSRepLccValueReportBuilder extends CSVReportBuilder<EmptyParams, KS
ratesPB.and(
ratesPB.equals("currency", securitySymbol),
ratesPB.notNull("value"),
ratesPB.equals("valueDate", LocalDate.now())
ratesPB.equals("valueDate", reportDate)
)
);
if (!rates.isEmpty()) {