Кабинет: номер договора без ФИО, шапка — отдельные поля «клиент / договор / данные на»
В учётной системе номер договора хранится вместе с ФИО («БР-719 Аминов Вячеслав Маркович»), из-за чего имя показывалось дважды. В кабинет отдаём номер отдельно от имени; в шапке портфеля вместо строки через точки — подписанные поля. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Q4YVo4UMopqT5DzicqpPjL
This commit is contained in:
@@ -116,8 +116,8 @@ func registerLKAPI(mux *http.ServeMux, rc *RuntimeConfig, svc *Service) {
|
||||
}
|
||||
lkJSON(w, http.StatusOK, map[string]any{
|
||||
"session": tok,
|
||||
"full_name": u.FullName,
|
||||
"contract": u.Contract,
|
||||
"full_name": lkClientName(*u),
|
||||
"contract": lkContractNumber(u.Contract),
|
||||
"is_admin": u.IsAdmin,
|
||||
"ttl_sec": int(lkSessionTTL.Seconds()),
|
||||
})
|
||||
@@ -199,8 +199,8 @@ func registerLKAPI(mux *http.ServeMux, rc *RuntimeConfig, svc *Service) {
|
||||
}
|
||||
total, priced := lkApplyPrices(r.Context(), rc, pos)
|
||||
lkJSON(w, http.StatusOK, map[string]any{
|
||||
"contract": u.Contract,
|
||||
"full_name": u.FullName,
|
||||
"contract": lkContractNumber(u.Contract),
|
||||
"full_name": lkClientName(u),
|
||||
"positions": pos,
|
||||
"source": source,
|
||||
"read_only": readOnly,
|
||||
@@ -310,7 +310,7 @@ func registerLKAPI(mux *http.ServeMux, rc *RuntimeConfig, svc *Service) {
|
||||
return
|
||||
}
|
||||
pf.Note = strings.TrimSpace(pf.Note)
|
||||
resp := map[string]any{"portfolio": pf, "contract": u.Contract, "full_name": u.FullName}
|
||||
resp := map[string]any{"portfolio": pf, "contract": lkContractNumber(u.Contract), "full_name": lkClientName(u)}
|
||||
if q.Get("view") != "archive" {
|
||||
resp["upcoming"] = lkUpcoming(r.Context(), fancy, pf.Positions, 90) // ближайшие выплаты за 90 дней
|
||||
}
|
||||
@@ -529,7 +529,7 @@ func registerLKAPI(mux *http.ServeMux, rc *RuntimeConfig, svc *Service) {
|
||||
lkAuditImpersonate(r.Context(), rc, u.Login, "depo:"+full, full, lkClientAddr(r))
|
||||
lkJSON(w, http.StatusOK, map[string]any{
|
||||
"session": tok, "full_name": name,
|
||||
"contract": full, "as_client": full, "by_admin": u.Login,
|
||||
"contract": full, "as_client": lkContractNumber(full), "by_admin": u.Login,
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
@@ -100,3 +100,16 @@ func spectreContractFor(ctx context.Context, s FancyMSSQLSettings, contract stri
|
||||
spectreContractCache.mu.Unlock()
|
||||
return c, err == nil && c.DOC != 0
|
||||
}
|
||||
|
||||
// lkClientName — ФИО клиента для показа: из учётной записи, иначе из номера договора,
|
||||
// где учётная система хранит номер вместе с ФИО («БР-719 Аминов Вячеслав Маркович»).
|
||||
func lkClientName(u LKUser) string {
|
||||
if n := strings.TrimSpace(u.FullName); n != "" {
|
||||
return n
|
||||
}
|
||||
c := strings.TrimSpace(u.Contract)
|
||||
if i := strings.IndexByte(c, ' '); i > 0 {
|
||||
return strings.TrimSpace(c[i:])
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user