return deposit contract condition

SettlementDate/ValueDate/RefundDate clone
This commit is contained in:
ialbert 2023-10-05 14:41:35 +03:00
parent 815631d5d2
commit 93951a3bf5
2 changed files with 12 additions and 1 deletions

View file

@ -47,6 +47,7 @@ import ru.spcex.platform.utils.validation.IValidator;
import java.math.BigDecimal;
import java.time.Instant;
import java.time.LocalDate;
import java.util.Collection;
import java.util.List;
import java.util.Map;
@ -244,6 +245,9 @@ public class RegistryService {
dm__ = _m_t.clone();
dm__.setRegistryDesignation(RegistryDesignation.D.getKey());
RegistryManager.zeroState(dm__);
dm__.setSettlementDate(LocalDate.now());
dm__.setValueDate(null);
dm__.setRefundDate(null);
if (RegistryDesignation.T.equalsByKey(_m_t.getRegistryDesignation())) {
dm__.setRegistryUnit(RegistryUnit.X.getKey());
} else {

View file

@ -9,6 +9,8 @@ import ru.spcex.platform.enumeration.ClearingCategory;
import ru.spcex.platform.enumeration.RegistryStatus;
import ru.spcex.platform.enumeration.RegistryTradingParams;
import ru.spcex.platform.imdg.api.Imdg;
import ru.spcex.platform.imdg.api.predicate.ImdgPredicate;
import ru.spcex.platform.imdg.api.predicate.ImdgPredicateBuilder;
import ru.spcex.platform.imdg.api.predicate.specific.RegistryCodeSqlBuilder;
import ru.spcex.platform.imdg.validation.ImdgValidationContext;
import ru.spcex.platform.imdg.validation.Stored;
@ -64,7 +66,12 @@ public enum ReturnDepositValidationRule implements IValidationRule<ImdgValidatio
}
if (ctgr.get().equals(ClearingCategory.V)) {
Imdg<Registry> rgsImdg = context.obtainMap(IMDGDistributedNames.Map_Registry, Registry.class);
Collection<Registry> group = rgsImdg.getCollectionObjectsBySQL("groupId = %d".formatted(rgs.getGroupId()));
ImdgPredicateBuilder pb = rgsImdg.predicateBuilder();
ImdgPredicate prdct = pb.and(
pb.equals("groupId", rgs.getGroupId()),
pb.equals("contract", rgs.getContract())
);
Collection<Registry> group = rgsImdg.getCollectionObjectsByPredicate(prdct);
Optional<Registry> om_t = group.stream()
.filter(r -> r.getSettlementDate() != null)
.filter(r -> r.getValueDate() != null)