diff --git a/clearing-parent/default-management/src/main/java/ru/spcex/clearing/dflt/management/service/OrderCalculationService.java b/clearing-parent/default-management/src/main/java/ru/spcex/clearing/dflt/management/service/OrderCalculationService.java index 3f94dfb8c..17c860266 100644 --- a/clearing-parent/default-management/src/main/java/ru/spcex/clearing/dflt/management/service/OrderCalculationService.java +++ b/clearing-parent/default-management/src/main/java/ru/spcex/clearing/dflt/management/service/OrderCalculationService.java @@ -15,6 +15,7 @@ import ru.clearing.classes.statics.data.security.Rates; import ru.clearing.platform.dictionary.CurrencyPairDictionary; import ru.spcex.clearing.dflt.management.model.CalculationResult; import ru.spcex.clearing.dflt.management.model.OrderCurrencyContext; +import ru.spcex.platform.enumeration.CurrencyCode; import ru.spcex.platform.enumeration.SettleCode; @Service @@ -108,11 +109,11 @@ public class OrderCalculationService { private CalculationResult calculationRubSums(Registry registry, Integer lotSize, BigDecimal s, BigDecimal n) { BigDecimal planPosition = registry.getBalance(); - Rates cnyRate = imdgQueryService.getRate(registry.getSecuritySymbol(), LocalDate.now()); - if (cnyRate == null) { - throw new IllegalStateException(String.format("Not fond rate by security symbol: %s", registry.getSecuritySymbol())); + SCrossRate sCrossRates = imdgQueryService.getSCrossRates(CurrencyCode.CNY.getKey(), LocalDate.now()); + if (sCrossRates == null) { + throw new IllegalStateException(String.format("Not fond rate by security symbol: %s", CurrencyCode.CNY.getKey())); } - BigDecimal rateValue = cnyRate.getValue(); + BigDecimal rateValue = sCrossRates.getUnitRate(); BigDecimal sum1 = planPosition.divide(rateValue, MC);