Files
zuevav 4b62d00ac2 Входящие M2M: пакет только целиком и отказ M2M08 для бумаг «для квалифицированных инвесторов»
Сверка с DEPO: у бумаги проверяется опция RESTRICTED («Ограничение ценной бумаги по обращению»,
1 — предназначена для квалифицированных инвесторов). Если инвестор не квалифицирован — отказ M2M08;
квалифицирован по всем видам — проходит; по части видов — предупреждение, решает оператор.

Пакет принимается только целиком (решение 16.09): при отказе хотя бы по одной бумаге рекомендация —
отказ по всем с кодом первой отказной, и так же нормализуется отправляемое решение (packageDecisions);
в форме выбор отказа по одной бумаге переключает на отказ все.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-16 14:45:43 +03:00

43 lines
1.3 KiB
Go

//go:build live
package lkgateway
import (
"context"
"testing"
"time"
)
// go test -tags live -run TestDepoQualifiedLive ./internal/lkgateway/ (от bj: читает setup.json)
func TestDepoQualifiedLive(t *testing.T) {
rc, err := NewRuntimeConfig("/var/lib/bj/.bj/setup.json")
if err != nil {
t.Skip(err)
}
db, err := fancyOpen(rc.Snapshot().Fancy, rc.Snapshot().Fancy.DepoDB())
if err != nil {
t.Skip(err)
}
defer db.Close()
ctx, cancel := context.WithTimeout(context.Background(), time.Minute)
defer cancel()
rows, err := db.QueryContext(ctx, `SELECT v, face FROM (
SELECT CAST(o.VAL AS varchar(20)) AS v, MIN(c.FACE) AS face FROM OD_CLIENTS c JOIN OD_OPTIONS o ON o.OBJECT = c.FACE AND o.DESCR = 65325
AND o.B_DATE <= GETDATE() AND (o.E_DATE IS NULL OR o.E_DATE > GETDATE()) WHERE c.NUMBER LIKE N'ВТНКЦ%' GROUP BY CAST(o.VAL AS varchar(20))
UNION ALL
SELECT 'нет', MIN(c.FACE) FROM OD_CLIENTS c WHERE c.NUMBER LIKE N'ВТНКЦ%' AND NOT EXISTS (SELECT 1 FROM OD_OPTIONS o WHERE o.OBJECT = c.FACE AND o.DESCR = 65325)) x`)
if err != nil {
t.Fatal(err)
}
defer rows.Close()
for rows.Next() {
var v string
var face int64
if rows.Scan(&v, &face) != nil {
continue
}
warn, _, det := depoFaceQualified(ctx, db, face)
t.Logf("VAL=%s лицо %d: предупреждение=%v — %s", v, face, warn, det)
}
}