промежуточная сессия
заполнение баланса для регистра по облигациям в ExecutionFond
This commit is contained in:
parent
c8fa6e052e
commit
aa755cbd89
2 changed files with 17 additions and 2 deletions
|
|
@ -164,6 +164,7 @@ public class IntermediateMkrSession extends AbstractSession implements Initializ
|
|||
{
|
||||
InspectionPoolPayload companyIdPayload = new InspectionPoolPayload();
|
||||
companyIdPayload.setProcessedCompanyId(currSession.getCompanyId());
|
||||
companyIdPayload.setSessionId(currSession.getId());
|
||||
runStage(TaskType.InspectionObligations, companyIdPayload, inspectionObligationsReturn);
|
||||
runStage(TaskType.InspectionObligations, companyIdPayload, inspectionObligations);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -12,17 +12,23 @@ import ru.clearing.classes.statics.data.misc.Market;
|
|||
import ru.clearing.classes.statics.data.misc.Session;
|
||||
import ru.clearing.classes.statics.data.registry.Registry;
|
||||
import ru.clearing.classes.statics.data.registry.TradingClearingRegistry;
|
||||
import ru.clearing.classes.statics.data.security.Security;
|
||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||
import ru.spcex.clearing.session.stage.util.RegistryUtil;
|
||||
import ru.spcex.platform.classes.base.interfaces.ExecutionType;
|
||||
import ru.spcex.platform.enumeration.*;
|
||||
import ru.spcex.platform.imdg.api.Imdg;
|
||||
import ru.spcex.platform.imdg.api.ImdgProvider;
|
||||
import ru.spcex.platform.imdg.api.predicate.specific.SecuritySelector;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.math.RoundingMode;
|
||||
import java.time.Instant;
|
||||
import java.time.LocalDate;
|
||||
import java.util.Map;
|
||||
|
||||
import static ru.spcex.platform.utils.number.BigDecimalUtil.safeBD;
|
||||
|
||||
public class RegistryFondBuilder implements IRegistryBuilder {
|
||||
private Imdg<Company> companyImdg;
|
||||
private Imdg<TradingClearingRegistry> tradingClearingRegistryImdg;
|
||||
|
|
@ -33,6 +39,7 @@ public class RegistryFondBuilder implements IRegistryBuilder {
|
|||
private Imdg<InformationAccount> informationAccountImdg;
|
||||
private Imdg<DepoAccount> depoAccountImdg;
|
||||
private Imdg<Currency> currencyImdg;
|
||||
private SecuritySelector<Security> scrSlctr;
|
||||
private ExecutionCommon exec;
|
||||
private RegistryDesignation regDsgn;
|
||||
|
||||
|
|
@ -54,6 +61,7 @@ public class RegistryFondBuilder implements IRegistryBuilder {
|
|||
this.depoAccountImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_DepoAccount, DepoAccount.class);
|
||||
this.informationAccountImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_InformationAccount, InformationAccount.class);
|
||||
this.currencyImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Currency, Currency.class);
|
||||
this.scrSlctr = new SecuritySelector<>(imdgProvider, Security.class);
|
||||
return this;
|
||||
}
|
||||
|
||||
|
|
@ -132,8 +140,14 @@ public class RegistryFondBuilder implements IRegistryBuilder {
|
|||
reg.setRegistryStatus(RegistryStatus.PROC.getKey());
|
||||
ExecutionFond execFond = (ExecutionFond) this.exec;
|
||||
if (isMoney) {
|
||||
//todo ОКРУГЛЕНИЕ(fixedIncomeSecurity.nominalValue * quantity * price/100) + ОКРУГЛЕНИЕ (executionFond.interestAmount)
|
||||
reg.setBalance(execFond.getSettlementAmount());
|
||||
Security security = scrSlctr.selectSecurityById(execFond.getSecurityId());
|
||||
if (InstrumentType.BOND.equalsByKey(security.getInstrumentType())) {
|
||||
BigDecimal stlAmt = safeBD(execFond.getSettlementAmount());
|
||||
BigDecimal intAmt = safeBD(execFond.getInterestAmount());
|
||||
reg.setBalance(stlAmt.add(intAmt.setScale(2, RoundingMode.HALF_UP)));
|
||||
} else {
|
||||
reg.setBalance(execFond.getSettlementAmount());
|
||||
}
|
||||
} else {
|
||||
reg.setBalance(execFond.getQuantity());
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue