Справочник участников — своего контура; регистрация — по справочнику НРД; поиск клиентов портфеля
readHandbook брал самый свежий из своего, общего (с сервера лицензий) и встроенного — общий был тестовым (TEST3, 166 участников, прислан с 28), и на боевом 9 bj считал «регистрация подтверждена», хотя в боевом справочнике НРД (89) нас нет. Теперь при своём справочнике от НРД — только он; на сервер лицензий справочник уходит только с боевого контура. Регистрация участника проверяется по справочнику, полученному от НРД; появились в нём — анкета отмечается принятой автоматически, плашка уходит. Портфель ЛК: клиенты DEPO списком по клику (первые 50 по алфавиту), «не найдено» вместо «поиск недоступен» (пустой ответ был null). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Q7eREaYwUt1i4fNLZcGnjn
This commit is contained in:
@@ -385,11 +385,12 @@ func lkContractByAccount(ps LKPortfolioSyncSettings, acc string) string {
|
||||
return strings.ReplaceAll(ps.contractTemplate(), "{n}", n)
|
||||
}
|
||||
|
||||
// lkPortfolioClients — поиск клиентов DEPO по ФИО или номеру портфеля (открытые торговые счета).
|
||||
// lkPortfolioClients — клиенты DEPO по ФИО, портфелю или счёту (открытые торговые счета); пустой
|
||||
// запрос — первые по алфавиту, чтобы выбрать из списка без ввода.
|
||||
func lkPortfolioClients(ctx context.Context, rc *RuntimeConfig, q string) ([]LKPortfolioClient, error) {
|
||||
q = strings.TrimSpace(q)
|
||||
if len([]rune(q)) < 2 {
|
||||
return nil, nil
|
||||
if len([]rune(q)) == 1 {
|
||||
return []LKPortfolioClient{}, nil
|
||||
}
|
||||
fs := rc.Snapshot().Fancy
|
||||
ps := rc.Snapshot().LK.PortfolioSync
|
||||
@@ -400,7 +401,7 @@ func lkPortfolioClients(ctx context.Context, rc *RuntimeConfig, q string) ([]LKP
|
||||
defer db.Close()
|
||||
cctx, cancel := context.WithTimeout(ctx, 15*time.Second)
|
||||
defer cancel()
|
||||
rows, err := db.QueryContext(cctx, `SELECT TOP 20 ISNULL(p.PORT_NUM,''), ISNULL(f.NAME,''), c.NUMBER
|
||||
rows, err := db.QueryContext(cctx, `SELECT TOP 50 ISNULL(p.PORT_NUM,''), ISNULL(f.NAME,''), c.NUMBER
|
||||
FROM OD_CLIENTS c JOIN OD_FACES f ON f.ID=c.FACE LEFT JOIN OD_CLIENTS_PORTS p ON p.CLIENT=c.ID
|
||||
WHERE c.NUMBER LIKE @pre AND c.STATE=0 AND c.D_CLOSE IS NULL AND (f.NAME LIKE @q OR p.PORT_NUM LIKE @q OR c.NUMBER LIKE @q)
|
||||
ORDER BY f.NAME`, sql.Named("q", "%"+likeEscape(q)+"%"), sql.Named("pre", likeEscape(ps.accountPrefix())+"%"))
|
||||
@@ -408,7 +409,7 @@ func lkPortfolioClients(ctx context.Context, rc *RuntimeConfig, q string) ([]LKP
|
||||
return nil, err
|
||||
}
|
||||
defer rows.Close()
|
||||
var out []LKPortfolioClient
|
||||
out := []LKPortfolioClient{}
|
||||
for rows.Next() {
|
||||
var c LKPortfolioClient
|
||||
if rows.Scan(&c.Port, &c.Name, &c.Account) == nil && c.Port != "" {
|
||||
|
||||
Reference in New Issue
Block a user