From c1ec29a8be24ebc3a3dc3539406d01318a997409 Mon Sep 17 00:00:00 2001 From: ialbert Date: Thu, 4 Jul 2024 17:05:03 +0300 Subject: [PATCH] FOND section: TCR#depoAccountId NULL fix --- .../session/stage/impl/RegistryFondBuilder.java | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/RegistryFondBuilder.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/RegistryFondBuilder.java index c834be1a5..9a62c75f6 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/RegistryFondBuilder.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/RegistryFondBuilder.java @@ -112,19 +112,24 @@ public class RegistryFondBuilder implements IRegistryBuilder { if ((regDsgn.equals(RegistryDesignation.O) && side.isBuy()) || (regDsgn.equals(RegistryDesignation.T) && side.isSell())) { isMoney = true; reg.setAccountId(tcr.getMoneyAccountId()); - account = accountImdg.getSingleObjectByID(tcr.getMoneyAccountId()); + if (tcr.getMoneyAccountId() != null) { + account = accountImdg.getSingleObjectByID(tcr.getMoneyAccountId()); + capacityByAccount = defineCapacityByAccountType(account.getAccountType(), tcr.getMoneyAccountId()); + } reg.setRegistryInstrumentType(RegistryInstrumentType.M.getKey()); reg.setBalanceDimension(BalanceDimension.MONY.getKey()); //fixme add second leg code branch Currency currency = currencyImdg.getFirstObjectByFieldValues(Map.of("currencyCode", exec.getSettlementCurrency())); reg.setSecurityId(currency.getId()); reg.setSecuritySymbol(currency.getCurrencyCode()); - capacityByAccount = defineCapacityByAccountType(account.getAccountType(), tcr.getMoneyAccountId()); } else if ((regDsgn.equals(RegistryDesignation.T) && side.isBuy()) || (regDsgn.equals(RegistryDesignation.O) && side.isSell())) { isMoney = false; - account = accountImdg.getSingleObjectByID(tcr.getDepoAccountId()); reg.setAccountId(tcr.getDepoAccountId()); - DepoAccount depoAccount = depoAccountImdg.getFirstObjectByFieldValues( + DepoAccount depoAccount = null; + if (tcr.getDepoAccountId() != null) { + account = accountImdg.getSingleObjectByID(tcr.getDepoAccountId()); + depoAccount = depoAccountImdg.getFirstObjectByFieldValues( Map.of("accountId", tcr.getDepoAccountId())); + } if (depoAccount != null) { capacityByAccount = depoAccount.getDepoAccountType(); }