diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/state/action/FormingPaymentInstructionReturnMkrAction.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/state/action/FormingPaymentInstructionReturnMkrAction.java index 2ceea46ec..224d92ba8 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/state/action/FormingPaymentInstructionReturnMkrAction.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/state/action/FormingPaymentInstructionReturnMkrAction.java @@ -125,11 +125,17 @@ public class FormingPaymentInstructionReturnMkrAction extends AbstractSessionAct } Registry lm_t = lmtO.get(); //obligation by money Registry cm_t = cmtO.get(); + //изменение активов - блокируем средства беред отправкой sdf'ов + Optional receiverAmbO = rgsMng.findRelatedAsset(cm_t.getTradingClearingRegistryId(), cm_t.getCompanyId(), lm_t.getSecuritySymbol(), AM_B); Optional dmx = rgsMng.searchDmxByCounterPartyNotOk(lm_t); if (dmx.isPresent()) { log.debug("LM*T#id={}, DM*X#id={} found, no action needed for group {}, skipping liability", lm_t.getId(), dmx.get().getId(), lm_t.getGroupId()); dmx.get().setRegistryStatus(RegistryStatus.OK.getKey()); + receiverAmbO.ifPresent(r -> { + r.setBalance(BigDecimal.ZERO); + setUpdatedStoreInImdg(r, now); + }); setUpdatedStoreInImdg(dmx.get(), now); continue; } @@ -152,13 +158,12 @@ public class FormingPaymentInstructionReturnMkrAction extends AbstractSessionAct } { //изменение активов - блокируем средства беред отправкой sdf'ов - Optional receiverAmtO = rgsMng.findRelatedAsset(cm_t.getTradingClearingRegistryId(), cm_t.getCompanyId(), lm_t.getSecuritySymbol(), AM_B); log.debug("changing A* registers based on LM_T.id={} and CM_T.id={} found AM*T(receiver).id={}", lm_t.getId(), cm_t.getId(), - receiverAmtO.map(Registry::getId).orElse(null) + receiverAmbO.map(Registry::getId).orElse(null) ); - receiverAmtO.ifPresent(amt -> { + receiverAmbO.ifPresent(amt -> { // у отправителя и получателя одинаково, см. в FormingPaymentInstruction amt.setSettledDebit(safeBD(amt.getSettledDebit()).add(safeBD(lm_t.getBalance()))); setUpdatedStoreInImdg(amt, now);