diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/validation/RegistryStep3ValidationRule.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/validation/RegistryStep3ValidationRule.java index 495574f9e..7d1eb69d9 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/validation/RegistryStep3ValidationRule.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/validation/RegistryStep3ValidationRule.java @@ -45,7 +45,11 @@ public enum RegistryStep3ValidationRule implements IValidationRule relationImdg = context.obtainMap(IMDGDistributedNames.Map_Relation, Relation.class); - Relation relation = relationImdg.getSingleObjectByFieldValues(Map.of("consumerId", validatedObject.getCompanyId())); + Imdg sessionImdg = context.obtainMap(IMDGDistributedNames.Map_Session, Session.class); + Session activeSession = sessionImdg.getSingleObjectByID(validatedObject.getSessionId()); + Relation relation = relationImdg.getSingleObjectByFieldValues(Map.of( + "consumerId", validatedObject.getCompanyId(), + "service", activeSession.getSection())); if (relation == null || (!ServiceStatus.Active.equalsByKey(relation.getServiceStatus()) && !ServiceStatus.Reopened.equalsByKey(relation.getServiceStatus()))) { return of(ClearingError.ClearingUnavailableForCompany, sectionFind.get(), validatedObject.getCompanyId()); } @@ -90,7 +94,7 @@ public enum RegistryStep3ValidationRule implements IValidationRule tradingClearingRegistryImdg = context.obtainMap(IMDGDistributedNames.Map_TradingClearingRegistry, TradingClearingRegistry.class); TradingClearingRegistry tcr = tradingClearingRegistryImdg.getSingleObjectBySQL("id = " + validatedObject.getTradingClearingRegistryId()); - if (tcr == null || (ServiceStatus.Active.equalsByKey(tcr.getStatus()) || ServiceStatus.Reopened.equalsByKey(tcr.getStatus()))) + if (tcr == null || !(ServiceStatus.Active.equalsByKey(tcr.getStatus()) || ServiceStatus.Reopened.equalsByKey(tcr.getStatus()))) return of(ClearingError.TradingClearingRegistryNotActive, validatedObject.getTradingClearingRegistryId()); return empty(); }