diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/builder/PaymentInstructionBuilderV2.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/builder/PaymentInstructionBuilderV2.java index 73ceb3006..70a80e587 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/builder/PaymentInstructionBuilderV2.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/builder/PaymentInstructionBuilderV2.java @@ -170,6 +170,7 @@ public class PaymentInstructionBuilderV2 { payment.setSettlementDate(LocalDate.now()); } + log.debug("CS_BLKD={}", useCS_BLKD); if (useCS_BLKD && checkAgent()) { payment.setPaymentPurpose(SpecifFlag.CS_BLKD.getKey() + "_" + sessionId + " " + purpose); } else { @@ -263,14 +264,27 @@ public class PaymentInstructionBuilderV2 { break; } } + + log.debug("{}.id={} checkAgent = {}", + am_b.getRegistryCode(), + am_b.getId(), + hasCounterPartyInitiator); + return hasCounterPartyInitiator; } public boolean categoryIOrVInitiator(Long companyId) { - ClearingMemberCategory category = clearingCategoryImdg.getFirstObjectByFieldValues( + Collection categories = clearingCategoryImdg.getCollectionObjectsByFieldValues( Map.of("companyId", companyId)); - ClearingCategory ctg = IEnumKey.getEnumByKey(ClearingCategory.class, category.getClearingMemberCategory()); - return ctg != null && (ctg.equals(ClearingCategory.V) || ctg.equals(ClearingCategory.I)) ; + boolean result = false; + for (ClearingMemberCategory category : categories) { + log.debug("Found category.clearingMemberCategory: {} by companyId: {}", + category.getClearingMemberCategory(), + companyId); + ClearingCategory ctg = IEnumKey.getEnumByKey(ClearingCategory.class, category.getClearingMemberCategory()); + result = result | ctg != null && (ctg.equals(ClearingCategory.V) || ctg.equals(ClearingCategory.I)); + } + return result; } public boolean companyRoleODEPPresent(Long companyId) { diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/state/action/FormingPaymentInstructionAssetsAction.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/state/action/FormingPaymentInstructionAssetsAction.java index 2f97857a7..aa1d3ab53 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/state/action/FormingPaymentInstructionAssetsAction.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/state/action/FormingPaymentInstructionAssetsAction.java @@ -205,6 +205,10 @@ public class FormingPaymentInstructionAssetsAction extends AbstractSessionAction adjustByReturns); } amount = safeBD(registry.getBalance()).add(adjustByReturns); + log.debug("{}.id={} amount = {}", + registry.getRegistryCode(), + registry.getId(), + amount); boolean isPositiveBalance = amount.compareTo(BigDecimal.ZERO) > 0; if (amount.compareTo(BigDecimal.ZERO) == 0) { continue; diff --git a/clearing-parent/db-scripts/src/main/resources/db/DICTIONARIES.sql b/clearing-parent/db-scripts/src/main/resources/db/DICTIONARIES.sql index b81319a74..aeb4b6d65 100644 --- a/clearing-parent/db-scripts/src/main/resources/db/DICTIONARIES.sql +++ b/clearing-parent/db-scripts/src/main/resources/db/DICTIONARIES.sql @@ -548,6 +548,8 @@ INSERT INTO SESSION_STATUS_DICTIONARY(ID, CODE, NAME) values (14, 'CL10', 'Ид INSERT INTO SESSION_STATUS_DICTIONARY(ID, CODE, NAME) values (15, 'С0_1', 'Идет клиринг: Установка начального баланса в сессии') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; +INSERT INTO SESSION_STATUS_DICTIONARY(ID, CODE, NAME) values (16, 'C5_0', 'Идет клиринг: Расчеты') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; + INSERT INTO SESSION_TYPE_DICTIONARY(ID, CODE, NAME) values (1, 'FINL', 'Итоговая клиринговая сессия') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; INSERT INTO SESSION_TYPE_DICTIONARY(ID, CODE, NAME) values (2, 'MEDM', 'Промежуточная клиринговая сессия') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; @@ -1056,4 +1058,4 @@ INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (10001, 'TRDI', 'Сде /* Business objects */ -INSERT INTO DB_VERSION(ID, DICTIONARY_VERSION) values (1, '3.19.0.100') ON CONFLICT (ID) DO UPDATE SET DICTIONARY_VERSION = EXCLUDED.DICTIONARY_VERSION +INSERT INTO DB_VERSION(ID, DICTIONARY_VERSION) values (1, '3.19.0.101') ON CONFLICT (ID) DO UPDATE SET DICTIONARY_VERSION = EXCLUDED.DICTIONARY_VERSION