From 7ad62a30796d24bcc86903956f5115891ec038ef Mon Sep 17 00:00:00 2001 From: ialbert Date: Fri, 26 May 2023 19:44:06 +0300 Subject: [PATCH] registry builder fix --- .../clearing/session/stage/impl/RegistryBuilder.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/RegistryBuilder.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/RegistryBuilder.java index 3b815b09c..bd3063509 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/RegistryBuilder.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/RegistryBuilder.java @@ -1,6 +1,7 @@ package ru.spcex.clearing.session.stage.impl; import ru.clearing.classes.statics.data.account.Account; +import ru.clearing.classes.statics.data.account.ClearingAccount; import ru.clearing.classes.statics.data.company.Company; import ru.clearing.classes.statics.data.execution.ExecutionCommon; import ru.clearing.classes.statics.data.execution.ExecutionDeposit; @@ -25,6 +26,7 @@ public class RegistryBuilder { private Imdg accountImdg; private Imdg marketImdg; private Imdg sessionImdg; + private Imdg clearingAccountImdg; private ExecutionCommon exec; private RegistryDesignation regDsgn; @@ -41,6 +43,7 @@ public class RegistryBuilder { this.accountImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Account, Account.class); this.marketImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Market, Market.class); this.sessionImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Session, Session.class); + this.clearingAccountImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_ClearingAccount, ClearingAccount.class); return this; } @@ -64,19 +67,25 @@ public class RegistryBuilder { reg.setShortName(company.getShortName()); reg.setFullName(company.getFullName()); TradingClearingRegistry tcr = searchTradingClearingRegistry(); + ClearingAccount accountForStatement = null; if ((regDsgn.equals(RegistryDesignation.O) && side.isBuy()) || (regDsgn.equals(RegistryDesignation.T) && side.isSell())) { reg.setAccountId(tcr.getMoneyAccountId()); reg.setRegistryInstrumentType(RegistryInstrumentType.M.getKey()); reg.setBalanceDimension(BalanceDimension.MONY.getKey()); //fixme add second leg code branch + accountForStatement = clearingAccountImdg.getSingleObjectByID(tcr.getMoneyAccountId()); } else if ((regDsgn.equals(RegistryDesignation.T) && side.isBuy()) || (regDsgn.equals(RegistryDesignation.O) && side.isSell())) { reg.setAccountId(tcr.getDepoAccountId()); reg.setRegistryInstrumentType(RegistryInstrumentType.S.getKey()); reg.setBalanceDimension(BalanceDimension.PICS.getKey()); //fixme add second leg code branch + accountForStatement = clearingAccountImdg.getSingleObjectByID(tcr.getDepoAccountId()); } Account account = accountImdg.getSingleObjectByID(reg.getAccountId()); reg.setAccountType(account.getAccountType()); reg.setAccount(account.getAccount()); reg.setRegistryDesignation(regDsgn.getKey()); + if (accountForStatement != null) { + reg.setRegistryCapacity(accountForStatement.getClearingAccountType()); + } reg.setRegistryCapacity(account.getAccountType()); reg.setRegistryUnit(RegistryUnit.T.getKey()); reg.setRegistryCode(RegistryUtil.clearingCode(reg));