diff --git a/clearing-parent/backend-api/src/main/resources/meta/data.xml b/clearing-parent/backend-api/src/main/resources/meta/data.xml
index 34cbeb614..4fb3405e5 100644
--- a/clearing-parent/backend-api/src/main/resources/meta/data.xml
+++ b/clearing-parent/backend-api/src/main/resources/meta/data.xml
@@ -246,6 +246,8 @@
+
+
@@ -473,6 +475,7 @@
+
diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/error/ClearingError.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/error/ClearingError.java
index 3112a2f85..18e15fab6 100644
--- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/error/ClearingError.java
+++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/error/ClearingError.java
@@ -35,6 +35,7 @@ public enum ClearingError implements IErrorEnumId {
RgsWrongCode(5430L),
RefundDateCannotBeChanged(5431L),
PlanBalanceReviseError(5432L),
+ XdepTimeIntervalNotMatch(5433L),
//ошибки "перенесенные" из balance-service,
CompanyNotFoundB(5211L),
CurrencyNotFound(5213L),
diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/schedule/TradingTimeService.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/schedule/TradingTimeService.java
index 48421c68a..c6c1fe167 100644
--- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/schedule/TradingTimeService.java
+++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/schedule/TradingTimeService.java
@@ -25,7 +25,7 @@ public class TradingTimeService {
this.plannerAllTodayImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_PlannerAllToday, PlannerAllToday.class);
}
- public boolean isTradingTime() {
+ private boolean isTradingTime(Task startTime, Task endTime) {
ImdgPredicateBuilder pb = plannerAllTodayImdg.predicateBuilder();
Function> plannerByTask = task -> {
ImdgPredicate plannerPrdct = pb.and(
@@ -34,19 +34,28 @@ public class TradingTimeService {
);
return Optional.ofNullable(plannerAllTodayImdg.getFirstObjectByPredicate(plannerPrdct));
};
- LocalTime startTradingTime = plannerByTask.apply(Task.createRegistry_STRS)
+ LocalTime startTradingTime = plannerByTask.apply(startTime)
.map(PlannerAllToday::getTaskTime)
.orElse(null);
- LocalTime endTradingTime = plannerByTask.apply(Task.createRegistry_ETRS)
+ LocalTime endTradingTime = plannerByTask.apply(endTime)
.map(PlannerAllToday::getTaskTime)
.orElse(null);
if (startTradingTime == null || endTradingTime == null) {
- log.warn("startTradingTime or endTradingTime is null");
+ log.warn("{} or {} not found in planner all today", startTime.getKey(), endTime.getKey());
return false;
}
LocalTime now = LocalTime.now();
boolean isTradingTime = !now.isBefore(startTradingTime) && !now.isAfter(endTradingTime);
- log.debug("now: {}, startTradingTime: {}, endTradingTime: {}. trading time: {}", now, startTradingTime, endTradingTime, isTradingTime);
+ log.debug("now: {}, {}: {}, {}: {}. period check in: {}",
+ now, startTime.getKey(), startTradingTime, endTime.getKey(), endTradingTime, isTradingTime);
return isTradingTime;
}
+
+ public boolean isTradingTime() {
+ return isTradingTime(Task.createRegistry_STRS, Task.createRegistry_ETRS);
+ }
+
+ public boolean timeForXdep() {
+ return isTradingTime(Task.startTime_SDEP, Task.endTime_EDEP);
+ }
}
diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/SessionManager.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/SessionManager.java
index 3ab08e000..f911f457a 100644
--- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/SessionManager.java
+++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/SessionManager.java
@@ -9,6 +9,7 @@ import ru.spcex.clearing.imdg.IMDGDistributedNames;
import ru.spcex.clearing.notification.NotificationSender;
import ru.spcex.clearing.platform.messaging.domain.BaseRequest;
import ru.spcex.clearing.platform.messaging.domain.cud.schedule.LauncherCommandRequest;
+import ru.spcex.clearing.service.schedule.TradingTimeService;
import ru.spcex.platform.enumeration.*;
import ru.spcex.platform.imdg.api.Imdg;
import ru.spcex.platform.imdg.api.ImdgProvider;
@@ -33,13 +34,14 @@ public class SessionManager {
private final IntermediateMkrSession intermediateMkrSession;
private final FinalMkrSession finalMkrSession;
private final ReturnDepositSession returnDepositSession;
+ private final TradingTimeService time;
public SessionManager(ImdgProvider imdgProvider,
NotificationSender notification, IMessageResolver msgs, PrimaryAuctionT0Session primaryAuctionT0Session,
PrimaryAuctionBnSession primaryAuctionBnSession,
PrimaryAuctionB0Session primaryAuctionB0Session,
SecondaryAuctionT0Session secondaryAuctionT0Session,
- IntermediateMkrSession intermediateMkrSession, FinalMkrSession finalMkrSession, ReturnDepositSession returnDepositSession) {
+ IntermediateMkrSession intermediateMkrSession, FinalMkrSession finalMkrSession, ReturnDepositSession returnDepositSession, TradingTimeService time) {
this.notification = notification;
this.msgs = msgs;
this.primaryAuctionT0Session = primaryAuctionT0Session;
@@ -51,6 +53,7 @@ public class SessionManager {
this.returnDepositSession = returnDepositSession;
sessionImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Session, Session.class);
+ this.time = time;
}
public void defineAndStartSession(BaseRequest r) throws ValidationException { //task sclr section fond sessiontype trdt
@@ -76,19 +79,27 @@ public class SessionManager {
if (session != null) {
//checkActive
- checkActiveSession();
+ checkAllowSessionStart(sessionType);
session.runSession(baseRequest);
}
}
- protected void checkActiveSession() throws ValidationException {
- Session existActiveSession = sessionImdg.getFirstObjectByFieldValues(Map.of(
- "workflowStatus", SessionStatus.ACTV.getKey()
- ));
- if (existActiveSession != null) {
- log.warn("Can not start new session, cause exist active session.id={}", existActiveSession.getId());
- EnumMessage err = new EnumMessage(ClearingError.ActiveSessionIsPresent, String.valueOf(existActiveSession.getId()));
+ protected void checkAllowSessionStart(SessionType sessionType) throws ValidationException {
+ EnumMessage err = null;
+ if (sessionType.equals(SessionType.XDEP) && !time.timeForXdep()) {
+ log.warn("cannot launch {} reason: time interval not matched", sessionType);
+ err = new EnumMessage(ClearingError.XdepTimeIntervalNotMatch);
+ } else {
+ Session existActiveSession = sessionImdg.getFirstObjectByFieldValues(Map.of(
+ "workflowStatus", SessionStatus.ACTV.getKey()
+ ));
+ if (existActiveSession != null) {
+ log.warn("Can not start new session, cause exist active session.id={}", existActiveSession.getId());
+ err = new EnumMessage(ClearingError.ActiveSessionIsPresent, String.valueOf(existActiveSession.getId()));
+ }
+ }
+ if (err != null) {
notification.sendNotification(ObjectType.session, msgs.resolve(err), Priority.HIGH);
throw new ValidationException(err);
}
diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/RequirementsAndObligationCreation.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/RequirementsAndObligationCreation.java
index bfbbde376..f65808b13 100644
--- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/RequirementsAndObligationCreation.java
+++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/RequirementsAndObligationCreation.java
@@ -230,6 +230,7 @@ public class RequirementsAndObligationCreation implements ISessionStage {
}
if (invalid != null) {
log.error("FATAL couldn't match Execution#id({}) with Execution#id({}) error: {}", exec1.getId(), exec2.getId(), invalid);
+ return null;
}
return new Pair<>(exec1, exec2);
}
diff --git a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/ClearingMemberCategoryService.java b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/ClearingMemberCategoryService.java
index af6ca5c70..5d0a3825e 100644
--- a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/ClearingMemberCategoryService.java
+++ b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/ClearingMemberCategoryService.java
@@ -179,7 +179,11 @@ public class ClearingMemberCategoryService extends QueueConsumer implements Init
try {
Imdg txClearingMemberCategoryMap = transaction.getImdg(IMDGDistributedNames.Map_ClearingMemberCategory, ClearingMemberCategory.class);
txClearingMemberCategoryMap.delete(clearingMemberCategory); // далить до cancelRelation внутри транзакции
- companyService.relationService.cancelRelation(transaction, clearingMemberCategory.getCompanyId(), clearingMemberCategory);
+ if (clearingMemberCategory.getCompanyId() == null) { // never, только тестовые данные
+ log.warn("Deleted clearingMemberCategory[{}] has not companyId", clearingMemberCategory.getId());
+ } else {
+ companyService.relationService.cancelRelation(transaction, clearingMemberCategory.getCompanyId(), clearingMemberCategory);
+ }
txOk = true;
} finally {
if (txOk)
diff --git a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/MultiCompanyService.java b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/MultiCompanyService.java
index d556d62c8..f0cb6e513 100644
--- a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/MultiCompanyService.java
+++ b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/MultiCompanyService.java
@@ -27,6 +27,7 @@ import ru.spcex.clearing.validation.common.ValidationHelper;
import ru.spcex.platform.enumeration.CompanySymbol;
import ru.spcex.platform.imdg.api.Imdg;
import ru.spcex.platform.imdg.api.ImdgProvider;
+import ru.spcex.platform.utils.enumeration.IEnumKey;
import ru.spcex.platform.utils.enumeration.IMessageResolver;
import ru.spcex.platform.utils.error.ValidationException;
import ru.spcex.platform.utils.log.ExceptionUtils;
@@ -48,7 +49,7 @@ public class MultiCompanyService
private final RequestHelper requestHelper;
protected UserRoleVerification userRoleVerification;
-// private final ValidationHelper validationHelper;
+ // private final ValidationHelper validationHelper;
protected IMessageResolver messageResolver;
final CompanyService companyService;
@@ -128,7 +129,7 @@ public class MultiCompanyService
req.setCompanySymbols(
Stream.concat(req.getCompanySymbols().stream(), additionalSymbols(req.getCompany())).collect(Collectors.toList())
);
- companyId = getCompanyIdForCompanySymbols(req.getUuid(), req.getCompany());
+ companyId = getCompanyIdForCompanySymbols(req.getUuid(), req.getCompany(), req.getCompanySymbols());
log.debug("For request {} (uuid {}) company {}.", baseRequest.getId(), req.getUuid(), companyId == null ? "not found" : ("found, id=" + companyId));
if (companyId == null) {
log.debug("For request {} (uuid {}) company not found. Try find by other symbols.", baseRequest.getId(), req.getUuid());
@@ -334,7 +335,7 @@ public class MultiCompanyService
return r;
}
- Long getCompanyIdForCompanySymbols(String uuid, CompanyNewRequest cnr) {
+ Long getCompanyIdForCompanySymbols(String uuid, CompanyNewRequest cnr, Collection companySymbols) {
CompanySymbols companySymbol = null;
if (StringUtils.isNotEmpty(uuid)) {
log.trace("Search company by companySymbol uuid={}", uuid);
@@ -351,10 +352,10 @@ public class MultiCompanyService
}
}
}
- if (companySymbol == null && StringUtils.isNotEmpty(cnr.getCompanySymbolValue())) {
- for (String companySymbolType : Arrays.asList(
- cnr.getCompanySymbol(), CompanySymbol.INN.getKey(), CompanySymbol.CIO.getKey()
- )) {
+ if (companySymbol == null && StringUtils.isNotEmpty(cnr.getCompanySymbolValue())
+ && IEnumKey.contains(cnr.getCompanySymbol(), CompanySymbol.INN, CompanySymbol.CIO)) { // вероятно там будет только UUID
+ {
+ String companySymbolType = cnr.getCompanySymbol();
log.trace("Search company by companySymbol {}={}", companySymbolType, cnr.getCompanySymbolValue());
Collection companySymbolsFromImdg = companySymbolsImdg.getCollectionObjectsByFieldValues(
Map.of(
@@ -367,10 +368,31 @@ public class MultiCompanyService
if (companySymbolsFromImdg.size() > 1) {
log.warn("For {} found > 1 company_symbols, use first (id = {})", companySymbolType, cnr.getCompanySymbolValue());
}
- break;
}
}
}
+ if (companySymbol == null && companySymbols != null) {
+ for (CompanySymbolNewRequest cSymbolReq : companySymbols) {
+ if (IEnumKey.contains(cSymbolReq.getCompanySymbol(), CompanySymbol.INN, CompanySymbol.CIO)) {
+ String companySymbolType = cSymbolReq.getCompanySymbol();
+ log.trace("Search company by companySymbol {}={}", companySymbolType, cSymbolReq.getCompanySymbolValue());
+ Collection companySymbolsFromImdg = companySymbolsImdg.getCollectionObjectsByFieldValues(
+ Map.of(
+ "companySymbol", companySymbolType,
+ "companySymbolValue", cSymbolReq.getCompanySymbolValue()
+ )
+ );
+ if (!companySymbolsFromImdg.isEmpty()) {
+ companySymbol = companySymbolsFromImdg.iterator().next();
+ if (companySymbolsFromImdg.size() > 1) {
+ log.warn("For {} found > 1 company_symbols, use first (id = {})", companySymbolType, cSymbolReq.getCompanySymbolValue());
+ }
+ break;
+ }
+ }
+ }
+ }
+
if (companySymbol != null)
return companySymbol.getCompanyId();
else
diff --git a/clearing-parent/company-service/src/test/java/ru/spcex/clearing/company/service/ClearingMemberCategoryServiceTest.java b/clearing-parent/company-service/src/test/java/ru/spcex/clearing/company/service/ClearingMemberCategoryServiceTest.java
index 9fd30fed6..3767a109c 100644
--- a/clearing-parent/company-service/src/test/java/ru/spcex/clearing/company/service/ClearingMemberCategoryServiceTest.java
+++ b/clearing-parent/company-service/src/test/java/ru/spcex/clearing/company/service/ClearingMemberCategoryServiceTest.java
@@ -168,6 +168,7 @@ class ClearingMemberCategoryServiceTest {
String clearingMemberCategory = "0000";
ClearingMemberCategory existsClearingMemberCategory = new ClearingMemberCategory();
existsClearingMemberCategory.setClearingMemberCategory(clearingMemberCategory);
+ existsClearingMemberCategory.setCompanyId(COMPANY_ID);
Long id = memberCategoryImdg.insert(existsClearingMemberCategory);
CommonDeleteRequest memberCategoryDeleteRequest = new CommonDeleteRequest();
diff --git a/clearing-parent/company-service/src/test/java/ru/spcex/clearing/company/service/MultiCompanyServiceTest.java b/clearing-parent/company-service/src/test/java/ru/spcex/clearing/company/service/MultiCompanyServiceTest.java
index da2ebe661..67bd1f7f9 100644
--- a/clearing-parent/company-service/src/test/java/ru/spcex/clearing/company/service/MultiCompanyServiceTest.java
+++ b/clearing-parent/company-service/src/test/java/ru/spcex/clearing/company/service/MultiCompanyServiceTest.java
@@ -26,6 +26,8 @@ import ru.spcex.platform.imdg.api.ImdgProvider;
import javax.annotation.PostConstruct;
import java.time.LocalDate;
+import java.util.ArrayList;
+import java.util.List;
import static org.junit.jupiter.api.Assertions.*;
import static ru.spcex.clearing.test.config.ImdgTestConfig.waitAvailableImdgProviderAndAddAdminWithDefaultId;
@@ -48,6 +50,8 @@ import static ru.spcex.clearing.test.config.ImdgTestConfig.waitAvailableImdgProv
ProfileDocumentValidationConfig.class,
ContactService.class,
ContactValidationConfig.class,
+ ClearingMemberCategoryService.class,
+ ClearingMemberCategoryValidationConfig.class,
KafkaTestConfig.class,
ImdgTestConfig.class,
@@ -101,8 +105,8 @@ class MultiCompanyServiceTest {
CompanySymbols companySymbol = new CompanySymbols();
companySymbol.setId(222L);
companySymbol.setCompanyId(company.getId());
- companySymbol.setCompanySymbol(CompanySymbol.CLRC.getKey());
- companySymbol.setCompanySymbolValue("CL-VALUE");
+ companySymbol.setCompanySymbol(CompanySymbol.INN.getKey());
+ companySymbol.setCompanySymbolValue("INN-VALUE");
companySymbolsImdg.insert(companySymbol);
Imdg profileDocumentImdg = hazelcastServiceTest.getImdg(IMDGDistributedNames.Map_ProfileDocument, ProfileDocument.class);
@@ -130,9 +134,13 @@ class MultiCompanyServiceTest {
req.setCompanyId(COMPANY_ID);
req.setCompanySymbol(CompanySymbol.CLRC.getKey());
req.setCompanySymbolValue("CL-VALUE-2");
+ assertNull(multiCompanyService.findCompanySymbols(req));
+
+ req.setCompanySymbol(CompanySymbol.INN.getKey());
+ req.setCompanySymbolValue("INN-VALUE");
CompanySymbols symbol = multiCompanyService.findCompanySymbols(req);
assertNotNull(symbol);
- assertEquals("CL-VALUE", symbol.getCompanySymbolValue());
+ assertEquals("INN-VALUE", symbol.getCompanySymbolValue());
}
@Test
@@ -151,8 +159,32 @@ class MultiCompanyServiceTest {
CompanyNewRequest req = new CompanyNewRequest();
req.setCompanySymbol(CompanySymbol.CLRC.getKey());
req.setCompanySymbolValue("CL-VALUE");
- Long theId = multiCompanyService.getCompanyIdForCompanySymbols("SAMPLE-NO-uuid", req);
- assertEquals(COMPANY_ID, theId);
+ assertNull(multiCompanyService.getCompanyIdForCompanySymbols("SAMPLE-NO-uuid", req, null));
+
+ req.setCompanySymbolValue("INN-VALUE");
+ assertNull(multiCompanyService.getCompanyIdForCompanySymbols("SAMPLE-NO-uuid", req, null));
+ req.setCompanySymbol(CompanySymbol.INN.getKey());
+ assertEquals(COMPANY_ID, multiCompanyService.getCompanyIdForCompanySymbols("SAMPLE-NO-uuid", req, null));
+ req.setCompanySymbol(null);
+ req.setCompanySymbolValue(null);
+ assertNull(multiCompanyService.getCompanyIdForCompanySymbols(null, req, null));
+ List csReq=new ArrayList<>();
+ assertNull(multiCompanyService.getCompanyIdForCompanySymbols(null, req, null));
+ assertNull(multiCompanyService.getCompanyIdForCompanySymbols(null, req, csReq));
+ {
+ CompanySymbolNewRequest cs=new CompanySymbolNewRequest();
+ cs.setCompanySymbol(CompanySymbol.CLRC.getKey());
+ cs.setCompanySymbolValue("INN-VALUE");
+ csReq.add(cs);
+ }
+ assertNull(multiCompanyService.getCompanyIdForCompanySymbols(null, req, csReq));
+ {
+ CompanySymbolNewRequest cs=new CompanySymbolNewRequest();
+ cs.setCompanySymbol(CompanySymbol.INN.getKey());
+ cs.setCompanySymbolValue("INN-VALUE");
+ csReq.add(cs);
+ }
+ assertEquals(COMPANY_ID, multiCompanyService.getCompanyIdForCompanySymbols(null, req, csReq));
}
@Test
diff --git a/clearing-parent/company-service/src/test/java/ru/spcex/clearing/company/service/RelationServiceTest.java b/clearing-parent/company-service/src/test/java/ru/spcex/clearing/company/service/RelationServiceTest.java
index 0adb4903f..520291439 100644
--- a/clearing-parent/company-service/src/test/java/ru/spcex/clearing/company/service/RelationServiceTest.java
+++ b/clearing-parent/company-service/src/test/java/ru/spcex/clearing/company/service/RelationServiceTest.java
@@ -11,6 +11,7 @@ import org.springframework.test.context.junit.jupiter.SpringExtension;
import ru.clearing.classes.statics.data.company.Company;
import ru.clearing.classes.statics.data.company.relation.Relation;
import ru.clearing.platform.dictionary.ClearingCategoryDictionary;
+import ru.clearing.platform.dictionary.ServiceStatusDictionary;
import ru.clearing.platform.dictionary.WorkflowStatusDictionary;
import ru.spcex.clearing.company.config.BeanConfiguration;
import ru.spcex.clearing.company.config.validation.RelationValidationConfig;
@@ -92,6 +93,18 @@ class RelationServiceTest {
workflowStatusDictionary.setName("not active");
workflowStatusDictionaryImdg.insert(workflowStatusDictionary);
+ {
+ Imdg serviceStatusDictionaryImdg = hazelcastServiceTest.getImdg(
+ IMDGDistributedNames.Map_ServiceStatusDictionary,
+ ServiceStatusDictionary.class
+ );
+ ServiceStatusDictionary status=new ServiceStatusDictionary();
+ status.setId(1L);
+ status.setCode("ACTV");
+ status.setName("\"ACTV\"");
+ serviceStatusDictionaryImdg.insert(status);
+ }
+
Imdg clearingCategoryDictionaryImdg = hazelcastServiceTest.getImdg(
IMDGDistributedNames.Map_ClearingCategoryDictionary,
ClearingCategoryDictionary.class
diff --git a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/service/adapter/CompanyRequestAdapter.java b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/service/adapter/CompanyRequestAdapter.java
index 45158d490..2a2bf1707 100644
--- a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/service/adapter/CompanyRequestAdapter.java
+++ b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/service/adapter/CompanyRequestAdapter.java
@@ -87,7 +87,7 @@ public class CompanyRequestAdapter {
log.warn("Money account \"{}\" not found", client.getMoneyAccount());
} else {
log.debug("Money account \"{}\" found with id={}", client.getMoneyAccount(), mAccount.getId());
- client.setDepoAccountId(mAccount.getId());
+ client.setMoneyAccountId(mAccount.getId());
}
} catch (Exception e) {
log.warn("Error happened when search money account \"{}\": {}", client.getMoneyAccount(), ExceptionUtils.getStackTrace(e));
diff --git a/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/Task.java b/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/Task.java
index b932af49a..78172c922 100644
--- a/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/Task.java
+++ b/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/Task.java
@@ -25,6 +25,8 @@ public enum Task implements IEnumKey {
liquidationSession_LIQU("LIQU"),//Ликвидационная сессия по обязательтсвам участника
startSession_STRM("STRM"),//Начало торговой сессии секции МКР
terminationSession_ETRM("ETRM"),//Завершение торговой сессии секции МКР
+ startTime_SDEP("SDEP"),
+ endTime_EDEP("EDEP"),
startSession_SIPO("SIPO"),//Начало торговой сессии по первичным торгам
terminationSession_EIPO("EIPO"),//Завершение торговой сессии по первичным торгам
startSession_STRF("STRF"),//Начало торговой сессии по вторичным торгам