registry builder fix

This commit is contained in:
ialbert 2023-05-26 19:44:06 +03:00
parent dce0a6d690
commit 7ad62a3079

View file

@ -1,6 +1,7 @@
package ru.spcex.clearing.session.stage.impl; package ru.spcex.clearing.session.stage.impl;
import ru.clearing.classes.statics.data.account.Account; 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.company.Company;
import ru.clearing.classes.statics.data.execution.ExecutionCommon; import ru.clearing.classes.statics.data.execution.ExecutionCommon;
import ru.clearing.classes.statics.data.execution.ExecutionDeposit; import ru.clearing.classes.statics.data.execution.ExecutionDeposit;
@ -25,6 +26,7 @@ public class RegistryBuilder {
private Imdg<Account> accountImdg; private Imdg<Account> accountImdg;
private Imdg<Market> marketImdg; private Imdg<Market> marketImdg;
private Imdg<Session> sessionImdg; private Imdg<Session> sessionImdg;
private Imdg<ClearingAccount> clearingAccountImdg;
private ExecutionCommon exec; private ExecutionCommon exec;
private RegistryDesignation regDsgn; private RegistryDesignation regDsgn;
@ -41,6 +43,7 @@ public class RegistryBuilder {
this.accountImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Account, Account.class); this.accountImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Account, Account.class);
this.marketImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Market, Market.class); this.marketImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Market, Market.class);
this.sessionImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Session, Session.class); this.sessionImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Session, Session.class);
this.clearingAccountImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_ClearingAccount, ClearingAccount.class);
return this; return this;
} }
@ -64,19 +67,25 @@ public class RegistryBuilder {
reg.setShortName(company.getShortName()); reg.setShortName(company.getShortName());
reg.setFullName(company.getFullName()); reg.setFullName(company.getFullName());
TradingClearingRegistry tcr = searchTradingClearingRegistry(); TradingClearingRegistry tcr = searchTradingClearingRegistry();
ClearingAccount accountForStatement = null;
if ((regDsgn.equals(RegistryDesignation.O) && side.isBuy()) || (regDsgn.equals(RegistryDesignation.T) && side.isSell())) { if ((regDsgn.equals(RegistryDesignation.O) && side.isBuy()) || (regDsgn.equals(RegistryDesignation.T) && side.isSell())) {
reg.setAccountId(tcr.getMoneyAccountId()); reg.setAccountId(tcr.getMoneyAccountId());
reg.setRegistryInstrumentType(RegistryInstrumentType.M.getKey()); reg.setRegistryInstrumentType(RegistryInstrumentType.M.getKey());
reg.setBalanceDimension(BalanceDimension.MONY.getKey()); //fixme add second leg code branch 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())) { } else if ((regDsgn.equals(RegistryDesignation.T) && side.isBuy()) || (regDsgn.equals(RegistryDesignation.O) && side.isSell())) {
reg.setAccountId(tcr.getDepoAccountId()); reg.setAccountId(tcr.getDepoAccountId());
reg.setRegistryInstrumentType(RegistryInstrumentType.S.getKey()); reg.setRegistryInstrumentType(RegistryInstrumentType.S.getKey());
reg.setBalanceDimension(BalanceDimension.PICS.getKey()); //fixme add second leg code branch reg.setBalanceDimension(BalanceDimension.PICS.getKey()); //fixme add second leg code branch
accountForStatement = clearingAccountImdg.getSingleObjectByID(tcr.getDepoAccountId());
} }
Account account = accountImdg.getSingleObjectByID(reg.getAccountId()); Account account = accountImdg.getSingleObjectByID(reg.getAccountId());
reg.setAccountType(account.getAccountType()); reg.setAccountType(account.getAccountType());
reg.setAccount(account.getAccount()); reg.setAccount(account.getAccount());
reg.setRegistryDesignation(regDsgn.getKey()); reg.setRegistryDesignation(regDsgn.getKey());
if (accountForStatement != null) {
reg.setRegistryCapacity(accountForStatement.getClearingAccountType());
}
reg.setRegistryCapacity(account.getAccountType()); reg.setRegistryCapacity(account.getAccountType());
reg.setRegistryUnit(RegistryUnit.T.getKey()); reg.setRegistryUnit(RegistryUnit.T.getKey());
reg.setRegistryCode(RegistryUtil.clearingCode(reg)); reg.setRegistryCode(RegistryUtil.clearingCode(reg));