Входящие M2M: пакет только целиком и отказ M2M08 для бумаг «для квалифицированных инвесторов»
Сверка с DEPO: у бумаги проверяется опция RESTRICTED («Ограничение ценной бумаги по обращению», 1 — предназначена для квалифицированных инвесторов). Если инвестор не квалифицирован — отказ M2M08; квалифицирован по всем видам — проходит; по части видов — предупреждение, решает оператор. Пакет принимается только целиком (решение 16.09): при отказе хотя бы по одной бумаге рекомендация — отказ по всем с кодом первой отказной, и так же нормализуется отправляемое решение (packageDecisions); в форме выбор отказа по одной бумаге переключает на отказ все. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -47,6 +47,8 @@ func answerIncoming(ctx context.Context, deps incomingDeps, id string, decisions
|
||||
}
|
||||
nsd := cfg.NSD
|
||||
|
||||
decisions = packageDecisions(decisions)
|
||||
|
||||
// Карта решений по ReferenceID.
|
||||
byRef := make(map[string]SecurityDecision, len(decisions))
|
||||
for _, d := range decisions {
|
||||
@@ -151,3 +153,34 @@ func answerIncoming(ctx context.Context, deps incomingDeps, id string, decisions
|
||||
func transferringINN(_ Settings) string {
|
||||
return "7703807489"
|
||||
}
|
||||
|
||||
// packageDecisions — пакет принимается только целиком (решение 16.09.2026): если хотя бы по одной бумаге
|
||||
// отказ, отказываем по всем; принятым бумагам ставится код первой отказной.
|
||||
func packageDecisions(decisions []SecurityDecision) []SecurityDecision {
|
||||
code := ""
|
||||
for _, d := range decisions {
|
||||
if !d.Confirm {
|
||||
code = d.RejectCode
|
||||
break
|
||||
}
|
||||
}
|
||||
if code == "" {
|
||||
for _, d := range decisions {
|
||||
if !d.Confirm {
|
||||
code = "M2M05"
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
if code == "" {
|
||||
return decisions
|
||||
}
|
||||
out := make([]SecurityDecision, len(decisions))
|
||||
for i, d := range decisions {
|
||||
if d.Confirm {
|
||||
d.Confirm, d.RejectCode = false, code
|
||||
}
|
||||
out[i] = d
|
||||
}
|
||||
return out
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user